From 34c84dbbdfe9bdde53a6020ee2eed808e690d380 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 10:05:16 -0500 Subject: [PATCH 01/28] WIP - buyDopplerCoinsWithCredits --- package.json | 1 + src/Credits1155.sol | 26 ++++++++++++++++++++++++++ test/Credits1155.t.sol | 15 +++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/package.json b/package.json index 38e18b5..6c7a850 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "prepare": "husky install", "format": "forge fmt", "lint": "forge fmt --check", + "test": "forge test -vvv", "deploy-credits": "source .env && forge clean && forge script script/Deploy.s.sol:DeployCredits --rpc-url $RPC_URL --private-key $PRIVATE_KEY --broadcast --verify --etherscan-api-key $BASESCAN_API_KEY -vvvv" }, "devDependencies": { diff --git a/src/Credits1155.sol b/src/Credits1155.sol index 5e3e450..54c413b 100644 --- a/src/Credits1155.sol +++ b/src/Credits1155.sol @@ -290,6 +290,32 @@ contract Credits1155 is return super.supportsInterface(interfaceId); } + /** + * @notice Execute a token swap using Universal Router + * @param tokenAddress The address of the token being purchased + * @param commands The commands to execute on the Universal Router + * @param inputs The inputs for the commands + * @param ethAmount The amount of ETH to send with the transaction + */ + function buyDopplerCoinsWithCredits( + address tokenAddress, + bytes memory commands, + bytes[] memory inputs, + uint256 ethAmount + ) external payable { + // Validate that the correct ETH amount was sent + if (msg.value != ethAmount) { + revert Credits1155_Not_Enough_ETH_Sent(ethAmount, msg.value); + } + + // For now, this is a basic implementation that just accepts the call + // In a real implementation, you would integrate with the Universal Router + // and handle the actual token swap logic + + // Emit an event to track the call (optional) + // emit DopplerTokenCollectExecuted(tokenAddress, commands, inputs, ethAmount); + } + receive() external payable {} uint256[50] private __gap; diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index 730e40e..f97c5cb 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -87,4 +87,19 @@ contract Credits1155Test is Test { vm.expectRevert(); credits.adminSetURI("ipfs://test"); } + + function test_BuyDopplerCoinsWithCredits() public { + // Test data setup + address tokenAddress = makeAddr("token"); + bytes memory commands = hex"01"; // Example command + bytes[] memory inputs = new bytes[](1); + inputs[0] = hex"02"; // Example input + uint256 ethAmount = 0.1 ether; + + // This test should fail since the method doesn't exist yet + // Following TDD red-green-refactor cycle + vm.prank(user); + vm.expectRevert(); + credits.buyDopplerCoinsWithCredits(tokenAddress, commands, inputs, ethAmount); + } } From 44822c17668747863a00c1c4adc4b46833a293ae Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 11:26:41 -0500 Subject: [PATCH 02/28] Unit Tests + setDopplerUniversalRouter - initial implementation --- .gitmodules | 3 +++ foundry.toml | 1 + lib/universal-router | 1 + remappings.txt | 1 + src/Credits1155.sol | 17 +++++++++++++++++ test/Credits1155.t.sol | 11 +++++++++++ 6 files changed, 34 insertions(+) create mode 160000 lib/universal-router create mode 100644 remappings.txt diff --git a/.gitmodules b/.gitmodules index 7017cc8..ed93194 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "lib/openzeppelin-contracts"] path = lib/openzeppelin-contracts url = https://github.com/OpenZeppelin/openzeppelin-contracts +[submodule "lib/universal-router"] + path = lib/universal-router + url = https://github.com/Uniswap/universal-router diff --git a/foundry.toml b/foundry.toml index 25b918f..ee6536f 100644 --- a/foundry.toml +++ b/foundry.toml @@ -2,5 +2,6 @@ src = "src" out = "out" libs = ["lib"] +viaIR = true # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options diff --git a/lib/universal-router b/lib/universal-router new file mode 160000 index 0000000..41183d6 --- /dev/null +++ b/lib/universal-router @@ -0,0 +1 @@ +Subproject commit 41183d6eb154f0ab0e74a0e911a5ef9ea51fc4bd diff --git a/remappings.txt b/remappings.txt new file mode 100644 index 0000000..273f2dd --- /dev/null +++ b/remappings.txt @@ -0,0 +1 @@ +@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts \ No newline at end of file diff --git a/src/Credits1155.sol b/src/Credits1155.sol index 5e3e450..5570bc7 100644 --- a/src/Credits1155.sol +++ b/src/Credits1155.sol @@ -12,6 +12,7 @@ import {ERC1155SupplyUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol"; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; +import {UniversalRouter} from "universal-router/contracts/UniversalRouter.sol"; // solhint-enable max-line-length import {ICoopCreator1155} from "./interfaces/ICoopCreator1155.sol"; @@ -41,6 +42,11 @@ contract Credits1155 is */ IMinter1155 public fixedPriceSaleStrategy; + /** + * @notice Doppler Universal Router contract + */ + UniversalRouter public dopplerUniversalRouter; + /** * @notice Not a contract * @dev The address provided is not a contract. @@ -137,6 +143,17 @@ contract Credits1155 is fixedPriceSaleStrategy = IMinter1155(_fixedPriceSaleStrategy); } + /** + * @notice Set the Doppler Universal Router contract + * @param _dopplerUniversalRouter The address of the Doppler Universal Router + */ + function setDopplerUniversalRouter(address _dopplerUniversalRouter) public onlyRole(DEFAULT_ADMIN_ROLE) { + if (address(_dopplerUniversalRouter).code.length == 0) { + revert Credits1155_Contract_Address_Is_Not_A_Contract(); + } + dopplerUniversalRouter = UniversalRouter(payable(_dopplerUniversalRouter)); + } + /** * @notice Buy Credits with ETH * @dev Checks for sufficient ETH before executing. diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index 730e40e..e7084d3 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -87,4 +87,15 @@ contract Credits1155Test is Test { vm.expectRevert(); credits.adminSetURI("ipfs://test"); } + + function test_SetDopplerUniversalRouter() public { + // Test data setup + address dopplerRouter = makeAddr("dopplerRouter"); + + // This test should fail since the method doesn't exist yet + // Following TDD red-green-refactor cycle + vm.prank(owner); + vm.expectRevert(); + credits.setDopplerUniversalRouter(dopplerRouter); + } } From 5053bcd5e19343f26d9370f73f12498c07639d82 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 11:34:32 -0500 Subject: [PATCH 03/28] I update workflow to install universal router packages. --- .github/workflows/test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 34a4a52..caa6ba0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -34,6 +34,9 @@ jobs: - name: Run Forge build run: | + cd lib/universal-router + npm install + cd ../.. forge build --sizes id: build From f6e8f68dacbec1735108541a9a98da5622b4ae18 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 11:40:27 -0500 Subject: [PATCH 04/28] I remove universal router lib. --- .gitmodules | 3 --- lib/universal-router | 1 - src/Credits1155.sol | 6 +++--- src/interfaces/IUniversalRouter.sol | 25 +++++++++++++++++++++++++ 4 files changed, 28 insertions(+), 7 deletions(-) delete mode 160000 lib/universal-router create mode 100644 src/interfaces/IUniversalRouter.sol diff --git a/.gitmodules b/.gitmodules index ed93194..7017cc8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,6 +7,3 @@ [submodule "lib/openzeppelin-contracts"] path = lib/openzeppelin-contracts url = https://github.com/OpenZeppelin/openzeppelin-contracts -[submodule "lib/universal-router"] - path = lib/universal-router - url = https://github.com/Uniswap/universal-router diff --git a/lib/universal-router b/lib/universal-router deleted file mode 160000 index 41183d6..0000000 --- a/lib/universal-router +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 41183d6eb154f0ab0e74a0e911a5ef9ea51fc4bd diff --git a/src/Credits1155.sol b/src/Credits1155.sol index 5570bc7..7b4797a 100644 --- a/src/Credits1155.sol +++ b/src/Credits1155.sol @@ -12,7 +12,7 @@ import {ERC1155SupplyUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155SupplyUpgradeable.sol"; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; -import {UniversalRouter} from "universal-router/contracts/UniversalRouter.sol"; +import {IUniversalRouter} from "./interfaces/IUniversalRouter.sol"; // solhint-enable max-line-length import {ICoopCreator1155} from "./interfaces/ICoopCreator1155.sol"; @@ -45,7 +45,7 @@ contract Credits1155 is /** * @notice Doppler Universal Router contract */ - UniversalRouter public dopplerUniversalRouter; + IUniversalRouter public dopplerUniversalRouter; /** * @notice Not a contract @@ -151,7 +151,7 @@ contract Credits1155 is if (address(_dopplerUniversalRouter).code.length == 0) { revert Credits1155_Contract_Address_Is_Not_A_Contract(); } - dopplerUniversalRouter = UniversalRouter(payable(_dopplerUniversalRouter)); + dopplerUniversalRouter = IUniversalRouter(payable(_dopplerUniversalRouter)); } /** diff --git a/src/interfaces/IUniversalRouter.sol b/src/interfaces/IUniversalRouter.sol new file mode 100644 index 0000000..656efad --- /dev/null +++ b/src/interfaces/IUniversalRouter.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +pragma solidity ^0.8.17; + +import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import {IERC1155Receiver} from "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol"; + +interface IUniversalRouter is IERC721Receiver, IERC1155Receiver { + /// @notice Thrown when a required command has failed + error ExecutionFailed(uint256 commandIndex, bytes message); + + /// @notice Thrown when attempting to send ETH directly to the contract + error ETHNotAccepted(); + + /// @notice Thrown when executing commands with an expired deadline + error TransactionDeadlinePassed(); + + /// @notice Thrown when attempting to execute commands and an incorrect number of inputs are provided + error LengthMismatch(); + + /// @notice Executes encoded commands along with provided inputs. Reverts if deadline has expired. + /// @param commands A set of concatenated commands, each 1 byte in length + /// @param inputs An array of byte strings containing abi encoded inputs for each command + /// @param deadline The deadline by which the transaction must be executed + function execute(bytes calldata commands, bytes[] calldata inputs, uint256 deadline) external payable; +} From 550c59ef94907edf2ae31d4a94442ad6afc14b0f Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 11:41:19 -0500 Subject: [PATCH 05/28] I remove changes to the github workflow. --- .github/workflows/test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index caa6ba0..34a4a52 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -34,9 +34,6 @@ jobs: - name: Run Forge build run: | - cd lib/universal-router - npm install - cd ../.. forge build --sizes id: build From 1a9360b24d41b5a6d9d49b7025c2b64dfe5816e7 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 11:45:22 -0500 Subject: [PATCH 06/28] I add unit test for test_RevertWhen_SetDopplerUniversalRouterWithNonContractAddress --- test/Credits1155.t.sol | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index e7084d3..f46a020 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -98,4 +98,14 @@ contract Credits1155Test is Test { vm.expectRevert(); credits.setDopplerUniversalRouter(dopplerRouter); } + + function test_RevertWhen_SetDopplerUniversalRouterWithNonContractAddress() public { + // Test data setup - use a regular address (not a contract) + address nonContractAddress = makeAddr("nonContract"); + + // Expect the specific error to be thrown + vm.prank(owner); + vm.expectRevert(abi.encodeWithSelector(Credits1155.Credits1155_Contract_Address_Is_Not_A_Contract.selector)); + credits.setDopplerUniversalRouter(nonContractAddress); + } } From 7456d122b08f11f22fb2332acd7a1de1c034533e Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 11:47:36 -0500 Subject: [PATCH 07/28] add unit test to verify only owner can call with test_RevertWhen_NonOwnerSetsDopplerUniversalRouter --- test/Credits1155.t.sol | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index f46a020..4b3441b 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -108,4 +108,22 @@ contract Credits1155Test is Test { vm.expectRevert(abi.encodeWithSelector(Credits1155.Credits1155_Contract_Address_Is_Not_A_Contract.selector)); credits.setDopplerUniversalRouter(nonContractAddress); } + + function test_RevertWhen_NonOwnerSetsDopplerUniversalRouter() public { + // Test data setup + address dopplerRouter = makeAddr("dopplerRouter"); + address nonOwner = makeAddr("nonOwner"); + + // Expect the method to revert when called by non-owner + // This will revert with AccessControl error since the user doesn't have DEFAULT_ADMIN_ROLE + vm.prank(nonOwner); + vm.expectRevert( + abi.encodeWithSelector( + bytes4(keccak256("AccessControlUnauthorizedAccount(address,bytes32)")), + nonOwner, + bytes32(0x0000000000000000000000000000000000000000000000000000000000000000) // DEFAULT_ADMIN_ROLE + ) + ); + credits.setDopplerUniversalRouter(dopplerRouter); + } } From a8853d7560a1b17af5eef7b00c91ce441f01ce57 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 11:49:40 -0500 Subject: [PATCH 08/28] test_SetDopplerUniversalRouter - updated to test success state for setting dopplerUniversalRouter value. --- test/Credits1155.t.sol | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index 4b3441b..284d103 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -92,11 +92,15 @@ contract Credits1155Test is Test { // Test data setup address dopplerRouter = makeAddr("dopplerRouter"); - // This test should fail since the method doesn't exist yet - // Following TDD red-green-refactor cycle + // Add code to the dopplerRouter to make it a contract + vm.etch(dopplerRouter, hex"00"); + + // Call the method as owner - should succeed vm.prank(owner); - vm.expectRevert(); credits.setDopplerUniversalRouter(dopplerRouter); + + // Verify the router was set correctly + assertEq(address(credits.dopplerUniversalRouter()), dopplerRouter); } function test_RevertWhen_SetDopplerUniversalRouterWithNonContractAddress() public { From 40125439110090b520994caa4e1b2ee84c827bb9 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 11:52:30 -0500 Subject: [PATCH 09/28] rollback changes to foundry.toml --- foundry.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/foundry.toml b/foundry.toml index ee6536f..25b918f 100644 --- a/foundry.toml +++ b/foundry.toml @@ -2,6 +2,5 @@ src = "src" out = "out" libs = ["lib"] -viaIR = true # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options From 9acda564ffb62cf21aaffb3c8a1237051f7ea227 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 11:54:00 -0500 Subject: [PATCH 10/28] remove unused remappings --- remappings.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 remappings.txt diff --git a/remappings.txt b/remappings.txt deleted file mode 100644 index 273f2dd..0000000 --- a/remappings.txt +++ /dev/null @@ -1 +0,0 @@ -@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts \ No newline at end of file From 5b41e5e2263269f4ad3b1ea47515c98d46aac9d3 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 13:27:50 -0500 Subject: [PATCH 11/28] remove tokenAddress from function call. --- src/Credits1155.sol | 11 ++++------- src/interfaces/IUniversalRouter.sol | 3 +-- test/Credits1155.t.sol | 3 +-- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/Credits1155.sol b/src/Credits1155.sol index 73fd903..a3ff9b2 100644 --- a/src/Credits1155.sol +++ b/src/Credits1155.sol @@ -309,17 +309,14 @@ contract Credits1155 is /** * @notice Execute a token swap using Universal Router - * @param tokenAddress The address of the token being purchased * @param commands The commands to execute on the Universal Router * @param inputs The inputs for the commands * @param ethAmount The amount of ETH to send with the transaction */ - function buyDopplerCoinsWithCredits( - address tokenAddress, - bytes memory commands, - bytes[] memory inputs, - uint256 ethAmount - ) external payable { + function buyDopplerCoinsWithCredits(bytes memory commands, bytes[] memory inputs, uint256 ethAmount) + external + payable + { // Validate that the Doppler Universal Router is set if (address(dopplerUniversalRouter) == address(0)) { revert Credits1155_Contract_Address_Is_Not_A_Contract(); diff --git a/src/interfaces/IUniversalRouter.sol b/src/interfaces/IUniversalRouter.sol index 656efad..90b058c 100644 --- a/src/interfaces/IUniversalRouter.sol +++ b/src/interfaces/IUniversalRouter.sol @@ -20,6 +20,5 @@ interface IUniversalRouter is IERC721Receiver, IERC1155Receiver { /// @notice Executes encoded commands along with provided inputs. Reverts if deadline has expired. /// @param commands A set of concatenated commands, each 1 byte in length /// @param inputs An array of byte strings containing abi encoded inputs for each command - /// @param deadline The deadline by which the transaction must be executed - function execute(bytes calldata commands, bytes[] calldata inputs, uint256 deadline) external payable; + function execute(bytes calldata commands, bytes[] calldata inputs) external payable; } diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index 0d7cc03..bfe13f0 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -133,7 +133,6 @@ contract Credits1155Test is Test { function test_BuyDopplerCoinsWithCredits() public { // Test data setup - address tokenAddress = makeAddr("token"); bytes memory commands = hex"01"; // Example command bytes[] memory inputs = new bytes[](1); inputs[0] = hex"02"; // Example input @@ -143,6 +142,6 @@ contract Credits1155Test is Test { // Following TDD red-green-refactor cycle vm.prank(user); vm.expectRevert(); - credits.buyDopplerCoinsWithCredits(tokenAddress, commands, inputs, ethAmount); + credits.buyDopplerCoinsWithCredits(commands, inputs, ethAmount); } } From 32f3e80760ae5af51d94a46bc388db3c1e9a83de Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 13:30:37 -0500 Subject: [PATCH 12/28] add unit tests for revert reasons. --- test/Credits1155.t.sol | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index bfe13f0..cd91f4b 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -144,4 +144,39 @@ contract Credits1155Test is Test { vm.expectRevert(); credits.buyDopplerCoinsWithCredits(commands, inputs, ethAmount); } + + function test_RevertWhen_BuyDopplerCoinsWithCreditsRouterNotSet() public { + // Test data setup + bytes memory commands = hex"01"; // Example command + bytes[] memory inputs = new bytes[](1); + inputs[0] = hex"02"; // Example input + uint256 ethAmount = 0.1 ether; + + // Expect the method to revert when router is not set + vm.prank(user); + vm.expectRevert(abi.encodeWithSelector(Credits1155.Credits1155_Contract_Address_Is_Not_A_Contract.selector)); + credits.buyDopplerCoinsWithCredits(commands, inputs, ethAmount); + } + + function test_RevertWhen_BuyDopplerCoinsWithCreditsIncorrectEthAmount() public { + // First set up the router + address dopplerRouter = makeAddr("dopplerRouter"); + vm.etch(dopplerRouter, hex"00"); + vm.prank(owner); + credits.setDopplerUniversalRouter(dopplerRouter); + + // Test data setup + bytes memory commands = hex"01"; // Example command + bytes[] memory inputs = new bytes[](1); + inputs[0] = hex"02"; // Example input + uint256 ethAmount = 0.1 ether; + uint256 incorrectEthAmount = 0.05 ether; // Send less than required + + // Expect the method to revert when incorrect ETH amount is sent + vm.prank(user); + vm.expectRevert( + abi.encodeWithSelector(Credits1155.Credits1155_Not_Enough_ETH_Sent.selector, ethAmount, incorrectEthAmount) + ); + credits.buyDopplerCoinsWithCredits{value: incorrectEthAmount}(commands, inputs, ethAmount); + } } From 932feba2790dd35ea4bcdb2f58dabc65889273be Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 13:37:10 -0500 Subject: [PATCH 13/28] remove redundant param for ethAmount --- src/Credits1155.sol | 15 +++------------ test/Credits1155.t.sol | 28 ++-------------------------- 2 files changed, 5 insertions(+), 38 deletions(-) diff --git a/src/Credits1155.sol b/src/Credits1155.sol index a3ff9b2..ee88c52 100644 --- a/src/Credits1155.sol +++ b/src/Credits1155.sol @@ -311,24 +311,15 @@ contract Credits1155 is * @notice Execute a token swap using Universal Router * @param commands The commands to execute on the Universal Router * @param inputs The inputs for the commands - * @param ethAmount The amount of ETH to send with the transaction */ - function buyDopplerCoinsWithCredits(bytes memory commands, bytes[] memory inputs, uint256 ethAmount) - external - payable - { + function buyDopplerCoinsWithCredits(bytes memory commands, bytes[] memory inputs) external payable { // Validate that the Doppler Universal Router is set if (address(dopplerUniversalRouter) == address(0)) { revert Credits1155_Contract_Address_Is_Not_A_Contract(); } - // Validate that the correct ETH amount was sent - if (msg.value != ethAmount) { - revert Credits1155_Not_Enough_ETH_Sent(ethAmount, msg.value); - } - - // Execute the swap using the Universal Router - dopplerUniversalRouter.execute{value: ethAmount}(commands, inputs); + // Execute the swap using the Universal Router with the ETH sent + dopplerUniversalRouter.execute{value: msg.value}(commands, inputs); } receive() external payable {} diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index cd91f4b..89f464d 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -136,13 +136,12 @@ contract Credits1155Test is Test { bytes memory commands = hex"01"; // Example command bytes[] memory inputs = new bytes[](1); inputs[0] = hex"02"; // Example input - uint256 ethAmount = 0.1 ether; // This test should fail since the method doesn't exist yet // Following TDD red-green-refactor cycle vm.prank(user); vm.expectRevert(); - credits.buyDopplerCoinsWithCredits(commands, inputs, ethAmount); + credits.buyDopplerCoinsWithCredits(commands, inputs); } function test_RevertWhen_BuyDopplerCoinsWithCreditsRouterNotSet() public { @@ -150,33 +149,10 @@ contract Credits1155Test is Test { bytes memory commands = hex"01"; // Example command bytes[] memory inputs = new bytes[](1); inputs[0] = hex"02"; // Example input - uint256 ethAmount = 0.1 ether; // Expect the method to revert when router is not set vm.prank(user); vm.expectRevert(abi.encodeWithSelector(Credits1155.Credits1155_Contract_Address_Is_Not_A_Contract.selector)); - credits.buyDopplerCoinsWithCredits(commands, inputs, ethAmount); - } - - function test_RevertWhen_BuyDopplerCoinsWithCreditsIncorrectEthAmount() public { - // First set up the router - address dopplerRouter = makeAddr("dopplerRouter"); - vm.etch(dopplerRouter, hex"00"); - vm.prank(owner); - credits.setDopplerUniversalRouter(dopplerRouter); - - // Test data setup - bytes memory commands = hex"01"; // Example command - bytes[] memory inputs = new bytes[](1); - inputs[0] = hex"02"; // Example input - uint256 ethAmount = 0.1 ether; - uint256 incorrectEthAmount = 0.05 ether; // Send less than required - - // Expect the method to revert when incorrect ETH amount is sent - vm.prank(user); - vm.expectRevert( - abi.encodeWithSelector(Credits1155.Credits1155_Not_Enough_ETH_Sent.selector, ethAmount, incorrectEthAmount) - ); - credits.buyDopplerCoinsWithCredits{value: incorrectEthAmount}(commands, inputs, ethAmount); + credits.buyDopplerCoinsWithCredits(commands, inputs); } } From 8966cb75619628128fca4bcc2a52f3cedabf2568 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 15:01:03 -0500 Subject: [PATCH 14/28] buyDopplerCoinsWithCredits - use credits and remove payable --- src/Credits1155.sol | 38 ++++++++++++++--------- test/Credits1155.t.sol | 70 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 90 insertions(+), 18 deletions(-) diff --git a/src/Credits1155.sol b/src/Credits1155.sol index ee88c52..076f923 100644 --- a/src/Credits1155.sol +++ b/src/Credits1155.sol @@ -115,6 +115,18 @@ contract Credits1155 is uint256 ethCost ); + /** + * @notice Modifier to check if user has sufficient credits + * @param amount The amount of credits required + */ + modifier onlySufficientCredits(uint256 amount) { + uint256 userCreditsBalance = balanceOf(msg.sender, CREDITS_TOKEN_ID); + if (amount > userCreditsBalance) { + revert Credits1155_Insufficient_Credits_Balance(amount, userCreditsBalance); + } + _; + } + /// @custom:oz-upgrades-unsafe-allow constructor constructor() { _disableInitializers(); @@ -182,12 +194,7 @@ contract Credits1155 is * @dev Checks for sufficient Credits balance and ETH in contract before executing. Only redeems to msg.sender. * @param amount The amount of Credits to redeem */ - function redeemCredits(uint256 amount) public { - uint256 bal = balanceOf(msg.sender, CREDITS_TOKEN_ID); - if (bal < amount) { - revert Credits1155_Insufficient_Credits_Balance(amount, bal); - } - + function redeemCredits(uint256 amount) external onlySufficientCredits(amount) { uint256 ethCost = getEthCostForCredits(amount); uint256 ethBal = address(this).balance; if (ethBal < ethCost) { @@ -210,7 +217,7 @@ contract Credits1155 is uint256 tokenQuantity, address tokenRecipient, address payable referrer - ) external { + ) external onlySufficientCredits(tokenQuantity) { if (coopCollectiblesAddress.code.length == 0) { revert Credits1155_Contract_Address_Is_Not_A_Contract(); } @@ -225,12 +232,7 @@ contract Credits1155 is revert Credits1155_Invalid_Token_Id(tokenId); } - // For testing purposes, hardcode to match test expectations - uint256 userCreditsBalance = balanceOf(msg.sender, CREDITS_TOKEN_ID); - - if (tokenQuantity > userCreditsBalance) { - revert Credits1155_Insufficient_Credits_Balance(tokenQuantity, userCreditsBalance); - } + // Burn credits before minting _burn(msg.sender, CREDITS_TOKEN_ID, tokenQuantity); uint256 ethCost = getEthCostForCredits(tokenQuantity); @@ -312,14 +314,20 @@ contract Credits1155 is * @param commands The commands to execute on the Universal Router * @param inputs The inputs for the commands */ - function buyDopplerCoinsWithCredits(bytes memory commands, bytes[] memory inputs) external payable { + function buyDopplerCoinsWithCredits(bytes memory commands, bytes[] memory inputs) + external + onlySufficientCredits(1) + { // Validate that the Doppler Universal Router is set if (address(dopplerUniversalRouter) == address(0)) { revert Credits1155_Contract_Address_Is_Not_A_Contract(); } + // Burn 1 credit before executing the swap + _burn(msg.sender, CREDITS_TOKEN_ID, 1); + // Execute the swap using the Universal Router with the ETH sent - dopplerUniversalRouter.execute{value: msg.value}(commands, inputs); + dopplerUniversalRouter.execute{value: MINT_FEE_IN_WEI}(commands, inputs); } receive() external payable {} diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index 89f464d..dbe72f5 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -132,19 +132,47 @@ contract Credits1155Test is Test { } function test_BuyDopplerCoinsWithCredits() public { + // First buy some credits for the user + uint256 creditsAmount = 10; + uint256 creditsCost = credits.getEthCostForCredits(creditsAmount); + vm.prank(user); + credits.buyCredits{value: creditsCost}(user, creditsAmount); + + // Verify initial credits balance + uint256 initialCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(initialCreditsBalance, creditsAmount); + + // Set up the Doppler Universal Router + address dopplerRouter = makeAddr("dopplerRouter"); + vm.etch(dopplerRouter, hex"00"); + vm.prank(owner); + credits.setDopplerUniversalRouter(dopplerRouter); + // Test data setup bytes memory commands = hex"01"; // Example command bytes[] memory inputs = new bytes[](1); inputs[0] = hex"02"; // Example input - // This test should fail since the method doesn't exist yet - // Following TDD red-green-refactor cycle + // Call buyDopplerCoinsWithCredits - should succeed and consume 1 credit vm.prank(user); - vm.expectRevert(); credits.buyDopplerCoinsWithCredits(commands, inputs); + + // Verify credits balance decreased by 1 + uint256 finalCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(finalCreditsBalance, initialCreditsBalance - 1); } function test_RevertWhen_BuyDopplerCoinsWithCreditsRouterNotSet() public { + // First buy some credits for the user + uint256 creditsAmount = 10; + uint256 creditsCost = credits.getEthCostForCredits(creditsAmount); + vm.prank(user); + credits.buyCredits{value: creditsCost}(user, creditsAmount); + + // Verify initial credits balance + uint256 initialCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(initialCreditsBalance, creditsAmount); + // Test data setup bytes memory commands = hex"01"; // Example command bytes[] memory inputs = new bytes[](1); @@ -154,5 +182,41 @@ contract Credits1155Test is Test { vm.prank(user); vm.expectRevert(abi.encodeWithSelector(Credits1155.Credits1155_Contract_Address_Is_Not_A_Contract.selector)); credits.buyDopplerCoinsWithCredits(commands, inputs); + + // Verify credits balance remains unchanged after revert + uint256 finalCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(finalCreditsBalance, initialCreditsBalance); + } + + function test_RevertWhen_BuyDopplerCoinsWithCreditsNoCredits() public { + // Set up the Doppler Universal Router first + address dopplerRouter = makeAddr("dopplerRouter"); + vm.etch(dopplerRouter, hex"00"); + vm.prank(owner); + credits.setDopplerUniversalRouter(dopplerRouter); + + // Verify user has no credits initially + uint256 initialCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(initialCreditsBalance, 0); + + // Test data setup + bytes memory commands = hex"01"; // Example command + bytes[] memory inputs = new bytes[](1); + inputs[0] = hex"02"; // Example input + + // Expect the method to revert when user has no credits + vm.prank(user); + vm.expectRevert( + abi.encodeWithSelector( + Credits1155.Credits1155_Insufficient_Credits_Balance.selector, + 1, // required amount + 0 // available amount + ) + ); + credits.buyDopplerCoinsWithCredits(commands, inputs); + + // Verify credits balance remains at 0 + uint256 finalCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(finalCreditsBalance, 0); } } From a1828049a610204ec56fcd768b3fe0a0654c3fbf Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 15:02:39 -0500 Subject: [PATCH 15/28] refactor placement of modifier to bottom of file. --- src/Credits1155.sol | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Credits1155.sol b/src/Credits1155.sol index 076f923..84e4284 100644 --- a/src/Credits1155.sol +++ b/src/Credits1155.sol @@ -115,18 +115,6 @@ contract Credits1155 is uint256 ethCost ); - /** - * @notice Modifier to check if user has sufficient credits - * @param amount The amount of credits required - */ - modifier onlySufficientCredits(uint256 amount) { - uint256 userCreditsBalance = balanceOf(msg.sender, CREDITS_TOKEN_ID); - if (amount > userCreditsBalance) { - revert Credits1155_Insufficient_Credits_Balance(amount, userCreditsBalance); - } - _; - } - /// @custom:oz-upgrades-unsafe-allow constructor constructor() { _disableInitializers(); @@ -330,6 +318,18 @@ contract Credits1155 is dopplerUniversalRouter.execute{value: MINT_FEE_IN_WEI}(commands, inputs); } + /** + * @notice Modifier to check if user has sufficient credits + * @param amount The amount of credits required + */ + modifier onlySufficientCredits(uint256 amount) { + uint256 userCreditsBalance = balanceOf(msg.sender, CREDITS_TOKEN_ID); + if (amount > userCreditsBalance) { + revert Credits1155_Insufficient_Credits_Balance(amount, userCreditsBalance); + } + _; + } + receive() external payable {} uint256[50] private __gap; From 5d527ffccd5a9882a89fadac8a78f6a7586ce098 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 15:21:55 -0500 Subject: [PATCH 16/28] initializer - add param for dopplerUniversalRouter --- src/Credits1155.sol | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Credits1155.sol b/src/Credits1155.sol index 84e4284..8e9911d 100644 --- a/src/Credits1155.sol +++ b/src/Credits1155.sol @@ -120,7 +120,10 @@ contract Credits1155 is _disableInitializers(); } - function initialize(string memory tokenUri, address _fixedPriceSaleStrategy) public initializer { + function initialize(string memory tokenUri, address _fixedPriceSaleStrategy, address _dopplerUniversalRouter) + public + initializer + { __ERC1155_init(tokenUri); // creates first token __Ownable_init(msg.sender); __AccessControl_init(); @@ -130,6 +133,11 @@ contract Credits1155 is if (_fixedPriceSaleStrategy != address(0)) { setFixedPriceSaleStrategy(_fixedPriceSaleStrategy); } + + // Set the Doppler Universal Router if provided + if (_dopplerUniversalRouter != address(0)) { + setDopplerUniversalRouter(_dopplerUniversalRouter); + } } /** From 152a4275f8f660eb489aceeeea929e6a37c13ffe Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 16:22:55 -0500 Subject: [PATCH 17/28] add doppler router to deploy script --- broadcast/Deploy.s.sol/8453/run-latest.json | 248 +++++++++--------- broadcast/Deploy.s.sol/84532/run-latest.json | 256 ++++++++++--------- script/Deploy.s.sol | 7 +- 3 files changed, 261 insertions(+), 250 deletions(-) diff --git a/broadcast/Deploy.s.sol/8453/run-latest.json b/broadcast/Deploy.s.sol/8453/run-latest.json index ebdba8b..d733a6a 100644 --- a/broadcast/Deploy.s.sol/8453/run-latest.json +++ b/broadcast/Deploy.s.sol/8453/run-latest.json @@ -1,67 +1,67 @@ { "transactions": [ { - "hash": "0x396f2b7b1c49e49c082c31baf1e6db636ae87904e23337ea01f16271b1fef1ca", + "hash": "0x45faa7a8120c65a7307e937a2d5b0dcd14b0da316857c23c4376dfb0972ad8dc", "transactionType": "CREATE", "contractName": "Credits1155", - "contractAddress": "0x06ad14843ae7c386712143c36f378a5064044cd3", + "contractAddress": "0x3bd63fad65d12288e7e306107c966490cf1b8189", "function": null, "arguments": null, "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0x2edd3a", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x57e256", "value": "0x0", - "input": "0x608060405234801562000010575f80fd5b506200001b62000021565b620000d5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d25780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61293c80620000e35f395ff3fe6080604052600436106101fe575f3560e01c80637eb802b911610113578063c5efaae81161009d578063e30c39781161006d578063e30c397814610624578063e985e9c514610638578063f242432a14610657578063f2fde38b14610676578063f5298aca14610695575f80fd5b8063c5efaae8146105b9578063c9f18ebd146105cc578063d1b53b9c146105eb578063d547741f14610605575f80fd5b8063a22cb465116100e3578063a22cb465146104ff578063a7fd40bf1461051e578063ad77bc401461053d578063b13bfa9114610551578063bd85b0391461056f575f80fd5b80637eb802b9146104825780638da5cb5b146104a157806391d14854146104cd578063a217fddf146104ec575f80fd5b806336568abe116101945780634f558e79116101645780634f558e79146103d05780636b20c4541461041c578063715018a61461043b57806379ba50971461044f5780637ab4339d14610463575f80fd5b806336568abe14610347578063401d4482146103665780634b844a1d146103855780634e1273f4146103a4575f80fd5b806318160ddd116101cf57806318160ddd146102b7578063248a9ca3146102ea5780632eb2c2d6146103095780632f2ff15d14610328575f80fd5b8062fdd58e1461020957806301ffc9a71461023b5780630e89341c1461026a578063116039ae14610296575f80fd5b3661020557005b5f80fd5b348015610214575f80fd5b50610228610223366004611ea2565b6106b4565b6040519081526020015b60405180910390f35b348015610246575f80fd5b5061025a610255366004611ee1565b6106e9565b6040519015158152602001610232565b348015610275575f80fd5b50610289610284366004611f03565b6106f3565b6040516102329190611f67565b3480156102a1575f80fd5b506102b56102b0366004611f79565b6107b5565b005b3480156102c2575f80fd5b507f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e280154610228565b3480156102f5575f80fd5b50610228610304366004611f03565b610a30565b348015610314575f80fd5b506102b5610323366004612141565b610a50565b348015610333575f80fd5b506102b56103423660046121e7565b610ab7565b348015610352575f80fd5b506102b56103613660046121e7565b610ad9565b348015610371575f80fd5b506102b5610380366004611ea2565b610b11565b348015610390575f80fd5b5061022861039f366004611f03565b610bc8565b3480156103af575f80fd5b506103c36103be366004612215565b610bda565b604051610232919061230a565b3480156103db575f80fd5b5061025a6103ea366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e28006020526040902054151590565b348015610427575f80fd5b506102b561043636600461231c565b610ca4565b348015610446575f80fd5b506102b5610d03565b34801561045a575f80fd5b506102b5610d16565b34801561046e575f80fd5b506102b561047d36600461238c565b610d5e565b34801561048d575f80fd5b506102b561049c3660046123cf565b610e8a565b3480156104ac575f80fd5b506104b5610ee0565b6040516001600160a01b039091168152602001610232565b3480156104d8575f80fd5b5061025a6104e73660046121e7565b610f14565b3480156104f7575f80fd5b506102285f81565b34801561050a575f80fd5b506102b56105193660046123ea565b610f4a565b348015610529575f80fd5b506102b561053836600461241a565b610f59565b348015610548575f80fd5b50610228600181565b34801561055c575f80fd5b505f546104b5906001600160a01b031681565b34801561057a575f80fd5b50610228610589366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800602052604090205490565b6102b56105c7366004611ea2565b610f6c565b3480156105d7575f80fd5b506102b56105e6366004611f03565b610fda565b3480156105f6575f80fd5b5061022866016bcc41e9000081565b348015610610575f80fd5b506102b561061f3660046121e7565b611061565b34801561062f575f80fd5b506104b561107d565b348015610643575f80fd5b5061025a610652366004612453565b6110a5565b348015610662575f80fd5b506102b561067136600461247f565b6110f1565b348015610681575f80fd5b506102b56106903660046123cf565b611150565b3480156106a0575f80fd5b506102b56106af3660046124e2565b6111d5565b5f8181525f805160206128c7833981519152602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6106e38261120b565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450280546060915f805160206128c78339815191529161073190612514565b80601f016020809104026020016040519081016040528092919081815260200182805461075d90612514565b80156107a85780601f1061077f576101008083540402835291602001916107a8565b820191905f5260205f20905b81548152906001019060200180831161078b57829003601f168201915b5050505050915050919050565b846001600160a01b03163b5f036107df57604051633e07d28560e11b815260040160405180910390fd5b8460018410156108025760405163ea54cbb360e01b815260040160405180910390fd5b60405163463d31d760e11b8152600481018690525f906001600160a01b03831690638c7a63ae906024015f60405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261086d919081019061254c565b8051519091505f0361089a5760405163282dcfa760e11b8152600481018790526024015b60405180910390fd5b5f6108a63360016106b4565b9050808611156108d35760405163cffb3e6960e01b81526004810187905260248101829052604401610891565b6108df3360018861124a565b5f6108e987610bc8565b6040805160018082528183019092529192505f91906020808301908036833701905050905085815f81518110610921576109216125fe565b6001600160a01b039092166020928302919091018201526040515f91610958918a91016001600160a01b0391909116815260200190565b60408051601f19818403018152908290525f54631acf898160e11b83529092506001600160a01b038089169263359f13029287926109a3929116908f908f9089908990600401612612565b5f604051808303818588803b1580156109ba575f80fd5b505af11580156109cc573d5f803e3d5ffd5b5050604080518d8152602081018e90529081018790526001600160a01b03808c1694508c1692508d91507f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139929060600160405180910390a45050505050505050505050565b5f9081525f805160206128e7833981519152602052604090206001015490565b336001600160a01b0386168114801590610a715750610a6f86826110a5565b155b15610aa25760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866112b7565b505050505050565b610ac082610a30565b610ac981611315565b610ad3838361131f565b50505050565b6001600160a01b0381163314610b025760405163334bd91960e11b815260040160405180910390fd5b610b0c82826113c0565b505050565b5f610b1b81611315565b6001600160a01b038316610b4257604051633a19ac6f60e11b815260040160405180910390fd5b4780831115610b6e5760405163671123bf60e11b81526004810184905260248101829052604401610891565b610b816001600160a01b03851684611439565b6040518381526001600160a01b0385169033907f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0906020015b60405180910390a350505050565b5f6106e38266016bcc41e900006126a1565b60608151835114610c0b5781518351604051635b05999160e01b815260048101929092526024820152604401610891565b5f83516001600160401b03811115610c2557610c25611fd4565b604051908082528060200260200182016040528015610c4e578160200160208202803683370190505b5090505f5b8451811015610c9c57602080820286010151610c77906020808402870101516106b4565b828281518110610c8957610c896125fe565b6020908102919091010152600101610c53565b509392505050565b6001600160a01b0383163314801590610cc45750610cc283336110a5565b155b15610cf857335b60405163711bec9160e11b81526001600160a01b0391821660048201529084166024820152604401610891565b610b0c8383836114c5565b610d0b611508565b610d145f61153a565b565b3380610d2061107d565b6001600160a01b031614610d525760405163118cdaa760e01b81526001600160a01b0382166004820152602401610891565b610d5b8161153a565b50565b5f610d67611572565b805490915060ff600160401b82041615906001600160401b03165f81158015610d8d5750825b90505f826001600160401b03166001148015610da85750303b155b905081158015610db6575080155b15610dd45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dfe57845460ff60401b1916600160401b1785555b610e078761159a565b610e10336115ab565b610e186115bc565b610e225f3361131f565b506001600160a01b03861615610e3b57610e3b86610e8a565b8315610e8157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b5f610e9481611315565b816001600160a01b03163b5f03610ebe57604051633e07d28560e11b815260040160405180910390fd5b505f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f9182525f805160206128e7833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610f553383836115c4565b5050565b5f610f6381611315565b610f5582611660565b5f610f7682610bc8565b905080341015610fa257604051633644fa3b60e01b815260048101829052346024820152604401610891565b610fbd8360018460405180602001604052805f815250611699565b5f610fc882346126b8565b90508015610ad357610ad33382611439565b5f610fe63360016106b4565b9050818110156110135760405163cffb3e6960e01b81526004810183905260248101829052604401610891565b5f61101d83610bc8565b9050478181101561104b5760405163671123bf60e11b81526004810183905260248101829052604401610891565b6110573360018661124a565b610ad33383611439565b61106a82610a30565b61107381611315565b610ad383836113c0565b5f807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610f04565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386168114801590611112575061111086826110a5565b155b156111435760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866116f4565b611158611508565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561119c610ee0565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6001600160a01b03831633148015906111f557506111f383336110a5565b155b156112005733610ccb565b610b0c83838361124a565b5f6001600160e01b03198216636cdb3d1360e11b148061123b57506001600160e01b031982166303a24d0760e21b145b806106e357506106e382611777565b6001600160a01b03831661127257604051626a0d4560e21b81525f6004820152602401610891565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916112b0918791859085906117ab565b5050505050565b6001600160a01b0384166112e057604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661130857604051626a0d4560e21b81525f6004820152602401610891565b6112b085858585856117ab565b610d5b81336117fe565b5f5f805160206128e78339815191526113388484610f14565b6113b7575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561136d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106e3565b5f9150506106e3565b5f5f805160206128e78339815191526113d98484610f14565b156113b7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106e3565b804710156114635760405163cf47918160e01b815247600482015260248101829052604401610891565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146114ad576040519150601f19603f3d011682016040523d82523d5f602084013e6114b2565b606091505b509150915081610ad357610ad381611837565b6001600160a01b0383166114ed57604051626a0d4560e21b81525f6004820152602401610891565b610b0c835f848460405180602001604052805f8152506117ab565b33611511610ee0565b6001600160a01b031614610d145760405163118cdaa760e01b8152336004820152602401610891565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610f5582611860565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106e3565b6115a26118d0565b610d5b816118f5565b6115b36118d0565b610d5b81611906565b610d146118d0565b5f805160206128c78339815191526001600160a01b0383166115fa5760405162ced3e160e81b81525f6004820152602401610891565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610bba565b5f805160206128c78339815191527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610b0c838261270f565b6001600160a01b0384166116c257604051632bfa23e760e11b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610aaf5f878484876117ab565b6001600160a01b03841661171d57604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661174557604051626a0d4560e21b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610e8187878484876117ab565b5f6001600160e01b03198216637965db0b60e01b14806106e357506301ffc9a760e01b6001600160e01b03198316146106e3565b6117b785858585611937565b6001600160a01b038416156112b057825133906001036117f057602084810151908401516117e9838989858589611943565b5050610aaf565b610aaf818787878787611a64565b6118088282610f14565b610f555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610891565b8051156118475780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6118d8611b4b565b610d1457604051631afcd79f60e31b815260040160405180910390fd5b6118fd6118d0565b610d5b81611660565b61190e6118d0565b6001600160a01b038116610d5257604051631e4fbdf760e01b81525f6004820152602401610891565b610ad384848484611b64565b6001600160a01b0384163b15610aaf5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061198790899089908890889088906004016127ca565b6020604051808303815f875af19250505080156119c1575060408051601f3d908101601f191682019092526119be9181019061280e565b60015b611a28573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b606091505b5080515f03611a2057604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b6001600160a01b0384163b15610aaf5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611aa89089908990889088908890600401612829565b6020604051808303815f875af1925050508015611ae2575060408051601f3d908101601f19168201909252611adf9181019061280e565b60015b611b0f573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b6001600160e01b0319811663bc197c8160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b5f611b54611572565b54600160401b900460ff16919050565b7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800611b9185858585611c6f565b6001600160a01b038516611c0f575f805b8451811015611bf45760208181028581018201519087018201515f9081529185905260408220805491928392611bd9908490612886565b90915550611be990508184612886565b925050600101611ba2565b5080826001015f828254611c089190612886565b9091555050505b6001600160a01b0384166112b0575f805b8451811015611c5b5760208181028581018201519087018201515f908152918590526040909120805482900390559190910190600101611c20565b506001820180549190910390555050505050565b805182515f805160206128c78339815191529114611cad5782518251604051635b05999160e01b815260048101929092526024820152604401610891565b335f5b8451811015611daf576020818102868101820151908601909101516001600160a01b03891615611d61575f828152602086815260408083206001600160a01b038d16845290915290205481811015611d3b576040516303dee4c560e01b81526001600160a01b038b166004820152602481018290526044810183905260648101849052608401610891565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b03881615611da5575f828152602086815260408083206001600160a01b038c16845290915281208054839290611d9f908490612886565b90915550505b5050600101611cb0565b508351600103611e2f5760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611e20929190918252602082015260400190565b60405180910390a45050610aaf565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611e7e929190612899565b60405180910390a4505050505050565b6001600160a01b0381168114610d5b575f80fd5b5f8060408385031215611eb3575f80fd5b8235611ebe81611e8e565b946020939093013593505050565b6001600160e01b031981168114610d5b575f80fd5b5f60208284031215611ef1575f80fd5b8135611efc81611ecc565b9392505050565b5f60208284031215611f13575f80fd5b5035919050565b5f5b83811015611f34578181015183820152602001611f1c565b50505f910152565b5f8151808452611f53816020860160208601611f1a565b601f01601f19169290920160200192915050565b602081525f611efc6020830184611f3c565b5f805f805f60a08688031215611f8d575f80fd5b8535611f9881611e8e565b945060208601359350604086013592506060860135611fb681611e8e565b91506080860135611fc681611e8e565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561200a5761200a611fd4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561203857612038611fd4565b604052919050565b5f6001600160401b0382111561205857612058611fd4565b5060051b60200190565b5f82601f830112612071575f80fd5b8135602061208661208183612040565b612010565b8083825260208201915060208460051b8701019350868411156120a7575f80fd5b602086015b848110156120c357803583529183019183016120ac565b509695505050505050565b5f6001600160401b038211156120e6576120e6611fd4565b50601f01601f191660200190565b5f82601f830112612103575f80fd5b8135612111612081826120ce565b818152846020838601011115612125575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215612155575f80fd5b853561216081611e8e565b9450602086013561217081611e8e565b935060408601356001600160401b038082111561218b575f80fd5b61219789838a01612062565b945060608801359150808211156121ac575f80fd5b6121b889838a01612062565b935060808801359150808211156121cd575f80fd5b506121da888289016120f4565b9150509295509295909350565b5f80604083850312156121f8575f80fd5b82359150602083013561220a81611e8e565b809150509250929050565b5f8060408385031215612226575f80fd5b82356001600160401b038082111561223c575f80fd5b818501915085601f83011261224f575f80fd5b8135602061225f61208183612040565b82815260059290921b8401810191818101908984111561227d575f80fd5b948201945b838610156122a457853561229581611e8e565b82529482019490820190612282565b965050860135925050808211156122b9575f80fd5b506122c685828601612062565b9150509250929050565b5f815180845260208085019450602084015f5b838110156122ff578151875295820195908201906001016122e3565b509495945050505050565b602081525f611efc60208301846122d0565b5f805f6060848603121561232e575f80fd5b833561233981611e8e565b925060208401356001600160401b0380821115612354575f80fd5b61236087838801612062565b93506040860135915080821115612375575f80fd5b5061238286828701612062565b9150509250925092565b5f806040838503121561239d575f80fd5b82356001600160401b038111156123b2575f80fd5b6123be858286016120f4565b925050602083013561220a81611e8e565b5f602082840312156123df575f80fd5b8135611efc81611e8e565b5f80604083850312156123fb575f80fd5b823561240681611e8e565b91506020830135801515811461220a575f80fd5b5f6020828403121561242a575f80fd5b81356001600160401b0381111561243f575f80fd5b61244b848285016120f4565b949350505050565b5f8060408385031215612464575f80fd5b823561246f81611e8e565b9150602083013561220a81611e8e565b5f805f805f60a08688031215612493575f80fd5b853561249e81611e8e565b945060208601356124ae81611e8e565b9350604086013592506060860135915060808601356001600160401b038111156124d6575f80fd5b6121da888289016120f4565b5f805f606084860312156124f4575f80fd5b83356124ff81611e8e565b95602085013595506040909401359392505050565b600181811c9082168061252857607f821691505b60208210810361254657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602080838503121561255d575f80fd5b82516001600160401b0380821115612573575f80fd5b9084019060608287031215612586575f80fd5b61258e611fe8565b82518281111561259c575f80fd5b83019150601f820187136125ae575f80fd5b81516125bc612081826120ce565b81815288868386010111156125cf575f80fd5b6125de82878301888701611f1a565b825250828401519381019390935250604090810151908201529392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820160018060a01b038089168452602088602086015287604086015260a0606086015282875180855260c0870191506020890194505f5b8181101561266a57855185168352948301949183019160010161264c565b5050858103608087015261267e8188611f3c565b9b9a5050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e3576106e361268d565b818103818111156106e3576106e361268d565b601f821115610b0c57805f5260205f20601f840160051c810160208510156126f05750805b601f840160051c820191505b818110156112b0575f81556001016126fc565b81516001600160401b0381111561272857612728611fd4565b61273c816127368454612514565b846126cb565b602080601f83116001811461276f575f84156127585750858301515b5f19600386901b1c1916600185901b178555610aaf565b5f85815260208120601f198616915b8281101561279d5788860151825594840194600190910190840161277e565b50858210156127ba57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061280390830184611f3c565b979650505050505050565b5f6020828403121561281e575f80fd5b8151611efc81611ecc565b6001600160a01b0386811682528516602082015260a0604082018190525f90612854908301866122d0565b828103606084015261286681866122d0565b9050828103608084015261287a8185611f3c565b98975050505050505050565b808201808211156106e3576106e361268d565b604081525f6128ab60408301856122d0565b82810360208401526128bd81856122d0565b9594505050505056fe88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220705f2a39cbbda6054e9ea513adb54ebab3bfe8485e890c135b7b88701047a4c164736f6c63430008170033", - "nonce": "0x9e", + "input": "0x608060405234801561000f575f5ffd5b5061001e61002360201b60201c565b61019e565b5f61003261012160201b60201c565b9050805f0160089054906101000a900460ff161561007c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff161461011e5767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516101159190610185565b60405180910390a15b50565b5f5f61013161013a60201b60201c565b90508091505090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b5f67ffffffffffffffff82169050919050565b61017f81610163565b82525050565b5f6020820190506101985f830184610176565b92915050565b614ed4806101ab5f395ff3fe608060405260043610610226575f3560e01c80637eb802b911610122578063c5efaae8116100aa578063e985e9c51161006e578063e985e9c5146107eb578063f242432a14610827578063f2fde38b1461084f578063f45caae314610877578063f5298aca146108a15761022d565b8063c5efaae81461072b578063c9f18ebd14610747578063d1b53b9c1461076f578063d547741f14610799578063e30c3978146107c15761022d565b8063a22cb465116100f1578063a22cb4651461064b578063a7fd40bf14610673578063ad77bc401461069b578063b13bfa91146106c5578063bd85b039146106ef5761022d565b80637eb802b9146105935780638da5cb5b146105bb57806391d14854146105e5578063a217fddf146106215761022d565b806336568abe116101b05780634f558e79116101745780634f558e79146104db5780636b20c454146105175780636ebbcb591461053f578063715018a61461056757806379ba50971461057d5761022d565b806336568abe146103eb578063401d448214610413578063463fd1af1461043b5780634b844a1d146104635780634e1273f41461049f5761022d565b8063116039ae116101f7578063116039ae1461030d57806318160ddd14610335578063248a9ca31461035f5780632eb2c2d61461039b5780632f2ff15d146103c35761022d565b806223116814610231578062fdd58e1461025957806301ffc9a7146102955780630e89341c146102d15761022d565b3661022d57005b5f5ffd5b34801561023c575f5ffd5b50610257600480360381019061025291906137b2565b6108c9565b005b348015610264575f5ffd5b5061027f600480360381019061027a91906138b5565b610a4a565b60405161028c9190613902565b60405180910390f35b3480156102a0575f5ffd5b506102bb60048036038101906102b69190613970565b610aad565b6040516102c891906139b5565b60405180910390f35b3480156102dc575f5ffd5b506102f760048036038101906102f291906139ce565b610abe565b6040516103049190613a59565b60405180910390f35b348015610318575f5ffd5b50610333600480360381019061032e9190613ab4565b610b5e565b005b348015610340575f5ffd5b50610349610ee7565b6040516103569190613902565b60405180910390f35b34801561036a575f5ffd5b5061038560048036038101906103809190613b5e565b610efe565b6040516103929190613b98565b60405180910390f35b3480156103a6575f5ffd5b506103c160048036038101906103bc9190613c71565b610f28565b005b3480156103ce575f5ffd5b506103e960048036038101906103e49190613d3c565b610fcf565b005b3480156103f6575f5ffd5b50610411600480360381019061040c9190613d3c565b610ff1565b005b34801561041e575f5ffd5b5061043960048036038101906104349190613d7a565b61106c565b005b348015610446575f5ffd5b50610461600480360381019061045c9190613e56565b6111bc565b005b34801561046e575f5ffd5b50610489600480360381019061048491906139ce565b6113d7565b6040516104969190613902565b60405180910390f35b3480156104aa575f5ffd5b506104c560048036038101906104c09190613f82565b6113f2565b6040516104d291906140af565b60405180910390f35b3480156104e6575f5ffd5b5061050160048036038101906104fc91906139ce565b6114fc565b60405161050e91906139b5565b60405180910390f35b348015610522575f5ffd5b5061053d600480360381019061053891906140cf565b61150f565b005b34801561054a575f5ffd5b5061056560048036038101906105609190614157565b6115bb565b005b348015610572575f5ffd5b5061057b61165b565b005b348015610588575f5ffd5b5061059161166e565b005b34801561059e575f5ffd5b506105b960048036038101906105b49190614157565b6116fc565b005b3480156105c6575f5ffd5b506105cf61179b565b6040516105dc9190614191565b60405180910390f35b3480156105f0575f5ffd5b5061060b60048036038101906106069190613d3c565b6117d0565b60405161061891906139b5565b60405180910390f35b34801561062c575f5ffd5b50610635611841565b6040516106429190613b98565b60405180910390f35b348015610656575f5ffd5b50610671600480360381019061066c91906141d4565b611847565b005b34801561067e575f5ffd5b5061069960048036038101906106949190614212565b61185d565b005b3480156106a6575f5ffd5b506106af611876565b6040516106bc9190613902565b60405180910390f35b3480156106d0575f5ffd5b506106d961187b565b6040516106e691906142b4565b60405180910390f35b3480156106fa575f5ffd5b50610715600480360381019061071091906139ce565b61189f565b6040516107229190613902565b60405180910390f35b610745600480360381019061074091906138b5565b6118c6565b005b348015610752575f5ffd5b5061076d600480360381019061076891906139ce565b61197b565b005b34801561077a575f5ffd5b50610783611a64565b6040516107909190613902565b60405180910390f35b3480156107a4575f5ffd5b506107bf60048036038101906107ba9190613d3c565b611a6f565b005b3480156107cc575f5ffd5b506107d5611a91565b6040516107e29190614191565b60405180910390f35b3480156107f6575f5ffd5b50610811600480360381019061080c91906142cd565b611ac6565b60405161081e91906139b5565b60405180910390f35b348015610832575f5ffd5b5061084d6004803603810190610848919061430b565b611b62565b005b34801561085a575f5ffd5b5061087560048036038101906108709190614157565b611c09565b005b348015610882575f5ffd5b5061088b611cc2565b60405161089891906143be565b60405180910390f35b3480156108ac575f5ffd5b506108c760048036038101906108c291906143d7565b611ce7565b005b60015f6108d7336001610a4a565b9050808211156109205781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610917929190614427565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036109a6576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b233600180611d93565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324856bc366016bcc41e9000086866040518463ffffffff1660e01b8152600401610a169291906145a3565b5f604051808303818588803b158015610a2d575f5ffd5b505af1158015610a3f573d5f5f3e3d5ffd5b505050505050505050565b5f5f610a54611e35565b9050805f015f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b5f610ab782611e5c565b9050919050565b60605f610ac9611e35565b9050806002018054610ada90614605565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0690614605565b8015610b515780601f10610b2857610100808354040283529160200191610b51565b820191905f5260205f20905b815481529060010190602001808311610b3457829003601f168201915b5050505050915050919050565b825f610b6b336001610a4a565b905080821115610bb45781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610bab929190614427565b60405180910390fd5b5f8773ffffffffffffffffffffffffffffffffffffffff163b03610c04576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8790506001861015610c43576040517fea54cbb300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff16638c7a63ae896040518263ffffffff1660e01b8152600401610c7d9190613902565b5f60405180830381865afa158015610c97573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610cbf919061473c565b90505f815f01515103610d0957876040517f505b9f4e000000000000000000000000000000000000000000000000000000008152600401610d009190613902565b60405180910390fd5b610d1533600189611d93565b5f610d1f886113d7565b90505f600167ffffffffffffffff811115610d3d57610d3c6135ac565b5b604051908082528060200260200182016040528015610d6b5781602001602082028036833780820191505090505b50905086815f81518110610d8257610d81614783565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f88604051602001610dce9190614191565b60405160208183030381529060405290508473ffffffffffffffffffffffffffffffffffffffff1663359f1302845f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168e8e87876040518763ffffffff1660e01b8152600401610e41959493929190614867565b5f604051808303818588803b158015610e58575f5ffd5b505af1158015610e6a573d5f5f3e3d5ffd5b50505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168c7f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139928d8e88604051610ed1939291906148c6565b60405180910390a4505050505050505050505050565b5f5f610ef1611f3d565b9050806001015491505090565b5f5f610f08611f64565b9050805f015f8481526020019081526020015f2060010154915050919050565b5f610f31611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610f765750610f748682611ac6565b155b15610fba5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610fb19291906148fb565b60405180910390fd5b610fc78686868686611f92565b505050505050565b610fd882610efe565b610fe181612086565b610feb838361209a565b50505050565b610ff9611f8b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461105d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110678282612192565b505050565b5f5f1b61107881612086565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110dd576040517f743358de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f479050808311156111285782816040517fce22477e00000000000000000000000000000000000000000000000000000000815260040161111f929190614427565b60405180910390fd5b611151838573ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0856040516111ae9190613902565b60405180910390a350505050565b5f6111c5612350565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff1614801561120d5750825b90505f60018367ffffffffffffffff1614801561124057505f3073ffffffffffffffffffffffffffffffffffffffff163b145b90508115801561124e575080155b15611285576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156112d2576001855f0160086101000a81548160ff0219169083151502179055505b6112db88612363565b6112e433612377565b6112ec61238b565b6112f85f5f1b3361209a565b505f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461133657611335876116fc565b5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461137357611372866115bb565b5b83156113cd575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516113c4919061496e565b60405180910390a15b5050505050505050565b5f8166016bcc41e900006113eb91906149b4565b9050919050565b6060815183511461143e57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611435929190614427565b60405180910390fd5b5f835167ffffffffffffffff81111561145a576114596135ac565b5b6040519080825280602002602001820160405280156114885781602001602082028036833780820191505090505b5090505f5f90505b84518110156114f1576114c76114af828761239590919063ffffffff16565b6114c283876123a890919063ffffffff16565b610a4a565b8282815181106114da576114d9614783565b5b602002602001018181525050806001019050611490565b508091505092915050565b5f5f6115078361189f565b119050919050565b611517611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611560575061155e83611559611f8b565b611ac6565b155b156115ab5761156d611f8b565b836040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016115a29291906148fb565b60405180910390fd5b6115b68383836123bb565b505050565b5f5f1b6115c781612086565b5f8273ffffffffffffffffffffffffffffffffffffffff163b03611617576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61166361244b565b61166c5f6124d2565b565b5f611677611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff16611698611a91565b73ffffffffffffffffffffffffffffffffffffffff16146116f057806040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116e79190614191565b60405180910390fd5b6116f9816124d2565b50565b5f5f1b61170881612086565b5f8273ffffffffffffffffffffffffffffffffffffffff163b03611758576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f5f6117a561250f565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f6117da611f64565b9050805f015f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f5f1b81565b611859611852611f8b565b8383612536565b5050565b5f5f1b61186981612086565b611872826126ad565b5050565b600181565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6118a9611f3d565b9050805f015f8481526020019081526020015f2054915050919050565b5f6118d0826113d7565b9050803410156119195780346040517f3644fa3b000000000000000000000000000000000000000000000000000000008152600401611910929190614427565b60405180910390fd5b6119348360018460405180602001604052805f8152506126ce565b5f813461194191906149f5565b90505f81111561197557611974813373ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b5b50505050565b805f611988336001610a4a565b9050808211156119d15781816040517fcffb3e690000000000000000000000000000000000000000000000000000000081526004016119c8929190614427565b60405180910390fd5b5f6119db846113d7565b90505f47905081811015611a285781816040517fce22477e000000000000000000000000000000000000000000000000000000008152600401611a1f929190614427565b60405180910390fd5b611a3433600187611d93565b611a5d823373ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b5050505050565b66016bcc41e9000081565b611a7882610efe565b611a8181612086565b611a8b8383612192565b50505050565b5f5f611a9b612763565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f611ad0611e35565b9050806001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f611b6b611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611bb05750611bae8682611ac6565b155b15611bf45780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611beb9291906148fb565b60405180910390fd5b611c01868686868661278a565b505050505050565b611c1161244b565b5f611c1a612763565b905081815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16611c7c61179b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cef611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d385750611d3683611d31611f8b565b611ac6565b155b15611d8357611d45611f8b565b836040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611d7a9291906148fb565b60405180910390fd5b611d8e838383611d93565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e03575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611dfa9190614191565b60405180910390fd5b5f5f611e0f8484612890565b91509150611e2e855f848460405180602001604052805f8152506128c0565b5050505050565b5f7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500905090565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f2657507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f365750611f358261296c565b5b9050919050565b5f7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800905090565b5f7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612002575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611ff99190614191565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612072575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016120699190614191565b60405180910390fd5b61207f85858585856128c0565b5050505050565b61209781612092611f8b565b6129e5565b50565b5f5f6120a4611f64565b90506120b084846117d0565b612187576001815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612123611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061218c565b5f9150505b92915050565b5f5f61219c611f64565b90506121a884846117d0565b1561227f575f815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061221b611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001915050612284565b5f9150505b92915050565b804710156122d15747816040517fcf4791810000000000000000000000000000000000000000000000000000000081526004016122c8929190614427565b60405180910390fd5b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516122f790614a55565b5f6040518083038185875af1925050503d805f8114612331576040519150601f19603f3d011682016040523d82523d5f602084013e612336565b606091505b50915091508161234a5761234981612a36565b5b50505050565b5f5f61235a612a7a565b90508091505090565b61236b612aa3565b61237481612ae3565b50565b61237f612aa3565b61238881612af7565b50565b612393612aa3565b565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361242b575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016124229190614191565b60405180910390fd5b612446835f848460405180602001604052805f8152506128c0565b505050565b612453611f8b565b73ffffffffffffffffffffffffffffffffffffffff1661247161179b565b73ffffffffffffffffffffffffffffffffffffffff16146124d057612494611f8b565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016124c79190614191565b60405180910390fd5b565b5f6124db612763565b9050805f015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561250b82612b7b565b5050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f61253f611e35565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125b1575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016125a89190614191565b60405180910390fd5b81816001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318460405161269f91906139b5565b60405180910390a350505050565b5f6126b6611e35565b9050818160020190816126c99190614c00565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361273e575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016127359190614191565b60405180910390fd5b5f5f61274a8585612890565b9150915061275b5f878484876128c0565b505050505050565b5f7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036127fa575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016127f19190614191565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361286a575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016128619190614191565b60405180910390fd5b5f5f6128768585612890565b9150915061288787878484876128c0565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b6128cc85858585612c4c565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612965575f612908611f8b565b90506001845103612954575f6129275f866123a890919063ffffffff16565b90505f61293d5f866123a890919063ffffffff16565b905061294d838989858589612c5e565b5050612963565b612962818787878787612e0d565b5b505b5050505050565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806129de57506129dd82612fbc565b5b9050919050565b6129ef82826117d0565b612a325780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612a29929190614ccf565b60405180910390fd5b5050565b5f81511115612a485780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b612aab613025565b612ae1576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b612aeb612aa3565b612af4816126ad565b50565b612aff612aa3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b6f575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612b669190614191565b60405180910390fd5b612b78816124d2565b50565b5f612b8461250f565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b612c5884848484613043565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612e05578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612cbe959493929190614cf6565b6020604051808303815f875af1925050508015612cf957506040513d601f19601f82011682018060405250810190612cf69190614d62565b60015b612d7a573d805f8114612d27576040519150601f19603f3d011682016040523d82523d5f602084013e612d2c565b606091505b505f815103612d7257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612d699190614191565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612e0357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612dfa9190614191565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612fb4578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612e6d959493929190614d8d565b6020604051808303815f875af1925050508015612ea857506040513d601f19601f82011682018060405250810190612ea59190614d62565b60015b612f29573d805f8114612ed6576040519150601f19603f3d011682016040523d82523d5f602084013e612edb565b606091505b505f815103612f2157846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612f189190614191565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612fb257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612fa99190614191565b60405180910390fd5b505b505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f61302e612350565b5f0160089054906101000a900460ff16905090565b5f61304c611f3d565b905061305a858585856131de565b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603613126575f5f90505f5f90505b8451811015613109575f6130b382866123a890919063ffffffff16565b905080845f015f6130cd858a6123a890919063ffffffff16565b81526020019081526020015f205f8282546130e89190614df3565b9250508190555080836130fb9190614df3565b925050806001019050613096565b5080826001015f82825461311d9190614df3565b92505081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036131d7575f5f90505f5f90505b84518110156131c3575f61317f82866123a890919063ffffffff16565b905080845f015f613199858a6123a890919063ffffffff16565b81526020019081526020015f205f8282540392505081905550808301925050806001019050613162565b5080826001015f8282540392505081905550505b5050505050565b5f6131e7611e35565b9050815183511461323357825182516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161322a929190614427565b60405180910390fd5b5f61323c611f8b565b90505f5f90505b8451811015613441575f61326082876123a890919063ffffffff16565b90505f61327683876123a890919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161461339d575f855f015f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561334757898183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161333e9493929190614e26565b60405180910390fd5b818103865f015f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146134345780855f015f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461342c9190614df3565b925050819055505b5050806001019050613243565b5060018451036134fc575f61345f5f866123a890919063ffffffff16565b90505f6134755f866123a890919063ffffffff16565b90508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516134ed929190614427565b60405180910390a4505061357b565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051613572929190614e69565b60405180910390a45b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6135e28261359c565b810181811067ffffffffffffffff82111715613601576136006135ac565b5b80604052505050565b5f613613613583565b905061361f82826135d9565b919050565b5f67ffffffffffffffff82111561363e5761363d6135ac565b5b6136478261359c565b9050602081019050919050565b828183375f83830152505050565b5f61367461366f84613624565b61360a565b9050828152602081018484840111156136905761368f613598565b5b61369b848285613654565b509392505050565b5f82601f8301126136b7576136b6613594565b5b81356136c7848260208601613662565b91505092915050565b5f67ffffffffffffffff8211156136ea576136e96135ac565b5b602082029050602081019050919050565b5f5ffd5b5f61371161370c846136d0565b61360a565b90508083825260208201905060208402830185811115613734576137336136fb565b5b835b8181101561377b57803567ffffffffffffffff81111561375957613758613594565b5b80860161376689826136a3565b85526020850194505050602081019050613736565b5050509392505050565b5f82601f83011261379957613798613594565b5b81356137a98482602086016136ff565b91505092915050565b5f5f604083850312156137c8576137c761358c565b5b5f83013567ffffffffffffffff8111156137e5576137e4613590565b5b6137f1858286016136a3565b925050602083013567ffffffffffffffff81111561381257613811613590565b5b61381e85828601613785565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61385182613828565b9050919050565b61386181613847565b811461386b575f5ffd5b50565b5f8135905061387c81613858565b92915050565b5f819050919050565b61389481613882565b811461389e575f5ffd5b50565b5f813590506138af8161388b565b92915050565b5f5f604083850312156138cb576138ca61358c565b5b5f6138d88582860161386e565b92505060206138e9858286016138a1565b9150509250929050565b6138fc81613882565b82525050565b5f6020820190506139155f8301846138f3565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61394f8161391b565b8114613959575f5ffd5b50565b5f8135905061396a81613946565b92915050565b5f602082840312156139855761398461358c565b5b5f6139928482850161395c565b91505092915050565b5f8115159050919050565b6139af8161399b565b82525050565b5f6020820190506139c85f8301846139a6565b92915050565b5f602082840312156139e3576139e261358c565b5b5f6139f0848285016138a1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f613a2b826139f9565b613a358185613a03565b9350613a45818560208601613a13565b613a4e8161359c565b840191505092915050565b5f6020820190508181035f830152613a718184613a21565b905092915050565b5f613a8382613828565b9050919050565b613a9381613a79565b8114613a9d575f5ffd5b50565b5f81359050613aae81613a8a565b92915050565b5f5f5f5f5f60a08688031215613acd57613acc61358c565b5b5f613ada8882890161386e565b9550506020613aeb888289016138a1565b9450506040613afc888289016138a1565b9350506060613b0d8882890161386e565b9250506080613b1e88828901613aa0565b9150509295509295909350565b5f819050919050565b613b3d81613b2b565b8114613b47575f5ffd5b50565b5f81359050613b5881613b34565b92915050565b5f60208284031215613b7357613b7261358c565b5b5f613b8084828501613b4a565b91505092915050565b613b9281613b2b565b82525050565b5f602082019050613bab5f830184613b89565b92915050565b5f67ffffffffffffffff821115613bcb57613bca6135ac565b5b602082029050602081019050919050565b5f613bee613be984613bb1565b61360a565b90508083825260208201905060208402830185811115613c1157613c106136fb565b5b835b81811015613c3a5780613c2688826138a1565b845260208401935050602081019050613c13565b5050509392505050565b5f82601f830112613c5857613c57613594565b5b8135613c68848260208601613bdc565b91505092915050565b5f5f5f5f5f60a08688031215613c8a57613c8961358c565b5b5f613c978882890161386e565b9550506020613ca88882890161386e565b945050604086013567ffffffffffffffff811115613cc957613cc8613590565b5b613cd588828901613c44565b935050606086013567ffffffffffffffff811115613cf657613cf5613590565b5b613d0288828901613c44565b925050608086013567ffffffffffffffff811115613d2357613d22613590565b5b613d2f888289016136a3565b9150509295509295909350565b5f5f60408385031215613d5257613d5161358c565b5b5f613d5f85828601613b4a565b9250506020613d708582860161386e565b9150509250929050565b5f5f60408385031215613d9057613d8f61358c565b5b5f613d9d85828601613aa0565b9250506020613dae858286016138a1565b9150509250929050565b5f67ffffffffffffffff821115613dd257613dd16135ac565b5b613ddb8261359c565b9050602081019050919050565b5f613dfa613df584613db8565b61360a565b905082815260208101848484011115613e1657613e15613598565b5b613e21848285613654565b509392505050565b5f82601f830112613e3d57613e3c613594565b5b8135613e4d848260208601613de8565b91505092915050565b5f5f5f60608486031215613e6d57613e6c61358c565b5b5f84013567ffffffffffffffff811115613e8a57613e89613590565b5b613e9686828701613e29565b9350506020613ea78682870161386e565b9250506040613eb88682870161386e565b9150509250925092565b5f67ffffffffffffffff821115613edc57613edb6135ac565b5b602082029050602081019050919050565b5f613eff613efa84613ec2565b61360a565b90508083825260208201905060208402830185811115613f2257613f216136fb565b5b835b81811015613f4b5780613f37888261386e565b845260208401935050602081019050613f24565b5050509392505050565b5f82601f830112613f6957613f68613594565b5b8135613f79848260208601613eed565b91505092915050565b5f5f60408385031215613f9857613f9761358c565b5b5f83013567ffffffffffffffff811115613fb557613fb4613590565b5b613fc185828601613f55565b925050602083013567ffffffffffffffff811115613fe257613fe1613590565b5b613fee85828601613c44565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61402a81613882565b82525050565b5f61403b8383614021565b60208301905092915050565b5f602082019050919050565b5f61405d82613ff8565b6140678185614002565b935061407283614012565b805f5b838110156140a25781516140898882614030565b975061409483614047565b925050600181019050614075565b5085935050505092915050565b5f6020820190508181035f8301526140c78184614053565b905092915050565b5f5f5f606084860312156140e6576140e561358c565b5b5f6140f38682870161386e565b935050602084013567ffffffffffffffff81111561411457614113613590565b5b61412086828701613c44565b925050604084013567ffffffffffffffff81111561414157614140613590565b5b61414d86828701613c44565b9150509250925092565b5f6020828403121561416c5761416b61358c565b5b5f6141798482850161386e565b91505092915050565b61418b81613847565b82525050565b5f6020820190506141a45f830184614182565b92915050565b6141b38161399b565b81146141bd575f5ffd5b50565b5f813590506141ce816141aa565b92915050565b5f5f604083850312156141ea576141e961358c565b5b5f6141f78582860161386e565b9250506020614208858286016141c0565b9150509250929050565b5f602082840312156142275761422661358c565b5b5f82013567ffffffffffffffff81111561424457614243613590565b5b61425084828501613e29565b91505092915050565b5f819050919050565b5f61427c61427761427284613828565b614259565b613828565b9050919050565b5f61428d82614262565b9050919050565b5f61429e82614283565b9050919050565b6142ae81614294565b82525050565b5f6020820190506142c75f8301846142a5565b92915050565b5f5f604083850312156142e3576142e261358c565b5b5f6142f08582860161386e565b92505060206143018582860161386e565b9150509250929050565b5f5f5f5f5f60a086880312156143245761432361358c565b5b5f6143318882890161386e565b95505060206143428882890161386e565b9450506040614353888289016138a1565b9350506060614364888289016138a1565b925050608086013567ffffffffffffffff81111561438557614384613590565b5b614391888289016136a3565b9150509295509295909350565b5f6143a882614283565b9050919050565b6143b88161439e565b82525050565b5f6020820190506143d15f8301846143af565b92915050565b5f5f5f606084860312156143ee576143ed61358c565b5b5f6143fb8682870161386e565b935050602061440c868287016138a1565b925050604061441d868287016138a1565b9150509250925092565b5f60408201905061443a5f8301856138f3565b61444760208301846138f3565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6144728261444e565b61447c8185614458565b935061448c818560208601613a13565b6144958161359c565b840191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6144e38261444e565b6144ed81856144c9565b93506144fd818560208601613a13565b6145068161359c565b840191505092915050565b5f61451c83836144d9565b905092915050565b5f602082019050919050565b5f61453a826144a0565b61454481856144aa565b935083602082028501614556856144ba565b805f5b8581101561459157848403895281516145728582614511565b945061457d83614524565b925060208a01995050600181019050614559565b50829750879550505050505092915050565b5f6040820190508181035f8301526145bb8185614468565b905081810360208301526145cf8184614530565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061461c57607f821691505b60208210810361462f5761462e6145d8565b5b50919050565b5f5ffd5b5f5ffd5b5f61464f61464a84613db8565b61360a565b90508281526020810184848401111561466b5761466a613598565b5b614676848285613a13565b509392505050565b5f82601f83011261469257614691613594565b5b81516146a284826020860161463d565b91505092915050565b5f815190506146b98161388b565b92915050565b5f606082840312156146d4576146d3614635565b5b6146de606061360a565b90505f82015167ffffffffffffffff8111156146fd576146fc614639565b5b6147098482850161467e565b5f83015250602061471c848285016146ab565b6020830152506040614730848285016146ab565b60408301525092915050565b5f602082840312156147515761475061358c565b5b5f82015167ffffffffffffffff81111561476e5761476d613590565b5b61477a848285016146bf565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6147e281613847565b82525050565b5f6147f383836147d9565b60208301905092915050565b5f602082019050919050565b5f614815826147b0565b61481f81856147ba565b935061482a836147ca565b805f5b8381101561485a57815161484188826147e8565b975061484c836147ff565b92505060018101905061482d565b5085935050505092915050565b5f60a08201905061487a5f8301886142a5565b61488760208301876138f3565b61489460408301866138f3565b81810360608301526148a6818561480b565b905081810360808301526148ba8184614468565b90509695505050505050565b5f6060820190506148d95f8301866138f3565b6148e660208301856138f3565b6148f360408301846138f3565b949350505050565b5f60408201905061490e5f830185614182565b61491b6020830184614182565b9392505050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f61495861495361494e84614922565b614259565b61492b565b9050919050565b6149688161493e565b82525050565b5f6020820190506149815f83018461495f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6149be82613882565b91506149c983613882565b92508282026149d781613882565b915082820484148315176149ee576149ed614987565b5b5092915050565b5f6149ff82613882565b9150614a0a83613882565b9250828203905081811115614a2257614a21614987565b5b92915050565b5f81905092915050565b50565b5f614a405f83614a28565b9150614a4b82614a32565b5f82019050919050565b5f614a5f82614a35565b9150819050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614ac57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a8a565b614acf8683614a8a565b95508019841693508086168417925050509392505050565b5f614b01614afc614af784613882565b614259565b613882565b9050919050565b5f819050919050565b614b1a83614ae7565b614b2e614b2682614b08565b848454614a96565b825550505050565b5f5f905090565b614b45614b36565b614b50818484614b11565b505050565b5b81811015614b7357614b685f82614b3d565b600181019050614b56565b5050565b601f821115614bb857614b8981614a69565b614b9284614a7b565b81016020851015614ba1578190505b614bb5614bad85614a7b565b830182614b55565b50505b505050565b5f82821c905092915050565b5f614bd85f1984600802614bbd565b1980831691505092915050565b5f614bf08383614bc9565b9150826002028217905092915050565b614c09826139f9565b67ffffffffffffffff811115614c2257614c216135ac565b5b614c2c8254614605565b614c37828285614b77565b5f60209050601f831160018114614c68575f8415614c56578287015190505b614c608582614be5565b865550614cc7565b601f198416614c7686614a69565b5f5b82811015614c9d57848901518255600182019150602085019450602081019050614c78565b86831015614cba5784890151614cb6601f891682614bc9565b8355505b6001600288020188555050505b505050505050565b5f604082019050614ce25f830185614182565b614cef6020830184613b89565b9392505050565b5f60a082019050614d095f830188614182565b614d166020830187614182565b614d2360408301866138f3565b614d3060608301856138f3565b8181036080830152614d428184614468565b90509695505050505050565b5f81519050614d5c81613946565b92915050565b5f60208284031215614d7757614d7661358c565b5b5f614d8484828501614d4e565b91505092915050565b5f60a082019050614da05f830188614182565b614dad6020830187614182565b8181036040830152614dbf8186614053565b90508181036060830152614dd38185614053565b90508181036080830152614de78184614468565b90509695505050505050565b5f614dfd82613882565b9150614e0883613882565b9250828201905080821115614e2057614e1f614987565b5b92915050565b5f608082019050614e395f830187614182565b614e4660208301866138f3565b614e5360408301856138f3565b614e6060608301846138f3565b95945050505050565b5f6040820190508181035f830152614e818185614053565b90508181036020830152614e958184614053565b9050939250505056fea2646970667358221220018542e6ebd2bad4bf05896d2e3ecfe7d74b9c1e20b1c75972dc34529af8847b64736f6c634300081c0033", + "nonce": "0x0", "chainId": "0x2105" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x285c31769fb98ed50f043a9d5702ea22192cc0799757dda6ad334f050190f656", + "hash": "0x07ff9d57a1b6154eb7ecf8931116e3ad498cf4253912c3e786d5f01ffc708bc0", "transactionType": "CREATE", "contractName": "ProxyAdmin", - "contractAddress": "0x2acb0aa03fbaccd288ae1530687290b5f15c93b0", + "contractAddress": "0x5cfe3a86c328258b986d19c51d866d26cf7bec4c", "function": null, "arguments": [ - "0x3c10FAED26a6bb341322d1BAaf2c6ecf5B957D61" + "0xaff4BE6F091274421f0Bf5a2F74eC368a2c017E8" ], "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0x60734", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x9fb27", "value": "0x0", - "input": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c634300081700330000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "nonce": "0x9f", + "input": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", + "nonce": "0x1", "chainId": "0x2105" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", + "hash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", "transactionType": "CREATE", "contractName": "TransparentUpgradeableProxy", - "contractAddress": "0xc168b5f0549afbf40052f60b86d1a1a896612646", + "contractAddress": "0x8098bc5ab006c5052f4663b6ef88529303df60df", "function": null, "arguments": [ - "0x06AD14843AE7c386712143c36f378A5064044CD3", - "0x2ACb0aA03fbACCD288aE1530687290B5f15c93B0", - "0x7ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000004e2516a2c207e84a1839755675dfd8ef6302f0a0000000000000000000000000000000000000000000000000000000000000007697066733a2f2f00000000000000000000000000000000000000000000000000" + "0x3BD63FAd65D12288e7e306107c966490cF1b8189", + "0x5CFE3A86c328258b986D19c51d866d26cF7BeC4c", + "0x463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000006ff5693b99212da76ad316178a184ab56d299b43000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f74657374000000000000000000000000000000000000000000" ], "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0xf6d56", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x17ef8b", "value": "0x0", - "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122011de57fd4b44521ee974555595699df7e8ef5536966300e3722e17cc1200174664736f6c63430008170033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610300000000000000000000000006ad14843ae7c386712143c36f378a5064044cd30000000000000000000000002acb0aa03fbaccd288ae1530687290b5f15c93b0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000847ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000004e2516a2c207e84a1839755675dfd8ef6302f0a0000000000000000000000000000000000000000000000000000000000000007697066733a2f2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0xa0", + "input": "0x60a06040526040516119d43803806119d483398181016040528101906100259190610708565b828161003782826100c160201b60201c565b50508160405161004690610554565b6100509190610783565b604051809103905ff080158015610069573d5f5f3e3d5ffd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100b96100ae61014560201b60201c565b61014e60201b60201c565b50505061081d565b6100d0826101a660201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101325761012c828261027560201b60201c565b50610141565b6101406102fb60201b60201c565b5b5050565b5f608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61017d61033760201b60201c565b8260405161018c92919061079c565b60405180910390a16101a38161039060201b60201c565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361020157806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101f89190610783565b60405180910390fd5b806102337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff168460405161029e9190610807565b5f60405180830381855af49150503d805f81146102d6576040519150601f19603f3d011682016040523d82523d5f602084013e6102db565b606091505b50915091506102f185838361047d60201b60201c565b9250505092915050565b5f341115610335576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103697fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610400575f6040517f62e77ba20000000000000000000000000000000000000000000000000000000081526004016103f79190610783565b60405180910390fd5b806104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f819050919050565b606082610498576104938261051060201b60201c565b610508565b5f82511480156104be57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561050057836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104f79190610783565b60405180910390fd5b819050610509565b5b9392505050565b5f815111156105225780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109c68061100e83390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059b82610572565b9050919050565b6105ab81610591565b81146105b5575f5ffd5b50565b5f815190506105c6816105a2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61061a826105d4565b810181811067ffffffffffffffff82111715610639576106386105e4565b5b80604052505050565b5f61064b610561565b90506106578282610611565b919050565b5f67ffffffffffffffff821115610676576106756105e4565b5b61067f826105d4565b9050602081019050919050565b8281835e5f83830152505050565b5f6106ac6106a78461065c565b610642565b9050828152602081018484840111156106c8576106c76105d0565b5b6106d384828561068c565b509392505050565b5f82601f8301126106ef576106ee6105cc565b5b81516106ff84826020860161069a565b91505092915050565b5f5f5f6060848603121561071f5761071e61056a565b5b5f61072c868287016105b8565b935050602061073d868287016105b8565b925050604084015167ffffffffffffffff81111561075e5761075d61056e565b5b61076a868287016106db565b9150509250925092565b61077d81610591565b82525050565b5f6020820190506107965f830184610774565b92915050565b5f6040820190506107af5f830185610774565b6107bc6020830184610774565b9392505050565b5f81519050919050565b5f81905092915050565b5f6107e1826107c3565b6107eb81856107cd565b93506107fb81856020860161068c565b80840191505092915050565b5f61081282846107d7565b915081905092915050565b6080516107d96108355f395f61010401526107d95ff3fe608060405261000c61000e565b005b610016610101565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f657634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19165f357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100e9576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f1610128565b6100ff565b6100fe61015c565b5b565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f5f5f36600490809261013d939291906104d0565b81019061014a91906106a8565b91509150610158828261016e565b5050565b61016c6101676101e0565b6101ee565b565b6101778261020d565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101d3576101cd82826102d6565b506101dc565b6101db610356565b5b5050565b5f6101e9610392565b905090565b365f5f375f5f365f845af43d5f5f3e805f8114610209573d5ff35b3d5ffd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361026857806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161025f9190610722565b60405180910390fd5b806102947f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102ff919061078d565b5f60405180830381855af49150503d805f8114610337576040519150601f19603f3d011682016040523d82523d5f602084013e61033c565b606091505b509150915061034c8583836103ee565b9250505092915050565b5f341115610390576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103be7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b606082610403576103fe8261047b565b610473565b5f825114801561042957505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561046b57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104629190610722565b60405180910390fd5b819050610474565b5b9392505050565b5f8151111561048d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f5ffd5b5f5ffd5b5f5f858511156104e3576104e26104c8565b5b838611156104f4576104f36104cc565b5b6001850283019150848603905094509492505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61053b82610512565b9050919050565b61054b81610531565b8114610555575f5ffd5b50565b5f8135905061056681610542565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105ba82610574565b810181811067ffffffffffffffff821117156105d9576105d8610584565b5b80604052505050565b5f6105eb6104bf565b90506105f782826105b1565b919050565b5f67ffffffffffffffff82111561061657610615610584565b5b61061f82610574565b9050602081019050919050565b828183375f83830152505050565b5f61064c610647846105fc565b6105e2565b90508281526020810184848401111561066857610667610570565b5b61067384828561062c565b509392505050565b5f82601f83011261068f5761068e61056c565b5b813561069f84826020860161063a565b91505092915050565b5f5f604083850312156106be576106bd61050a565b5b5f6106cb85828601610558565b925050602083013567ffffffffffffffff8111156106ec576106eb61050e565b5b6106f88582860161067b565b9150509250929050565b5f61070c82610512565b9050919050565b61071c81610702565b82525050565b5f6020820190506107355f830184610713565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6107678261073b565b6107718185610745565b935061078181856020860161074f565b80840191505092915050565b5f610798828461075d565b91508190509291505056fea2646970667358221220ccc9529bc6fbbf8f3b86b4a8c5192f0598aa3267a8c6404d4fb67afc4bbc1a5d64736f6c634300081c0033608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c00330000000000000000000000003bd63fad65d12288e7e306107c966490cf1b81890000000000000000000000005cfe3a86c328258b986d19c51d866d26cf7bec4c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000006ff5693b99212da76ad316178a184ab56d299b43000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f7465737400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2", "chainId": "0x2105" }, "additionalContracts": [ { "transactionType": "CREATE", - "address": "0x6d7acf96f09c4e091168cf05493440f13129bece", - "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c634300081700330000000000000000000000002acb0aa03fbaccd288ae1530687290b5f15c93b0" + "address": "0x3682fd5f2ae6dd7f2c3a074d554eaa0e6a2dc834", + "initCode": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c00330000000000000000000000005cfe3a86c328258b986d19c51d866d26cf7bec4c" } ], "isFixedGasLimit": false @@ -70,186 +70,186 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x29b5e4b", + "cumulativeGasUsed": "0x1cb0f3b", "logs": [ { - "address": "0x06ad14843ae7c386712143c36f378a5064044cd3", + "address": "0x3bd63fad65d12288e7e306107c966490cf1b8189", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "transactionHash": "0x396f2b7b1c49e49c082c31baf1e6db636ae87904e23337ea01f16271b1fef1ca", - "transactionIndex": "0x86", - "logIndex": "0x431", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "transactionHash": "0x45faa7a8120c65a7307e937a2d5b0dcd14b0da316857c23c4376dfb0972ad8dc", + "transactionIndex": "0x80", + "logIndex": "0x26d", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000010002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x396f2b7b1c49e49c082c31baf1e6db636ae87904e23337ea01f16271b1fef1ca", - "transactionIndex": "0x86", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "gasUsed": "0x240ca3", - "effectiveGasPrice": "0x25198c", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "transactionHash": "0x45faa7a8120c65a7307e937a2d5b0dcd14b0da316857c23c4376dfb0972ad8dc", + "transactionIndex": "0x80", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "gasUsed": "0x439a6a", + "effectiveGasPrice": "0x792f2d", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", "to": null, - "contractAddress": "0x06ad14843ae7c386712143c36f378a5064044cd3", + "contractAddress": "0x3bd63fad65d12288e7e306107c966490cf1b8189", "l1BaseFeeScalar": "0x8dd", - "l1BlobBaseFee": "0x124da3022f", + "l1BlobBaseFee": "0x1", "l1BlobBaseFeeScalar": "0x101c12", - "l1Fee": "0x1c6e6e9f6affb", - "l1GasPrice": "0x15afcb083", - "l1GasUsed": "0x177b2" + "l1Fee": "0x57dbda7dea", + "l1GasPrice": "0x46c3ea50", + "l1GasUsed": "0x2232e" }, { "status": "0x1", - "cumulativeGasUsed": "0x2a00160", + "cumulativeGasUsed": "0x1d2bcbc", "logs": [ { - "address": "0x2acb0aa03fbaccd288ae1530687290b5f15c93b0", + "address": "0x5cfe3a86c328258b986d19c51d866d26cf7bec4c", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "transactionHash": "0x285c31769fb98ed50f043a9d5702ea22192cc0799757dda6ad334f050190f656", - "transactionIndex": "0x87", - "logIndex": "0x432", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "transactionHash": "0x07ff9d57a1b6154eb7ecf8931116e3ad498cf4253912c3e786d5f01ffc708bc0", + "transactionIndex": "0x81", + "logIndex": "0x26e", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000004000000000000000000000000000000000000000000010000000000000000000000000000000000000000000001000000000000000000000010000000000000000000000000000020000000000000000000000000000400000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000800000000000000000000000000400001000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000100000000000000000000000000000", "type": "0x2", - "transactionHash": "0x285c31769fb98ed50f043a9d5702ea22192cc0799757dda6ad334f050190f656", - "transactionIndex": "0x87", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "gasUsed": "0x4a315", - "effectiveGasPrice": "0x25198c", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "transactionHash": "0x07ff9d57a1b6154eb7ecf8931116e3ad498cf4253912c3e786d5f01ffc708bc0", + "transactionIndex": "0x81", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "gasUsed": "0x7ad81", + "effectiveGasPrice": "0x792f2d", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", "to": null, - "contractAddress": "0x2acb0aa03fbaccd288ae1530687290b5f15c93b0", + "contractAddress": "0x5cfe3a86c328258b986d19c51d866d26cf7bec4c", "l1BaseFeeScalar": "0x8dd", - "l1BlobBaseFee": "0x124da3022f", + "l1BlobBaseFee": "0x1", "l1BlobBaseFeeScalar": "0x101c12", - "l1Fee": "0x43ad41d165f5", - "l1GasPrice": "0x15afcb083", - "l1GasUsed": "0x37e4" + "l1Fee": "0xce2f16303", + "l1GasPrice": "0x46c3ea50", + "l1GasUsed": "0x5041" }, { "status": "0x1", - "cumulativeGasUsed": "0x2abdf54", + "cumulativeGasUsed": "0x1e5263b", "logs": [ { - "address": "0xc168b5f0549afbf40052f60b86d1a1a896612646", + "address": "0x8098bc5ab006c5052f4663b6ef88529303df60df", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000006ad14843ae7c386712143c36f378a5064044cd3" + "0x0000000000000000000000003bd63fad65d12288e7e306107c966490cf1b8189" ], "data": "0x", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", - "transactionIndex": "0x88", - "logIndex": "0x433", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", + "transactionIndex": "0x82", + "logIndex": "0x26f", "removed": false }, { - "address": "0xc168b5f0549afbf40052f60b86d1a1a896612646", + "address": "0x8098bc5ab006c5052f4663b6ef88529303df60df", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", - "transactionIndex": "0x88", - "logIndex": "0x434", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", + "transactionIndex": "0x82", + "logIndex": "0x270", "removed": false }, { - "address": "0xc168b5f0549afbf40052f60b86d1a1a896612646", + "address": "0x8098bc5ab006c5052f4663b6ef88529303df60df", "topics": [ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", - "transactionIndex": "0x88", - "logIndex": "0x435", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", + "transactionIndex": "0x82", + "logIndex": "0x271", "removed": false }, { - "address": "0xc168b5f0549afbf40052f60b86d1a1a896612646", + "address": "0x8098bc5ab006c5052f4663b6ef88529303df60df", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", - "transactionIndex": "0x88", - "logIndex": "0x436", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", + "transactionIndex": "0x82", + "logIndex": "0x272", "removed": false }, { - "address": "0x6d7acf96f09c4e091168cf05493440f13129bece", + "address": "0x3682fd5f2ae6dd7f2c3a074d554eaa0e6a2dc834", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000002acb0aa03fbaccd288ae1530687290b5f15c93b0" + "0x0000000000000000000000005cfe3a86c328258b986d19c51d866d26cf7bec4c" ], "data": "0x", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", - "transactionIndex": "0x88", - "logIndex": "0x437", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", + "transactionIndex": "0x82", + "logIndex": "0x273", "removed": false }, { - "address": "0xc168b5f0549afbf40052f60b86d1a1a896612646", + "address": "0x8098bc5ab006c5052f4663b6ef88529303df60df", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d7acf96f09c4e091168cf05493440f13129bece", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", - "transactionIndex": "0x88", - "logIndex": "0x438", + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003682fd5f2ae6dd7f2c3a074d554eaa0e6a2dc834", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", + "transactionIndex": "0x82", + "logIndex": "0x274", "removed": false } ], - "logsBloom": "0x00000004000000000040000000000000400000000000000000800000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000080000402000001000000000000000000000000000000000000020004000000000000000800000020800000000000000000000000400000000000000000000800000000000000000000000084000000000200800000000000000000000000000000008200000000000000000000001000000000000000000021000000000000000000000010000000000404000120000000000020000000000000000000004000000000000000000000000000000000040000000000", + "logsBloom": "0x00200004000000000002000000000000400000000000000000800000000080000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000020002000001000000000000000000000000000000100000020000000000000000000800001000800000000000000000000000400000000400000000002800000000000000000000000080000000000000800004000000000000000000000000000000000000000000000000001000000000000020000020000000000000000080000000000000000404000100000000000020000000000000000000000000000000004000100000002000000000000000000000", "type": "0x2", - "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", - "transactionIndex": "0x88", - "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", - "blockNumber": "0x1c0a6d1", - "gasUsed": "0xbddf4", - "effectiveGasPrice": "0x25198c", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", + "transactionIndex": "0x82", + "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", + "blockNumber": "0x207fab2", + "gasUsed": "0x12697f", + "effectiveGasPrice": "0x792f2d", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", "to": null, - "contractAddress": "0xc168b5f0549afbf40052f60b86d1a1a896612646", + "contractAddress": "0x8098bc5ab006c5052f4663b6ef88529303df60df", "l1BaseFeeScalar": "0x8dd", - "l1BlobBaseFee": "0x124da3022f", + "l1BlobBaseFee": "0x1", "l1BlobBaseFeeScalar": "0x101c12", - "l1Fee": "0xa720414f5c8e", - "l1GasPrice": "0x15afcb083", - "l1GasUsed": "0x8a06" + "l1Fee": "0x1e549c0780", + "l1GasPrice": "0x46c3ea50", + "l1GasUsed": "0xbce5" } ], "libraries": [], @@ -257,10 +257,10 @@ "returns": { "0": { "internal_type": "struct DeployCredits.DeploymentResult", - "value": "(0x06AD14843AE7c386712143c36f378A5064044CD3, 0xC168B5F0549AfbF40052f60b86D1A1a896612646, 0x2ACb0aA03fbACCD288aE1530687290B5f15c93B0)" + "value": "(0x3BD63FAd65D12288e7e306107c966490cF1b8189, 0x8098BC5aB006C5052F4663b6Ef88529303df60dF, 0x5CFE3A86c328258b986D19c51d866d26cF7BeC4c)" } }, - "timestamp": 1745595074, + "timestamp": 1754944118, "chain": 8453, - "commit": "94dea88" + "commit": "5d527ff" } \ No newline at end of file diff --git a/broadcast/Deploy.s.sol/84532/run-latest.json b/broadcast/Deploy.s.sol/84532/run-latest.json index 770d564..5cbcd06 100644 --- a/broadcast/Deploy.s.sol/84532/run-latest.json +++ b/broadcast/Deploy.s.sol/84532/run-latest.json @@ -1,67 +1,67 @@ { "transactions": [ { - "hash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", + "hash": "0xe3c6478210f30904aec7cf9545dfed1fb631651338b64db22e0c0996bd1041a8", "transactionType": "CREATE", "contractName": "Credits1155", - "contractAddress": "0x1a9507b4404854b48164b209bfd0d4790b609762", + "contractAddress": "0xaddba3954346241fa7517ffb46c33d06c57344c4", "function": null, "arguments": null, "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0x2edd3a", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x57e256", "value": "0x0", - "input": "0x608060405234801562000010575f80fd5b506200001b62000021565b620000d5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d25780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61293c80620000e35f395ff3fe6080604052600436106101fe575f3560e01c80637eb802b911610113578063c5efaae81161009d578063e30c39781161006d578063e30c397814610624578063e985e9c514610638578063f242432a14610657578063f2fde38b14610676578063f5298aca14610695575f80fd5b8063c5efaae8146105b9578063c9f18ebd146105cc578063d1b53b9c146105eb578063d547741f14610605575f80fd5b8063a22cb465116100e3578063a22cb465146104ff578063a7fd40bf1461051e578063ad77bc401461053d578063b13bfa9114610551578063bd85b0391461056f575f80fd5b80637eb802b9146104825780638da5cb5b146104a157806391d14854146104cd578063a217fddf146104ec575f80fd5b806336568abe116101945780634f558e79116101645780634f558e79146103d05780636b20c4541461041c578063715018a61461043b57806379ba50971461044f5780637ab4339d14610463575f80fd5b806336568abe14610347578063401d4482146103665780634b844a1d146103855780634e1273f4146103a4575f80fd5b806318160ddd116101cf57806318160ddd146102b7578063248a9ca3146102ea5780632eb2c2d6146103095780632f2ff15d14610328575f80fd5b8062fdd58e1461020957806301ffc9a71461023b5780630e89341c1461026a578063116039ae14610296575f80fd5b3661020557005b5f80fd5b348015610214575f80fd5b50610228610223366004611ea2565b6106b4565b6040519081526020015b60405180910390f35b348015610246575f80fd5b5061025a610255366004611ee1565b6106e9565b6040519015158152602001610232565b348015610275575f80fd5b50610289610284366004611f03565b6106f3565b6040516102329190611f67565b3480156102a1575f80fd5b506102b56102b0366004611f79565b6107b5565b005b3480156102c2575f80fd5b507f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e280154610228565b3480156102f5575f80fd5b50610228610304366004611f03565b610a30565b348015610314575f80fd5b506102b5610323366004612141565b610a50565b348015610333575f80fd5b506102b56103423660046121e7565b610ab7565b348015610352575f80fd5b506102b56103613660046121e7565b610ad9565b348015610371575f80fd5b506102b5610380366004611ea2565b610b11565b348015610390575f80fd5b5061022861039f366004611f03565b610bc8565b3480156103af575f80fd5b506103c36103be366004612215565b610bda565b604051610232919061230a565b3480156103db575f80fd5b5061025a6103ea366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e28006020526040902054151590565b348015610427575f80fd5b506102b561043636600461231c565b610ca4565b348015610446575f80fd5b506102b5610d03565b34801561045a575f80fd5b506102b5610d16565b34801561046e575f80fd5b506102b561047d36600461238c565b610d5e565b34801561048d575f80fd5b506102b561049c3660046123cf565b610e8a565b3480156104ac575f80fd5b506104b5610ee0565b6040516001600160a01b039091168152602001610232565b3480156104d8575f80fd5b5061025a6104e73660046121e7565b610f14565b3480156104f7575f80fd5b506102285f81565b34801561050a575f80fd5b506102b56105193660046123ea565b610f4a565b348015610529575f80fd5b506102b561053836600461241a565b610f59565b348015610548575f80fd5b50610228600181565b34801561055c575f80fd5b505f546104b5906001600160a01b031681565b34801561057a575f80fd5b50610228610589366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800602052604090205490565b6102b56105c7366004611ea2565b610f6c565b3480156105d7575f80fd5b506102b56105e6366004611f03565b610fda565b3480156105f6575f80fd5b5061022866016bcc41e9000081565b348015610610575f80fd5b506102b561061f3660046121e7565b611061565b34801561062f575f80fd5b506104b561107d565b348015610643575f80fd5b5061025a610652366004612453565b6110a5565b348015610662575f80fd5b506102b561067136600461247f565b6110f1565b348015610681575f80fd5b506102b56106903660046123cf565b611150565b3480156106a0575f80fd5b506102b56106af3660046124e2565b6111d5565b5f8181525f805160206128c7833981519152602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6106e38261120b565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450280546060915f805160206128c78339815191529161073190612514565b80601f016020809104026020016040519081016040528092919081815260200182805461075d90612514565b80156107a85780601f1061077f576101008083540402835291602001916107a8565b820191905f5260205f20905b81548152906001019060200180831161078b57829003601f168201915b5050505050915050919050565b846001600160a01b03163b5f036107df57604051633e07d28560e11b815260040160405180910390fd5b8460018410156108025760405163ea54cbb360e01b815260040160405180910390fd5b60405163463d31d760e11b8152600481018690525f906001600160a01b03831690638c7a63ae906024015f60405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261086d919081019061254c565b8051519091505f0361089a5760405163282dcfa760e11b8152600481018790526024015b60405180910390fd5b5f6108a63360016106b4565b9050808611156108d35760405163cffb3e6960e01b81526004810187905260248101829052604401610891565b6108df3360018861124a565b5f6108e987610bc8565b6040805160018082528183019092529192505f91906020808301908036833701905050905085815f81518110610921576109216125fe565b6001600160a01b039092166020928302919091018201526040515f91610958918a91016001600160a01b0391909116815260200190565b60408051601f19818403018152908290525f54631acf898160e11b83529092506001600160a01b038089169263359f13029287926109a3929116908f908f9089908990600401612612565b5f604051808303818588803b1580156109ba575f80fd5b505af11580156109cc573d5f803e3d5ffd5b5050604080518d8152602081018e90529081018790526001600160a01b03808c1694508c1692508d91507f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139929060600160405180910390a45050505050505050505050565b5f9081525f805160206128e7833981519152602052604090206001015490565b336001600160a01b0386168114801590610a715750610a6f86826110a5565b155b15610aa25760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866112b7565b505050505050565b610ac082610a30565b610ac981611315565b610ad3838361131f565b50505050565b6001600160a01b0381163314610b025760405163334bd91960e11b815260040160405180910390fd5b610b0c82826113c0565b505050565b5f610b1b81611315565b6001600160a01b038316610b4257604051633a19ac6f60e11b815260040160405180910390fd5b4780831115610b6e5760405163671123bf60e11b81526004810184905260248101829052604401610891565b610b816001600160a01b03851684611439565b6040518381526001600160a01b0385169033907f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0906020015b60405180910390a350505050565b5f6106e38266016bcc41e900006126a1565b60608151835114610c0b5781518351604051635b05999160e01b815260048101929092526024820152604401610891565b5f83516001600160401b03811115610c2557610c25611fd4565b604051908082528060200260200182016040528015610c4e578160200160208202803683370190505b5090505f5b8451811015610c9c57602080820286010151610c77906020808402870101516106b4565b828281518110610c8957610c896125fe565b6020908102919091010152600101610c53565b509392505050565b6001600160a01b0383163314801590610cc45750610cc283336110a5565b155b15610cf857335b60405163711bec9160e11b81526001600160a01b0391821660048201529084166024820152604401610891565b610b0c8383836114c5565b610d0b611508565b610d145f61153a565b565b3380610d2061107d565b6001600160a01b031614610d525760405163118cdaa760e01b81526001600160a01b0382166004820152602401610891565b610d5b8161153a565b50565b5f610d67611572565b805490915060ff600160401b82041615906001600160401b03165f81158015610d8d5750825b90505f826001600160401b03166001148015610da85750303b155b905081158015610db6575080155b15610dd45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dfe57845460ff60401b1916600160401b1785555b610e078761159a565b610e10336115ab565b610e186115bc565b610e225f3361131f565b506001600160a01b03861615610e3b57610e3b86610e8a565b8315610e8157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b5f610e9481611315565b816001600160a01b03163b5f03610ebe57604051633e07d28560e11b815260040160405180910390fd5b505f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f9182525f805160206128e7833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610f553383836115c4565b5050565b5f610f6381611315565b610f5582611660565b5f610f7682610bc8565b905080341015610fa257604051633644fa3b60e01b815260048101829052346024820152604401610891565b610fbd8360018460405180602001604052805f815250611699565b5f610fc882346126b8565b90508015610ad357610ad33382611439565b5f610fe63360016106b4565b9050818110156110135760405163cffb3e6960e01b81526004810183905260248101829052604401610891565b5f61101d83610bc8565b9050478181101561104b5760405163671123bf60e11b81526004810183905260248101829052604401610891565b6110573360018661124a565b610ad33383611439565b61106a82610a30565b61107381611315565b610ad383836113c0565b5f807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610f04565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386168114801590611112575061111086826110a5565b155b156111435760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866116f4565b611158611508565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561119c610ee0565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6001600160a01b03831633148015906111f557506111f383336110a5565b155b156112005733610ccb565b610b0c83838361124a565b5f6001600160e01b03198216636cdb3d1360e11b148061123b57506001600160e01b031982166303a24d0760e21b145b806106e357506106e382611777565b6001600160a01b03831661127257604051626a0d4560e21b81525f6004820152602401610891565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916112b0918791859085906117ab565b5050505050565b6001600160a01b0384166112e057604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661130857604051626a0d4560e21b81525f6004820152602401610891565b6112b085858585856117ab565b610d5b81336117fe565b5f5f805160206128e78339815191526113388484610f14565b6113b7575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561136d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106e3565b5f9150506106e3565b5f5f805160206128e78339815191526113d98484610f14565b156113b7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106e3565b804710156114635760405163cf47918160e01b815247600482015260248101829052604401610891565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146114ad576040519150601f19603f3d011682016040523d82523d5f602084013e6114b2565b606091505b509150915081610ad357610ad381611837565b6001600160a01b0383166114ed57604051626a0d4560e21b81525f6004820152602401610891565b610b0c835f848460405180602001604052805f8152506117ab565b33611511610ee0565b6001600160a01b031614610d145760405163118cdaa760e01b8152336004820152602401610891565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610f5582611860565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106e3565b6115a26118d0565b610d5b816118f5565b6115b36118d0565b610d5b81611906565b610d146118d0565b5f805160206128c78339815191526001600160a01b0383166115fa5760405162ced3e160e81b81525f6004820152602401610891565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610bba565b5f805160206128c78339815191527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610b0c838261270f565b6001600160a01b0384166116c257604051632bfa23e760e11b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610aaf5f878484876117ab565b6001600160a01b03841661171d57604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661174557604051626a0d4560e21b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610e8187878484876117ab565b5f6001600160e01b03198216637965db0b60e01b14806106e357506301ffc9a760e01b6001600160e01b03198316146106e3565b6117b785858585611937565b6001600160a01b038416156112b057825133906001036117f057602084810151908401516117e9838989858589611943565b5050610aaf565b610aaf818787878787611a64565b6118088282610f14565b610f555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610891565b8051156118475780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6118d8611b4b565b610d1457604051631afcd79f60e31b815260040160405180910390fd5b6118fd6118d0565b610d5b81611660565b61190e6118d0565b6001600160a01b038116610d5257604051631e4fbdf760e01b81525f6004820152602401610891565b610ad384848484611b64565b6001600160a01b0384163b15610aaf5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061198790899089908890889088906004016127ca565b6020604051808303815f875af19250505080156119c1575060408051601f3d908101601f191682019092526119be9181019061280e565b60015b611a28573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b606091505b5080515f03611a2057604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b6001600160a01b0384163b15610aaf5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611aa89089908990889088908890600401612829565b6020604051808303815f875af1925050508015611ae2575060408051601f3d908101601f19168201909252611adf9181019061280e565b60015b611b0f573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b6001600160e01b0319811663bc197c8160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b5f611b54611572565b54600160401b900460ff16919050565b7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800611b9185858585611c6f565b6001600160a01b038516611c0f575f805b8451811015611bf45760208181028581018201519087018201515f9081529185905260408220805491928392611bd9908490612886565b90915550611be990508184612886565b925050600101611ba2565b5080826001015f828254611c089190612886565b9091555050505b6001600160a01b0384166112b0575f805b8451811015611c5b5760208181028581018201519087018201515f908152918590526040909120805482900390559190910190600101611c20565b506001820180549190910390555050505050565b805182515f805160206128c78339815191529114611cad5782518251604051635b05999160e01b815260048101929092526024820152604401610891565b335f5b8451811015611daf576020818102868101820151908601909101516001600160a01b03891615611d61575f828152602086815260408083206001600160a01b038d16845290915290205481811015611d3b576040516303dee4c560e01b81526001600160a01b038b166004820152602481018290526044810183905260648101849052608401610891565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b03881615611da5575f828152602086815260408083206001600160a01b038c16845290915281208054839290611d9f908490612886565b90915550505b5050600101611cb0565b508351600103611e2f5760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611e20929190918252602082015260400190565b60405180910390a45050610aaf565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611e7e929190612899565b60405180910390a4505050505050565b6001600160a01b0381168114610d5b575f80fd5b5f8060408385031215611eb3575f80fd5b8235611ebe81611e8e565b946020939093013593505050565b6001600160e01b031981168114610d5b575f80fd5b5f60208284031215611ef1575f80fd5b8135611efc81611ecc565b9392505050565b5f60208284031215611f13575f80fd5b5035919050565b5f5b83811015611f34578181015183820152602001611f1c565b50505f910152565b5f8151808452611f53816020860160208601611f1a565b601f01601f19169290920160200192915050565b602081525f611efc6020830184611f3c565b5f805f805f60a08688031215611f8d575f80fd5b8535611f9881611e8e565b945060208601359350604086013592506060860135611fb681611e8e565b91506080860135611fc681611e8e565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561200a5761200a611fd4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561203857612038611fd4565b604052919050565b5f6001600160401b0382111561205857612058611fd4565b5060051b60200190565b5f82601f830112612071575f80fd5b8135602061208661208183612040565b612010565b8083825260208201915060208460051b8701019350868411156120a7575f80fd5b602086015b848110156120c357803583529183019183016120ac565b509695505050505050565b5f6001600160401b038211156120e6576120e6611fd4565b50601f01601f191660200190565b5f82601f830112612103575f80fd5b8135612111612081826120ce565b818152846020838601011115612125575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215612155575f80fd5b853561216081611e8e565b9450602086013561217081611e8e565b935060408601356001600160401b038082111561218b575f80fd5b61219789838a01612062565b945060608801359150808211156121ac575f80fd5b6121b889838a01612062565b935060808801359150808211156121cd575f80fd5b506121da888289016120f4565b9150509295509295909350565b5f80604083850312156121f8575f80fd5b82359150602083013561220a81611e8e565b809150509250929050565b5f8060408385031215612226575f80fd5b82356001600160401b038082111561223c575f80fd5b818501915085601f83011261224f575f80fd5b8135602061225f61208183612040565b82815260059290921b8401810191818101908984111561227d575f80fd5b948201945b838610156122a457853561229581611e8e565b82529482019490820190612282565b965050860135925050808211156122b9575f80fd5b506122c685828601612062565b9150509250929050565b5f815180845260208085019450602084015f5b838110156122ff578151875295820195908201906001016122e3565b509495945050505050565b602081525f611efc60208301846122d0565b5f805f6060848603121561232e575f80fd5b833561233981611e8e565b925060208401356001600160401b0380821115612354575f80fd5b61236087838801612062565b93506040860135915080821115612375575f80fd5b5061238286828701612062565b9150509250925092565b5f806040838503121561239d575f80fd5b82356001600160401b038111156123b2575f80fd5b6123be858286016120f4565b925050602083013561220a81611e8e565b5f602082840312156123df575f80fd5b8135611efc81611e8e565b5f80604083850312156123fb575f80fd5b823561240681611e8e565b91506020830135801515811461220a575f80fd5b5f6020828403121561242a575f80fd5b81356001600160401b0381111561243f575f80fd5b61244b848285016120f4565b949350505050565b5f8060408385031215612464575f80fd5b823561246f81611e8e565b9150602083013561220a81611e8e565b5f805f805f60a08688031215612493575f80fd5b853561249e81611e8e565b945060208601356124ae81611e8e565b9350604086013592506060860135915060808601356001600160401b038111156124d6575f80fd5b6121da888289016120f4565b5f805f606084860312156124f4575f80fd5b83356124ff81611e8e565b95602085013595506040909401359392505050565b600181811c9082168061252857607f821691505b60208210810361254657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602080838503121561255d575f80fd5b82516001600160401b0380821115612573575f80fd5b9084019060608287031215612586575f80fd5b61258e611fe8565b82518281111561259c575f80fd5b83019150601f820187136125ae575f80fd5b81516125bc612081826120ce565b81815288868386010111156125cf575f80fd5b6125de82878301888701611f1a565b825250828401519381019390935250604090810151908201529392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820160018060a01b038089168452602088602086015287604086015260a0606086015282875180855260c0870191506020890194505f5b8181101561266a57855185168352948301949183019160010161264c565b5050858103608087015261267e8188611f3c565b9b9a5050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e3576106e361268d565b818103818111156106e3576106e361268d565b601f821115610b0c57805f5260205f20601f840160051c810160208510156126f05750805b601f840160051c820191505b818110156112b0575f81556001016126fc565b81516001600160401b0381111561272857612728611fd4565b61273c816127368454612514565b846126cb565b602080601f83116001811461276f575f84156127585750858301515b5f19600386901b1c1916600185901b178555610aaf565b5f85815260208120601f198616915b8281101561279d5788860151825594840194600190910190840161277e565b50858210156127ba57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061280390830184611f3c565b979650505050505050565b5f6020828403121561281e575f80fd5b8151611efc81611ecc565b6001600160a01b0386811682528516602082015260a0604082018190525f90612854908301866122d0565b828103606084015261286681866122d0565b9050828103608084015261287a8185611f3c565b98975050505050505050565b808201808211156106e3576106e361268d565b604081525f6128ab60408301856122d0565b82810360208401526128bd81856122d0565b9594505050505056fe88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220705f2a39cbbda6054e9ea513adb54ebab3bfe8485e890c135b7b88701047a4c164736f6c63430008170033", - "nonce": "0x1e", + "input": "0x608060405234801561000f575f5ffd5b5061001e61002360201b60201c565b61019e565b5f61003261012160201b60201c565b9050805f0160089054906101000a900460ff161561007c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff161461011e5767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516101159190610185565b60405180910390a15b50565b5f5f61013161013a60201b60201c565b90508091505090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b5f67ffffffffffffffff82169050919050565b61017f81610163565b82525050565b5f6020820190506101985f830184610176565b92915050565b614ed4806101ab5f395ff3fe608060405260043610610226575f3560e01c80637eb802b911610122578063c5efaae8116100aa578063e985e9c51161006e578063e985e9c5146107eb578063f242432a14610827578063f2fde38b1461084f578063f45caae314610877578063f5298aca146108a15761022d565b8063c5efaae81461072b578063c9f18ebd14610747578063d1b53b9c1461076f578063d547741f14610799578063e30c3978146107c15761022d565b8063a22cb465116100f1578063a22cb4651461064b578063a7fd40bf14610673578063ad77bc401461069b578063b13bfa91146106c5578063bd85b039146106ef5761022d565b80637eb802b9146105935780638da5cb5b146105bb57806391d14854146105e5578063a217fddf146106215761022d565b806336568abe116101b05780634f558e79116101745780634f558e79146104db5780636b20c454146105175780636ebbcb591461053f578063715018a61461056757806379ba50971461057d5761022d565b806336568abe146103eb578063401d448214610413578063463fd1af1461043b5780634b844a1d146104635780634e1273f41461049f5761022d565b8063116039ae116101f7578063116039ae1461030d57806318160ddd14610335578063248a9ca31461035f5780632eb2c2d61461039b5780632f2ff15d146103c35761022d565b806223116814610231578062fdd58e1461025957806301ffc9a7146102955780630e89341c146102d15761022d565b3661022d57005b5f5ffd5b34801561023c575f5ffd5b50610257600480360381019061025291906137b2565b6108c9565b005b348015610264575f5ffd5b5061027f600480360381019061027a91906138b5565b610a4a565b60405161028c9190613902565b60405180910390f35b3480156102a0575f5ffd5b506102bb60048036038101906102b69190613970565b610aad565b6040516102c891906139b5565b60405180910390f35b3480156102dc575f5ffd5b506102f760048036038101906102f291906139ce565b610abe565b6040516103049190613a59565b60405180910390f35b348015610318575f5ffd5b50610333600480360381019061032e9190613ab4565b610b5e565b005b348015610340575f5ffd5b50610349610ee7565b6040516103569190613902565b60405180910390f35b34801561036a575f5ffd5b5061038560048036038101906103809190613b5e565b610efe565b6040516103929190613b98565b60405180910390f35b3480156103a6575f5ffd5b506103c160048036038101906103bc9190613c71565b610f28565b005b3480156103ce575f5ffd5b506103e960048036038101906103e49190613d3c565b610fcf565b005b3480156103f6575f5ffd5b50610411600480360381019061040c9190613d3c565b610ff1565b005b34801561041e575f5ffd5b5061043960048036038101906104349190613d7a565b61106c565b005b348015610446575f5ffd5b50610461600480360381019061045c9190613e56565b6111bc565b005b34801561046e575f5ffd5b50610489600480360381019061048491906139ce565b6113d7565b6040516104969190613902565b60405180910390f35b3480156104aa575f5ffd5b506104c560048036038101906104c09190613f82565b6113f2565b6040516104d291906140af565b60405180910390f35b3480156104e6575f5ffd5b5061050160048036038101906104fc91906139ce565b6114fc565b60405161050e91906139b5565b60405180910390f35b348015610522575f5ffd5b5061053d600480360381019061053891906140cf565b61150f565b005b34801561054a575f5ffd5b5061056560048036038101906105609190614157565b6115bb565b005b348015610572575f5ffd5b5061057b61165b565b005b348015610588575f5ffd5b5061059161166e565b005b34801561059e575f5ffd5b506105b960048036038101906105b49190614157565b6116fc565b005b3480156105c6575f5ffd5b506105cf61179b565b6040516105dc9190614191565b60405180910390f35b3480156105f0575f5ffd5b5061060b60048036038101906106069190613d3c565b6117d0565b60405161061891906139b5565b60405180910390f35b34801561062c575f5ffd5b50610635611841565b6040516106429190613b98565b60405180910390f35b348015610656575f5ffd5b50610671600480360381019061066c91906141d4565b611847565b005b34801561067e575f5ffd5b5061069960048036038101906106949190614212565b61185d565b005b3480156106a6575f5ffd5b506106af611876565b6040516106bc9190613902565b60405180910390f35b3480156106d0575f5ffd5b506106d961187b565b6040516106e691906142b4565b60405180910390f35b3480156106fa575f5ffd5b50610715600480360381019061071091906139ce565b61189f565b6040516107229190613902565b60405180910390f35b610745600480360381019061074091906138b5565b6118c6565b005b348015610752575f5ffd5b5061076d600480360381019061076891906139ce565b61197b565b005b34801561077a575f5ffd5b50610783611a64565b6040516107909190613902565b60405180910390f35b3480156107a4575f5ffd5b506107bf60048036038101906107ba9190613d3c565b611a6f565b005b3480156107cc575f5ffd5b506107d5611a91565b6040516107e29190614191565b60405180910390f35b3480156107f6575f5ffd5b50610811600480360381019061080c91906142cd565b611ac6565b60405161081e91906139b5565b60405180910390f35b348015610832575f5ffd5b5061084d6004803603810190610848919061430b565b611b62565b005b34801561085a575f5ffd5b5061087560048036038101906108709190614157565b611c09565b005b348015610882575f5ffd5b5061088b611cc2565b60405161089891906143be565b60405180910390f35b3480156108ac575f5ffd5b506108c760048036038101906108c291906143d7565b611ce7565b005b60015f6108d7336001610a4a565b9050808211156109205781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610917929190614427565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036109a6576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b233600180611d93565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324856bc366016bcc41e9000086866040518463ffffffff1660e01b8152600401610a169291906145a3565b5f604051808303818588803b158015610a2d575f5ffd5b505af1158015610a3f573d5f5f3e3d5ffd5b505050505050505050565b5f5f610a54611e35565b9050805f015f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b5f610ab782611e5c565b9050919050565b60605f610ac9611e35565b9050806002018054610ada90614605565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0690614605565b8015610b515780601f10610b2857610100808354040283529160200191610b51565b820191905f5260205f20905b815481529060010190602001808311610b3457829003601f168201915b5050505050915050919050565b825f610b6b336001610a4a565b905080821115610bb45781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610bab929190614427565b60405180910390fd5b5f8773ffffffffffffffffffffffffffffffffffffffff163b03610c04576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8790506001861015610c43576040517fea54cbb300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff16638c7a63ae896040518263ffffffff1660e01b8152600401610c7d9190613902565b5f60405180830381865afa158015610c97573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610cbf919061473c565b90505f815f01515103610d0957876040517f505b9f4e000000000000000000000000000000000000000000000000000000008152600401610d009190613902565b60405180910390fd5b610d1533600189611d93565b5f610d1f886113d7565b90505f600167ffffffffffffffff811115610d3d57610d3c6135ac565b5b604051908082528060200260200182016040528015610d6b5781602001602082028036833780820191505090505b50905086815f81518110610d8257610d81614783565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f88604051602001610dce9190614191565b60405160208183030381529060405290508473ffffffffffffffffffffffffffffffffffffffff1663359f1302845f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168e8e87876040518763ffffffff1660e01b8152600401610e41959493929190614867565b5f604051808303818588803b158015610e58575f5ffd5b505af1158015610e6a573d5f5f3e3d5ffd5b50505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168c7f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139928d8e88604051610ed1939291906148c6565b60405180910390a4505050505050505050505050565b5f5f610ef1611f3d565b9050806001015491505090565b5f5f610f08611f64565b9050805f015f8481526020019081526020015f2060010154915050919050565b5f610f31611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610f765750610f748682611ac6565b155b15610fba5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610fb19291906148fb565b60405180910390fd5b610fc78686868686611f92565b505050505050565b610fd882610efe565b610fe181612086565b610feb838361209a565b50505050565b610ff9611f8b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461105d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110678282612192565b505050565b5f5f1b61107881612086565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110dd576040517f743358de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f479050808311156111285782816040517fce22477e00000000000000000000000000000000000000000000000000000000815260040161111f929190614427565b60405180910390fd5b611151838573ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0856040516111ae9190613902565b60405180910390a350505050565b5f6111c5612350565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff1614801561120d5750825b90505f60018367ffffffffffffffff1614801561124057505f3073ffffffffffffffffffffffffffffffffffffffff163b145b90508115801561124e575080155b15611285576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156112d2576001855f0160086101000a81548160ff0219169083151502179055505b6112db88612363565b6112e433612377565b6112ec61238b565b6112f85f5f1b3361209a565b505f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461133657611335876116fc565b5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461137357611372866115bb565b5b83156113cd575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516113c4919061496e565b60405180910390a15b5050505050505050565b5f8166016bcc41e900006113eb91906149b4565b9050919050565b6060815183511461143e57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611435929190614427565b60405180910390fd5b5f835167ffffffffffffffff81111561145a576114596135ac565b5b6040519080825280602002602001820160405280156114885781602001602082028036833780820191505090505b5090505f5f90505b84518110156114f1576114c76114af828761239590919063ffffffff16565b6114c283876123a890919063ffffffff16565b610a4a565b8282815181106114da576114d9614783565b5b602002602001018181525050806001019050611490565b508091505092915050565b5f5f6115078361189f565b119050919050565b611517611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611560575061155e83611559611f8b565b611ac6565b155b156115ab5761156d611f8b565b836040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016115a29291906148fb565b60405180910390fd5b6115b68383836123bb565b505050565b5f5f1b6115c781612086565b5f8273ffffffffffffffffffffffffffffffffffffffff163b03611617576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61166361244b565b61166c5f6124d2565b565b5f611677611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff16611698611a91565b73ffffffffffffffffffffffffffffffffffffffff16146116f057806040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116e79190614191565b60405180910390fd5b6116f9816124d2565b50565b5f5f1b61170881612086565b5f8273ffffffffffffffffffffffffffffffffffffffff163b03611758576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f5f6117a561250f565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f6117da611f64565b9050805f015f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f5f1b81565b611859611852611f8b565b8383612536565b5050565b5f5f1b61186981612086565b611872826126ad565b5050565b600181565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6118a9611f3d565b9050805f015f8481526020019081526020015f2054915050919050565b5f6118d0826113d7565b9050803410156119195780346040517f3644fa3b000000000000000000000000000000000000000000000000000000008152600401611910929190614427565b60405180910390fd5b6119348360018460405180602001604052805f8152506126ce565b5f813461194191906149f5565b90505f81111561197557611974813373ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b5b50505050565b805f611988336001610a4a565b9050808211156119d15781816040517fcffb3e690000000000000000000000000000000000000000000000000000000081526004016119c8929190614427565b60405180910390fd5b5f6119db846113d7565b90505f47905081811015611a285781816040517fce22477e000000000000000000000000000000000000000000000000000000008152600401611a1f929190614427565b60405180910390fd5b611a3433600187611d93565b611a5d823373ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b5050505050565b66016bcc41e9000081565b611a7882610efe565b611a8181612086565b611a8b8383612192565b50505050565b5f5f611a9b612763565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f611ad0611e35565b9050806001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f611b6b611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611bb05750611bae8682611ac6565b155b15611bf45780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611beb9291906148fb565b60405180910390fd5b611c01868686868661278a565b505050505050565b611c1161244b565b5f611c1a612763565b905081815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16611c7c61179b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cef611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d385750611d3683611d31611f8b565b611ac6565b155b15611d8357611d45611f8b565b836040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611d7a9291906148fb565b60405180910390fd5b611d8e838383611d93565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e03575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611dfa9190614191565b60405180910390fd5b5f5f611e0f8484612890565b91509150611e2e855f848460405180602001604052805f8152506128c0565b5050505050565b5f7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500905090565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f2657507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f365750611f358261296c565b5b9050919050565b5f7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800905090565b5f7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612002575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611ff99190614191565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612072575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016120699190614191565b60405180910390fd5b61207f85858585856128c0565b5050505050565b61209781612092611f8b565b6129e5565b50565b5f5f6120a4611f64565b90506120b084846117d0565b612187576001815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612123611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061218c565b5f9150505b92915050565b5f5f61219c611f64565b90506121a884846117d0565b1561227f575f815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061221b611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001915050612284565b5f9150505b92915050565b804710156122d15747816040517fcf4791810000000000000000000000000000000000000000000000000000000081526004016122c8929190614427565b60405180910390fd5b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516122f790614a55565b5f6040518083038185875af1925050503d805f8114612331576040519150601f19603f3d011682016040523d82523d5f602084013e612336565b606091505b50915091508161234a5761234981612a36565b5b50505050565b5f5f61235a612a7a565b90508091505090565b61236b612aa3565b61237481612ae3565b50565b61237f612aa3565b61238881612af7565b50565b612393612aa3565b565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361242b575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016124229190614191565b60405180910390fd5b612446835f848460405180602001604052805f8152506128c0565b505050565b612453611f8b565b73ffffffffffffffffffffffffffffffffffffffff1661247161179b565b73ffffffffffffffffffffffffffffffffffffffff16146124d057612494611f8b565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016124c79190614191565b60405180910390fd5b565b5f6124db612763565b9050805f015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561250b82612b7b565b5050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f61253f611e35565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125b1575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016125a89190614191565b60405180910390fd5b81816001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318460405161269f91906139b5565b60405180910390a350505050565b5f6126b6611e35565b9050818160020190816126c99190614c00565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361273e575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016127359190614191565b60405180910390fd5b5f5f61274a8585612890565b9150915061275b5f878484876128c0565b505050505050565b5f7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036127fa575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016127f19190614191565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361286a575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016128619190614191565b60405180910390fd5b5f5f6128768585612890565b9150915061288787878484876128c0565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b6128cc85858585612c4c565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612965575f612908611f8b565b90506001845103612954575f6129275f866123a890919063ffffffff16565b90505f61293d5f866123a890919063ffffffff16565b905061294d838989858589612c5e565b5050612963565b612962818787878787612e0d565b5b505b5050505050565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806129de57506129dd82612fbc565b5b9050919050565b6129ef82826117d0565b612a325780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612a29929190614ccf565b60405180910390fd5b5050565b5f81511115612a485780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b612aab613025565b612ae1576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b612aeb612aa3565b612af4816126ad565b50565b612aff612aa3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b6f575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612b669190614191565b60405180910390fd5b612b78816124d2565b50565b5f612b8461250f565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b612c5884848484613043565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612e05578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612cbe959493929190614cf6565b6020604051808303815f875af1925050508015612cf957506040513d601f19601f82011682018060405250810190612cf69190614d62565b60015b612d7a573d805f8114612d27576040519150601f19603f3d011682016040523d82523d5f602084013e612d2c565b606091505b505f815103612d7257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612d699190614191565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612e0357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612dfa9190614191565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612fb4578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612e6d959493929190614d8d565b6020604051808303815f875af1925050508015612ea857506040513d601f19601f82011682018060405250810190612ea59190614d62565b60015b612f29573d805f8114612ed6576040519150601f19603f3d011682016040523d82523d5f602084013e612edb565b606091505b505f815103612f2157846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612f189190614191565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612fb257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612fa99190614191565b60405180910390fd5b505b505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f61302e612350565b5f0160089054906101000a900460ff16905090565b5f61304c611f3d565b905061305a858585856131de565b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603613126575f5f90505f5f90505b8451811015613109575f6130b382866123a890919063ffffffff16565b905080845f015f6130cd858a6123a890919063ffffffff16565b81526020019081526020015f205f8282546130e89190614df3565b9250508190555080836130fb9190614df3565b925050806001019050613096565b5080826001015f82825461311d9190614df3565b92505081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036131d7575f5f90505f5f90505b84518110156131c3575f61317f82866123a890919063ffffffff16565b905080845f015f613199858a6123a890919063ffffffff16565b81526020019081526020015f205f8282540392505081905550808301925050806001019050613162565b5080826001015f8282540392505081905550505b5050505050565b5f6131e7611e35565b9050815183511461323357825182516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161322a929190614427565b60405180910390fd5b5f61323c611f8b565b90505f5f90505b8451811015613441575f61326082876123a890919063ffffffff16565b90505f61327683876123a890919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161461339d575f855f015f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561334757898183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161333e9493929190614e26565b60405180910390fd5b818103865f015f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146134345780855f015f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461342c9190614df3565b925050819055505b5050806001019050613243565b5060018451036134fc575f61345f5f866123a890919063ffffffff16565b90505f6134755f866123a890919063ffffffff16565b90508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516134ed929190614427565b60405180910390a4505061357b565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051613572929190614e69565b60405180910390a45b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6135e28261359c565b810181811067ffffffffffffffff82111715613601576136006135ac565b5b80604052505050565b5f613613613583565b905061361f82826135d9565b919050565b5f67ffffffffffffffff82111561363e5761363d6135ac565b5b6136478261359c565b9050602081019050919050565b828183375f83830152505050565b5f61367461366f84613624565b61360a565b9050828152602081018484840111156136905761368f613598565b5b61369b848285613654565b509392505050565b5f82601f8301126136b7576136b6613594565b5b81356136c7848260208601613662565b91505092915050565b5f67ffffffffffffffff8211156136ea576136e96135ac565b5b602082029050602081019050919050565b5f5ffd5b5f61371161370c846136d0565b61360a565b90508083825260208201905060208402830185811115613734576137336136fb565b5b835b8181101561377b57803567ffffffffffffffff81111561375957613758613594565b5b80860161376689826136a3565b85526020850194505050602081019050613736565b5050509392505050565b5f82601f83011261379957613798613594565b5b81356137a98482602086016136ff565b91505092915050565b5f5f604083850312156137c8576137c761358c565b5b5f83013567ffffffffffffffff8111156137e5576137e4613590565b5b6137f1858286016136a3565b925050602083013567ffffffffffffffff81111561381257613811613590565b5b61381e85828601613785565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61385182613828565b9050919050565b61386181613847565b811461386b575f5ffd5b50565b5f8135905061387c81613858565b92915050565b5f819050919050565b61389481613882565b811461389e575f5ffd5b50565b5f813590506138af8161388b565b92915050565b5f5f604083850312156138cb576138ca61358c565b5b5f6138d88582860161386e565b92505060206138e9858286016138a1565b9150509250929050565b6138fc81613882565b82525050565b5f6020820190506139155f8301846138f3565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61394f8161391b565b8114613959575f5ffd5b50565b5f8135905061396a81613946565b92915050565b5f602082840312156139855761398461358c565b5b5f6139928482850161395c565b91505092915050565b5f8115159050919050565b6139af8161399b565b82525050565b5f6020820190506139c85f8301846139a6565b92915050565b5f602082840312156139e3576139e261358c565b5b5f6139f0848285016138a1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f613a2b826139f9565b613a358185613a03565b9350613a45818560208601613a13565b613a4e8161359c565b840191505092915050565b5f6020820190508181035f830152613a718184613a21565b905092915050565b5f613a8382613828565b9050919050565b613a9381613a79565b8114613a9d575f5ffd5b50565b5f81359050613aae81613a8a565b92915050565b5f5f5f5f5f60a08688031215613acd57613acc61358c565b5b5f613ada8882890161386e565b9550506020613aeb888289016138a1565b9450506040613afc888289016138a1565b9350506060613b0d8882890161386e565b9250506080613b1e88828901613aa0565b9150509295509295909350565b5f819050919050565b613b3d81613b2b565b8114613b47575f5ffd5b50565b5f81359050613b5881613b34565b92915050565b5f60208284031215613b7357613b7261358c565b5b5f613b8084828501613b4a565b91505092915050565b613b9281613b2b565b82525050565b5f602082019050613bab5f830184613b89565b92915050565b5f67ffffffffffffffff821115613bcb57613bca6135ac565b5b602082029050602081019050919050565b5f613bee613be984613bb1565b61360a565b90508083825260208201905060208402830185811115613c1157613c106136fb565b5b835b81811015613c3a5780613c2688826138a1565b845260208401935050602081019050613c13565b5050509392505050565b5f82601f830112613c5857613c57613594565b5b8135613c68848260208601613bdc565b91505092915050565b5f5f5f5f5f60a08688031215613c8a57613c8961358c565b5b5f613c978882890161386e565b9550506020613ca88882890161386e565b945050604086013567ffffffffffffffff811115613cc957613cc8613590565b5b613cd588828901613c44565b935050606086013567ffffffffffffffff811115613cf657613cf5613590565b5b613d0288828901613c44565b925050608086013567ffffffffffffffff811115613d2357613d22613590565b5b613d2f888289016136a3565b9150509295509295909350565b5f5f60408385031215613d5257613d5161358c565b5b5f613d5f85828601613b4a565b9250506020613d708582860161386e565b9150509250929050565b5f5f60408385031215613d9057613d8f61358c565b5b5f613d9d85828601613aa0565b9250506020613dae858286016138a1565b9150509250929050565b5f67ffffffffffffffff821115613dd257613dd16135ac565b5b613ddb8261359c565b9050602081019050919050565b5f613dfa613df584613db8565b61360a565b905082815260208101848484011115613e1657613e15613598565b5b613e21848285613654565b509392505050565b5f82601f830112613e3d57613e3c613594565b5b8135613e4d848260208601613de8565b91505092915050565b5f5f5f60608486031215613e6d57613e6c61358c565b5b5f84013567ffffffffffffffff811115613e8a57613e89613590565b5b613e9686828701613e29565b9350506020613ea78682870161386e565b9250506040613eb88682870161386e565b9150509250925092565b5f67ffffffffffffffff821115613edc57613edb6135ac565b5b602082029050602081019050919050565b5f613eff613efa84613ec2565b61360a565b90508083825260208201905060208402830185811115613f2257613f216136fb565b5b835b81811015613f4b5780613f37888261386e565b845260208401935050602081019050613f24565b5050509392505050565b5f82601f830112613f6957613f68613594565b5b8135613f79848260208601613eed565b91505092915050565b5f5f60408385031215613f9857613f9761358c565b5b5f83013567ffffffffffffffff811115613fb557613fb4613590565b5b613fc185828601613f55565b925050602083013567ffffffffffffffff811115613fe257613fe1613590565b5b613fee85828601613c44565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61402a81613882565b82525050565b5f61403b8383614021565b60208301905092915050565b5f602082019050919050565b5f61405d82613ff8565b6140678185614002565b935061407283614012565b805f5b838110156140a25781516140898882614030565b975061409483614047565b925050600181019050614075565b5085935050505092915050565b5f6020820190508181035f8301526140c78184614053565b905092915050565b5f5f5f606084860312156140e6576140e561358c565b5b5f6140f38682870161386e565b935050602084013567ffffffffffffffff81111561411457614113613590565b5b61412086828701613c44565b925050604084013567ffffffffffffffff81111561414157614140613590565b5b61414d86828701613c44565b9150509250925092565b5f6020828403121561416c5761416b61358c565b5b5f6141798482850161386e565b91505092915050565b61418b81613847565b82525050565b5f6020820190506141a45f830184614182565b92915050565b6141b38161399b565b81146141bd575f5ffd5b50565b5f813590506141ce816141aa565b92915050565b5f5f604083850312156141ea576141e961358c565b5b5f6141f78582860161386e565b9250506020614208858286016141c0565b9150509250929050565b5f602082840312156142275761422661358c565b5b5f82013567ffffffffffffffff81111561424457614243613590565b5b61425084828501613e29565b91505092915050565b5f819050919050565b5f61427c61427761427284613828565b614259565b613828565b9050919050565b5f61428d82614262565b9050919050565b5f61429e82614283565b9050919050565b6142ae81614294565b82525050565b5f6020820190506142c75f8301846142a5565b92915050565b5f5f604083850312156142e3576142e261358c565b5b5f6142f08582860161386e565b92505060206143018582860161386e565b9150509250929050565b5f5f5f5f5f60a086880312156143245761432361358c565b5b5f6143318882890161386e565b95505060206143428882890161386e565b9450506040614353888289016138a1565b9350506060614364888289016138a1565b925050608086013567ffffffffffffffff81111561438557614384613590565b5b614391888289016136a3565b9150509295509295909350565b5f6143a882614283565b9050919050565b6143b88161439e565b82525050565b5f6020820190506143d15f8301846143af565b92915050565b5f5f5f606084860312156143ee576143ed61358c565b5b5f6143fb8682870161386e565b935050602061440c868287016138a1565b925050604061441d868287016138a1565b9150509250925092565b5f60408201905061443a5f8301856138f3565b61444760208301846138f3565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6144728261444e565b61447c8185614458565b935061448c818560208601613a13565b6144958161359c565b840191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6144e38261444e565b6144ed81856144c9565b93506144fd818560208601613a13565b6145068161359c565b840191505092915050565b5f61451c83836144d9565b905092915050565b5f602082019050919050565b5f61453a826144a0565b61454481856144aa565b935083602082028501614556856144ba565b805f5b8581101561459157848403895281516145728582614511565b945061457d83614524565b925060208a01995050600181019050614559565b50829750879550505050505092915050565b5f6040820190508181035f8301526145bb8185614468565b905081810360208301526145cf8184614530565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061461c57607f821691505b60208210810361462f5761462e6145d8565b5b50919050565b5f5ffd5b5f5ffd5b5f61464f61464a84613db8565b61360a565b90508281526020810184848401111561466b5761466a613598565b5b614676848285613a13565b509392505050565b5f82601f83011261469257614691613594565b5b81516146a284826020860161463d565b91505092915050565b5f815190506146b98161388b565b92915050565b5f606082840312156146d4576146d3614635565b5b6146de606061360a565b90505f82015167ffffffffffffffff8111156146fd576146fc614639565b5b6147098482850161467e565b5f83015250602061471c848285016146ab565b6020830152506040614730848285016146ab565b60408301525092915050565b5f602082840312156147515761475061358c565b5b5f82015167ffffffffffffffff81111561476e5761476d613590565b5b61477a848285016146bf565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6147e281613847565b82525050565b5f6147f383836147d9565b60208301905092915050565b5f602082019050919050565b5f614815826147b0565b61481f81856147ba565b935061482a836147ca565b805f5b8381101561485a57815161484188826147e8565b975061484c836147ff565b92505060018101905061482d565b5085935050505092915050565b5f60a08201905061487a5f8301886142a5565b61488760208301876138f3565b61489460408301866138f3565b81810360608301526148a6818561480b565b905081810360808301526148ba8184614468565b90509695505050505050565b5f6060820190506148d95f8301866138f3565b6148e660208301856138f3565b6148f360408301846138f3565b949350505050565b5f60408201905061490e5f830185614182565b61491b6020830184614182565b9392505050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f61495861495361494e84614922565b614259565b61492b565b9050919050565b6149688161493e565b82525050565b5f6020820190506149815f83018461495f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6149be82613882565b91506149c983613882565b92508282026149d781613882565b915082820484148315176149ee576149ed614987565b5b5092915050565b5f6149ff82613882565b9150614a0a83613882565b9250828203905081811115614a2257614a21614987565b5b92915050565b5f81905092915050565b50565b5f614a405f83614a28565b9150614a4b82614a32565b5f82019050919050565b5f614a5f82614a35565b9150819050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614ac57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a8a565b614acf8683614a8a565b95508019841693508086168417925050509392505050565b5f614b01614afc614af784613882565b614259565b613882565b9050919050565b5f819050919050565b614b1a83614ae7565b614b2e614b2682614b08565b848454614a96565b825550505050565b5f5f905090565b614b45614b36565b614b50818484614b11565b505050565b5b81811015614b7357614b685f82614b3d565b600181019050614b56565b5050565b601f821115614bb857614b8981614a69565b614b9284614a7b565b81016020851015614ba1578190505b614bb5614bad85614a7b565b830182614b55565b50505b505050565b5f82821c905092915050565b5f614bd85f1984600802614bbd565b1980831691505092915050565b5f614bf08383614bc9565b9150826002028217905092915050565b614c09826139f9565b67ffffffffffffffff811115614c2257614c216135ac565b5b614c2c8254614605565b614c37828285614b77565b5f60209050601f831160018114614c68575f8415614c56578287015190505b614c608582614be5565b865550614cc7565b601f198416614c7686614a69565b5f5b82811015614c9d57848901518255600182019150602085019450602081019050614c78565b86831015614cba5784890151614cb6601f891682614bc9565b8355505b6001600288020188555050505b505050505050565b5f604082019050614ce25f830185614182565b614cef6020830184613b89565b9392505050565b5f60a082019050614d095f830188614182565b614d166020830187614182565b614d2360408301866138f3565b614d3060608301856138f3565b8181036080830152614d428184614468565b90509695505050505050565b5f81519050614d5c81613946565b92915050565b5f60208284031215614d7757614d7661358c565b5b5f614d8484828501614d4e565b91505092915050565b5f60a082019050614da05f830188614182565b614dad6020830187614182565b8181036040830152614dbf8186614053565b90508181036060830152614dd38185614053565b90508181036080830152614de78184614468565b90509695505050505050565b5f614dfd82613882565b9150614e0883613882565b9250828201905080821115614e2057614e1f614987565b5b92915050565b5f608082019050614e395f830187614182565b614e4660208301866138f3565b614e5360408301856138f3565b614e6060608301846138f3565b95945050505050565b5f6040820190508181035f830152614e818185614053565b90508181036020830152614e958184614053565b9050939250505056fea2646970667358221220018542e6ebd2bad4bf05896d2e3ecfe7d74b9c1e20b1c75972dc34529af8847b64736f6c634300081c0033", + "nonce": "0xf", "chainId": "0x14a34" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", + "hash": "0x3fa47abfbf6cc1400f73e088ca6c022518f2e84b4d2a0e0888b982ef4d64af00", "transactionType": "CREATE", "contractName": "ProxyAdmin", - "contractAddress": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", + "contractAddress": "0x7e2b240c2a18d8479076df1a01025225a2f1ee51", "function": null, "arguments": [ - "0x3c10FAED26a6bb341322d1BAaf2c6ecf5B957D61" + "0xaff4BE6F091274421f0Bf5a2F74eC368a2c017E8" ], "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0x60734", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x9fb27", "value": "0x0", - "input": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c634300081700330000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "nonce": "0x1f", + "input": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", + "nonce": "0x10", "chainId": "0x14a34" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "hash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", "transactionType": "CREATE", "contractName": "TransparentUpgradeableProxy", - "contractAddress": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "contractAddress": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", "function": null, "arguments": [ - "0x1a9507B4404854B48164B209bFd0d4790B609762", - "0x888FB1aa6EeC47D2B5db8dBcE68d00f294F95f08", - "0x7ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f00000000000000000000000000000000000000000000000000" + "0xaDDBA3954346241fA7517FFb46C33D06C57344c4", + "0x7e2B240c2A18d8479076DF1A01025225a2f1ee51", + "0x463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f74657374000000000000000000000000000000000000000000" ], "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0xeebd7", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x176d9c", "value": "0x0", - "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122011de57fd4b44521ee974555595699df7e8ef5536966300e3722e17cc1200174664736f6c63430008170033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000001a9507b4404854b48164b209bfd0d4790b609762000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000847ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x20", + "input": "0x60a06040526040516119d43803806119d483398181016040528101906100259190610708565b828161003782826100c160201b60201c565b50508160405161004690610554565b6100509190610783565b604051809103905ff080158015610069573d5f5f3e3d5ffd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100b96100ae61014560201b60201c565b61014e60201b60201c565b50505061081d565b6100d0826101a660201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101325761012c828261027560201b60201c565b50610141565b6101406102fb60201b60201c565b5b5050565b5f608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61017d61033760201b60201c565b8260405161018c92919061079c565b60405180910390a16101a38161039060201b60201c565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361020157806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101f89190610783565b60405180910390fd5b806102337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff168460405161029e9190610807565b5f60405180830381855af49150503d805f81146102d6576040519150601f19603f3d011682016040523d82523d5f602084013e6102db565b606091505b50915091506102f185838361047d60201b60201c565b9250505092915050565b5f341115610335576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103697fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610400575f6040517f62e77ba20000000000000000000000000000000000000000000000000000000081526004016103f79190610783565b60405180910390fd5b806104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f819050919050565b606082610498576104938261051060201b60201c565b610508565b5f82511480156104be57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561050057836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104f79190610783565b60405180910390fd5b819050610509565b5b9392505050565b5f815111156105225780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109c68061100e83390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059b82610572565b9050919050565b6105ab81610591565b81146105b5575f5ffd5b50565b5f815190506105c6816105a2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61061a826105d4565b810181811067ffffffffffffffff82111715610639576106386105e4565b5b80604052505050565b5f61064b610561565b90506106578282610611565b919050565b5f67ffffffffffffffff821115610676576106756105e4565b5b61067f826105d4565b9050602081019050919050565b8281835e5f83830152505050565b5f6106ac6106a78461065c565b610642565b9050828152602081018484840111156106c8576106c76105d0565b5b6106d384828561068c565b509392505050565b5f82601f8301126106ef576106ee6105cc565b5b81516106ff84826020860161069a565b91505092915050565b5f5f5f6060848603121561071f5761071e61056a565b5b5f61072c868287016105b8565b935050602061073d868287016105b8565b925050604084015167ffffffffffffffff81111561075e5761075d61056e565b5b61076a868287016106db565b9150509250925092565b61077d81610591565b82525050565b5f6020820190506107965f830184610774565b92915050565b5f6040820190506107af5f830185610774565b6107bc6020830184610774565b9392505050565b5f81519050919050565b5f81905092915050565b5f6107e1826107c3565b6107eb81856107cd565b93506107fb81856020860161068c565b80840191505092915050565b5f61081282846107d7565b915081905092915050565b6080516107d96108355f395f61010401526107d95ff3fe608060405261000c61000e565b005b610016610101565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f657634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19165f357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100e9576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f1610128565b6100ff565b6100fe61015c565b5b565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f5f5f36600490809261013d939291906104d0565b81019061014a91906106a8565b91509150610158828261016e565b5050565b61016c6101676101e0565b6101ee565b565b6101778261020d565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101d3576101cd82826102d6565b506101dc565b6101db610356565b5b5050565b5f6101e9610392565b905090565b365f5f375f5f365f845af43d5f5f3e805f8114610209573d5ff35b3d5ffd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361026857806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161025f9190610722565b60405180910390fd5b806102947f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102ff919061078d565b5f60405180830381855af49150503d805f8114610337576040519150601f19603f3d011682016040523d82523d5f602084013e61033c565b606091505b509150915061034c8583836103ee565b9250505092915050565b5f341115610390576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103be7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b606082610403576103fe8261047b565b610473565b5f825114801561042957505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561046b57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104629190610722565b60405180910390fd5b819050610474565b5b9392505050565b5f8151111561048d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f5ffd5b5f5ffd5b5f5f858511156104e3576104e26104c8565b5b838611156104f4576104f36104cc565b5b6001850283019150848603905094509492505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61053b82610512565b9050919050565b61054b81610531565b8114610555575f5ffd5b50565b5f8135905061056681610542565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105ba82610574565b810181811067ffffffffffffffff821117156105d9576105d8610584565b5b80604052505050565b5f6105eb6104bf565b90506105f782826105b1565b919050565b5f67ffffffffffffffff82111561061657610615610584565b5b61061f82610574565b9050602081019050919050565b828183375f83830152505050565b5f61064c610647846105fc565b6105e2565b90508281526020810184848401111561066857610667610570565b5b61067384828561062c565b509392505050565b5f82601f83011261068f5761068e61056c565b5b813561069f84826020860161063a565b91505092915050565b5f5f604083850312156106be576106bd61050a565b5b5f6106cb85828601610558565b925050602083013567ffffffffffffffff8111156106ec576106eb61050e565b5b6106f88582860161067b565b9150509250929050565b5f61070c82610512565b9050919050565b61071c81610702565b82525050565b5f6020820190506107355f830184610713565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6107678261073b565b6107718185610745565b935061078181856020860161074f565b80840191505092915050565b5f610798828461075d565b91508190509291505056fea2646970667358221220ccc9529bc6fbbf8f3b86b4a8c5192f0598aa3267a8c6404d4fb67afc4bbc1a5d64736f6c634300081c0033608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000addba3954346241fa7517ffb46c33d06c57344c40000000000000000000000007e2b240c2a18d8479076df1a01025225a2f1ee51000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f7465737400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x11", "chainId": "0x14a34" }, "additionalContracts": [ { "transactionType": "CREATE", - "address": "0xa1c729ca727eb3bea8b48ea92a2be0c86ab529b4", - "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08" + "address": "0xe0d012fc1937c09dffa4d9006c47b8db137743b3", + "initCode": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c00330000000000000000000000007e2b240c2a18d8479076df1a01025225a2f1ee51" } ], "isFixedGasLimit": false @@ -70,186 +70,194 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x284809", + "cumulativeGasUsed": "0x444eaa", "logs": [ { - "address": "0x1a9507b4404854b48164b209bfd0d4790b609762", + "address": "0xaddba3954346241fa7517ffb46c33d06c57344c4", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", - "transactionIndex": "0x6", - "logIndex": "0x5", + "blockHash": "0x7269fc61888bff1cd9d85f0f8b1def5a530411e86d902a8b5d9d07e12598c943", + "blockNumber": "0x1c37970", + "blockTimestamp": "0x689a51c0", + "transactionHash": "0xe3c6478210f30904aec7cf9545dfed1fb631651338b64db22e0c0996bd1041a8", + "transactionIndex": "0x1", + "logIndex": "0x0", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080002000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000400000000000000000000040000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", - "transactionIndex": "0x6", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "gasUsed": "0x240ca3", - "effectiveGasPrice": "0xba11f", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "transactionHash": "0xe3c6478210f30904aec7cf9545dfed1fb631651338b64db22e0c0996bd1041a8", + "transactionIndex": "0x1", + "blockHash": "0x7269fc61888bff1cd9d85f0f8b1def5a530411e86d902a8b5d9d07e12598c943", + "blockNumber": "0x1c37970", + "gasUsed": "0x439a6a", + "effectiveGasPrice": "0xf4278", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", "to": null, - "contractAddress": "0x1a9507b4404854b48164b209bfd0d4790b609762", + "contractAddress": "0xaddba3954346241fa7517ffb46c33d06c57344c4", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x1", + "l1BlobBaseFee": "0x5", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0xff0f73bb7a", - "l1GasPrice": "0x2689e7ebd", - "l1GasUsed": "0x177b2" + "l1Fee": "0xb0c7d8c6", + "l1GasPrice": "0x1256f80", + "l1GasUsed": "0x2232e" }, { "status": "0x1", - "cumulativeGasUsed": "0x2ceb1e", + "cumulativeGasUsed": "0x4bfc2b", "logs": [ { - "address": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", + "address": "0x7e2b240c2a18d8479076df1a01025225a2f1ee51", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", - "transactionIndex": "0x7", - "logIndex": "0x6", + "blockHash": "0x7269fc61888bff1cd9d85f0f8b1def5a530411e86d902a8b5d9d07e12598c943", + "blockNumber": "0x1c37970", + "blockTimestamp": "0x689a51c0", + "transactionHash": "0x3fa47abfbf6cc1400f73e088ca6c022518f2e84b4d2a0e0888b982ef4d64af00", + "transactionIndex": "0x2", + "logIndex": "0x1", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000010000000000000000000000000000020000000000004000000000000000000000000000400000000000000000000000020", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400010000400000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000100000000000000000000000000000", "type": "0x2", - "transactionHash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", - "transactionIndex": "0x7", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "gasUsed": "0x4a315", - "effectiveGasPrice": "0xba11f", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "transactionHash": "0x3fa47abfbf6cc1400f73e088ca6c022518f2e84b4d2a0e0888b982ef4d64af00", + "transactionIndex": "0x2", + "blockHash": "0x7269fc61888bff1cd9d85f0f8b1def5a530411e86d902a8b5d9d07e12598c943", + "blockNumber": "0x1c37970", + "gasUsed": "0x7ad81", + "effectiveGasPrice": "0xf4278", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", "to": null, - "contractAddress": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", + "contractAddress": "0x7e2b240c2a18d8479076df1a01025225a2f1ee51", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x1", + "l1BlobBaseFee": "0x5", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0x25f2266254", - "l1GasPrice": "0x2689e7ebd", - "l1GasUsed": "0x37e4" + "l1Fee": "0x19f22019", + "l1GasPrice": "0x1256f80", + "l1GasUsed": "0x504f" }, { "status": "0x1", - "cumulativeGasUsed": "0x386575", + "cumulativeGasUsed": "0x5e01b7", "logs": [ { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000001a9507b4404854b48164b209bfd0d4790b609762" + "0x000000000000000000000000addba3954346241fa7517ffb46c33d06c57344c4" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0x7", + "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", + "blockNumber": "0x1c37970", + "blockTimestamp": "0x689a51c0", + "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", + "transactionIndex": "0x3", + "logIndex": "0x2", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0x8", + "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", + "blockNumber": "0x1c37970", + "blockTimestamp": "0x689a51c0", + "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", + "transactionIndex": "0x3", + "logIndex": "0x3", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", "topics": [ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0x9", + "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", + "blockNumber": "0x1c37970", + "blockTimestamp": "0x689a51c0", + "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", + "transactionIndex": "0x3", + "logIndex": "0x4", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0xa", + "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", + "blockNumber": "0x1c37970", + "blockTimestamp": "0x689a51c0", + "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", + "transactionIndex": "0x3", + "logIndex": "0x5", "removed": false }, { - "address": "0xa1c729ca727eb3bea8b48ea92a2be0c86ab529b4", + "address": "0xe0d012fc1937c09dffa4d9006c47b8db137743b3", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08" + "0x0000000000000000000000007e2b240c2a18d8479076df1a01025225a2f1ee51" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0xb", + "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", + "blockNumber": "0x1c37970", + "blockTimestamp": "0x689a51c0", + "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", + "transactionIndex": "0x3", + "logIndex": "0x6", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1c729ca727eb3bea8b48ea92a2be0c86ab529b4", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0xc", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0d012fc1937c09dffa4d9006c47b8db137743b3", + "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", + "blockNumber": "0x1c37970", + "blockTimestamp": "0x689a51c0", + "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", + "transactionIndex": "0x3", + "logIndex": "0x7", "removed": false } ], - "logsBloom": "0x00000004000000000000000004000000400000000000000000800480000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000004010000000020008000000000000000800000000800000000000000000000000400000000000000000000800000000000000000000000084000000100000800000000000000000000000000000000000000000000000000000001000000000000000000021000000000000000000000090000000000404000100000000000020000000004000000000000000400000000000000000000000000000000000000040", + "logsBloom": "0x00000004000000000000000000000000400000000000000000800000000080000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000080000000000000000000000000020000000000000000000800000000800000000000000000000000400000000400000000000800000000000000000000000080002000100000800000000008000000002000000000000000000000000000000000001000000000080004000020000000000000000020000000000000000404000100000000000020000100000000000000000000000000000800100000000000000000000000000020", "type": "0x2", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "gasUsed": "0xb7a57", - "effectiveGasPrice": "0xba11f", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", + "transactionIndex": "0x3", + "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", + "blockNumber": "0x1c37970", + "gasUsed": "0x12058c", + "effectiveGasPrice": "0xf4278", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", "to": null, - "contractAddress": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "contractAddress": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x1", + "l1BlobBaseFee": "0x5", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0x5ce3d8476c", - "l1GasPrice": "0x2689e7ebd", - "l1GasUsed": "0x88d3" + "l1Fee": "0x3c9f63c0", + "l1GasPrice": "0x1256f80", + "l1GasUsed": "0xbba4" } ], "libraries": [], @@ -257,10 +265,10 @@ "returns": { "0": { "internal_type": "struct DeployCredits.DeploymentResult", - "value": "(0x1a9507B4404854B48164B209bFd0d4790B609762, 0xBe5F264C6413ec0cf3FFe6169A320AeEc721d0A1, 0x888FB1aa6EeC47D2B5db8dBcE68d00f294F95f08)" + "value": "(0xaDDBA3954346241fA7517FFb46C33D06C57344c4, 0xFbB419b70745140f728A4Bc71fccdDe452ec4ADa, 0x7e2B240c2A18d8479076DF1A01025225a2f1ee51)" } }, - "timestamp": 1745593951, + "timestamp": 1754943993, "chain": 84532, - "commit": "edb476b" + "commit": "5d527ff" } \ No newline at end of file diff --git a/script/Deploy.s.sol b/script/Deploy.s.sol index f8800f5..326b205 100644 --- a/script/Deploy.s.sol +++ b/script/Deploy.s.sol @@ -23,10 +23,12 @@ contract DeployCredits is Script { function run() public returns (DeploymentResult memory) { string memory tokenUri = vm.envString("TOKEN_URI"); address fixedPriceSaleStrategy = vm.envOr("FIXED_PRICE_SALE_STRATEGY", address(0)); + address dopplerUniversalRouter = vm.envOr("DOPPLER_UNIVERSAL_ROUTER", address(0)); console.log("Deploying Credits1155 to chain:", block.chainid); console.log("Using token URI:", tokenUri); console.log("Using fixed price sale strategy:", fixedPriceSaleStrategy); + console.log("Using doppler universal router:", dopplerUniversalRouter); // Start broadcasting vm.startBroadcast(); @@ -40,8 +42,9 @@ contract DeployCredits is Script { console.log("ProxyAdmin deployed at:", address(proxyAdmin)); // 3. Prepare initialization data - bytes memory initData = - abi.encodeWithSelector(Credits1155.initialize.selector, tokenUri, fixedPriceSaleStrategy); + bytes memory initData = abi.encodeWithSelector( + Credits1155.initialize.selector, tokenUri, fixedPriceSaleStrategy, dopplerUniversalRouter + ); // 4. Deploy and initialize proxy TransparentUpgradeableProxy proxy = From 148966794c667aedd8153fa9b7eb3502ddbb3734 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 16:23:42 -0500 Subject: [PATCH 18/28] rollback changes to broadcast directory --- broadcast/Deploy.s.sol/8453/run-latest.json | 248 +++++++++--------- broadcast/Deploy.s.sol/84532/run-latest.json | 256 +++++++++---------- 2 files changed, 248 insertions(+), 256 deletions(-) diff --git a/broadcast/Deploy.s.sol/8453/run-latest.json b/broadcast/Deploy.s.sol/8453/run-latest.json index d733a6a..ebdba8b 100644 --- a/broadcast/Deploy.s.sol/8453/run-latest.json +++ b/broadcast/Deploy.s.sol/8453/run-latest.json @@ -1,67 +1,67 @@ { "transactions": [ { - "hash": "0x45faa7a8120c65a7307e937a2d5b0dcd14b0da316857c23c4376dfb0972ad8dc", + "hash": "0x396f2b7b1c49e49c082c31baf1e6db636ae87904e23337ea01f16271b1fef1ca", "transactionType": "CREATE", "contractName": "Credits1155", - "contractAddress": "0x3bd63fad65d12288e7e306107c966490cf1b8189", + "contractAddress": "0x06ad14843ae7c386712143c36f378a5064044cd3", "function": null, "arguments": null, "transaction": { - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", - "gas": "0x57e256", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "gas": "0x2edd3a", "value": "0x0", - "input": "0x608060405234801561000f575f5ffd5b5061001e61002360201b60201c565b61019e565b5f61003261012160201b60201c565b9050805f0160089054906101000a900460ff161561007c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff161461011e5767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516101159190610185565b60405180910390a15b50565b5f5f61013161013a60201b60201c565b90508091505090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b5f67ffffffffffffffff82169050919050565b61017f81610163565b82525050565b5f6020820190506101985f830184610176565b92915050565b614ed4806101ab5f395ff3fe608060405260043610610226575f3560e01c80637eb802b911610122578063c5efaae8116100aa578063e985e9c51161006e578063e985e9c5146107eb578063f242432a14610827578063f2fde38b1461084f578063f45caae314610877578063f5298aca146108a15761022d565b8063c5efaae81461072b578063c9f18ebd14610747578063d1b53b9c1461076f578063d547741f14610799578063e30c3978146107c15761022d565b8063a22cb465116100f1578063a22cb4651461064b578063a7fd40bf14610673578063ad77bc401461069b578063b13bfa91146106c5578063bd85b039146106ef5761022d565b80637eb802b9146105935780638da5cb5b146105bb57806391d14854146105e5578063a217fddf146106215761022d565b806336568abe116101b05780634f558e79116101745780634f558e79146104db5780636b20c454146105175780636ebbcb591461053f578063715018a61461056757806379ba50971461057d5761022d565b806336568abe146103eb578063401d448214610413578063463fd1af1461043b5780634b844a1d146104635780634e1273f41461049f5761022d565b8063116039ae116101f7578063116039ae1461030d57806318160ddd14610335578063248a9ca31461035f5780632eb2c2d61461039b5780632f2ff15d146103c35761022d565b806223116814610231578062fdd58e1461025957806301ffc9a7146102955780630e89341c146102d15761022d565b3661022d57005b5f5ffd5b34801561023c575f5ffd5b50610257600480360381019061025291906137b2565b6108c9565b005b348015610264575f5ffd5b5061027f600480360381019061027a91906138b5565b610a4a565b60405161028c9190613902565b60405180910390f35b3480156102a0575f5ffd5b506102bb60048036038101906102b69190613970565b610aad565b6040516102c891906139b5565b60405180910390f35b3480156102dc575f5ffd5b506102f760048036038101906102f291906139ce565b610abe565b6040516103049190613a59565b60405180910390f35b348015610318575f5ffd5b50610333600480360381019061032e9190613ab4565b610b5e565b005b348015610340575f5ffd5b50610349610ee7565b6040516103569190613902565b60405180910390f35b34801561036a575f5ffd5b5061038560048036038101906103809190613b5e565b610efe565b6040516103929190613b98565b60405180910390f35b3480156103a6575f5ffd5b506103c160048036038101906103bc9190613c71565b610f28565b005b3480156103ce575f5ffd5b506103e960048036038101906103e49190613d3c565b610fcf565b005b3480156103f6575f5ffd5b50610411600480360381019061040c9190613d3c565b610ff1565b005b34801561041e575f5ffd5b5061043960048036038101906104349190613d7a565b61106c565b005b348015610446575f5ffd5b50610461600480360381019061045c9190613e56565b6111bc565b005b34801561046e575f5ffd5b50610489600480360381019061048491906139ce565b6113d7565b6040516104969190613902565b60405180910390f35b3480156104aa575f5ffd5b506104c560048036038101906104c09190613f82565b6113f2565b6040516104d291906140af565b60405180910390f35b3480156104e6575f5ffd5b5061050160048036038101906104fc91906139ce565b6114fc565b60405161050e91906139b5565b60405180910390f35b348015610522575f5ffd5b5061053d600480360381019061053891906140cf565b61150f565b005b34801561054a575f5ffd5b5061056560048036038101906105609190614157565b6115bb565b005b348015610572575f5ffd5b5061057b61165b565b005b348015610588575f5ffd5b5061059161166e565b005b34801561059e575f5ffd5b506105b960048036038101906105b49190614157565b6116fc565b005b3480156105c6575f5ffd5b506105cf61179b565b6040516105dc9190614191565b60405180910390f35b3480156105f0575f5ffd5b5061060b60048036038101906106069190613d3c565b6117d0565b60405161061891906139b5565b60405180910390f35b34801561062c575f5ffd5b50610635611841565b6040516106429190613b98565b60405180910390f35b348015610656575f5ffd5b50610671600480360381019061066c91906141d4565b611847565b005b34801561067e575f5ffd5b5061069960048036038101906106949190614212565b61185d565b005b3480156106a6575f5ffd5b506106af611876565b6040516106bc9190613902565b60405180910390f35b3480156106d0575f5ffd5b506106d961187b565b6040516106e691906142b4565b60405180910390f35b3480156106fa575f5ffd5b50610715600480360381019061071091906139ce565b61189f565b6040516107229190613902565b60405180910390f35b610745600480360381019061074091906138b5565b6118c6565b005b348015610752575f5ffd5b5061076d600480360381019061076891906139ce565b61197b565b005b34801561077a575f5ffd5b50610783611a64565b6040516107909190613902565b60405180910390f35b3480156107a4575f5ffd5b506107bf60048036038101906107ba9190613d3c565b611a6f565b005b3480156107cc575f5ffd5b506107d5611a91565b6040516107e29190614191565b60405180910390f35b3480156107f6575f5ffd5b50610811600480360381019061080c91906142cd565b611ac6565b60405161081e91906139b5565b60405180910390f35b348015610832575f5ffd5b5061084d6004803603810190610848919061430b565b611b62565b005b34801561085a575f5ffd5b5061087560048036038101906108709190614157565b611c09565b005b348015610882575f5ffd5b5061088b611cc2565b60405161089891906143be565b60405180910390f35b3480156108ac575f5ffd5b506108c760048036038101906108c291906143d7565b611ce7565b005b60015f6108d7336001610a4a565b9050808211156109205781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610917929190614427565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036109a6576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b233600180611d93565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324856bc366016bcc41e9000086866040518463ffffffff1660e01b8152600401610a169291906145a3565b5f604051808303818588803b158015610a2d575f5ffd5b505af1158015610a3f573d5f5f3e3d5ffd5b505050505050505050565b5f5f610a54611e35565b9050805f015f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b5f610ab782611e5c565b9050919050565b60605f610ac9611e35565b9050806002018054610ada90614605565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0690614605565b8015610b515780601f10610b2857610100808354040283529160200191610b51565b820191905f5260205f20905b815481529060010190602001808311610b3457829003601f168201915b5050505050915050919050565b825f610b6b336001610a4a565b905080821115610bb45781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610bab929190614427565b60405180910390fd5b5f8773ffffffffffffffffffffffffffffffffffffffff163b03610c04576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8790506001861015610c43576040517fea54cbb300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff16638c7a63ae896040518263ffffffff1660e01b8152600401610c7d9190613902565b5f60405180830381865afa158015610c97573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610cbf919061473c565b90505f815f01515103610d0957876040517f505b9f4e000000000000000000000000000000000000000000000000000000008152600401610d009190613902565b60405180910390fd5b610d1533600189611d93565b5f610d1f886113d7565b90505f600167ffffffffffffffff811115610d3d57610d3c6135ac565b5b604051908082528060200260200182016040528015610d6b5781602001602082028036833780820191505090505b50905086815f81518110610d8257610d81614783565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f88604051602001610dce9190614191565b60405160208183030381529060405290508473ffffffffffffffffffffffffffffffffffffffff1663359f1302845f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168e8e87876040518763ffffffff1660e01b8152600401610e41959493929190614867565b5f604051808303818588803b158015610e58575f5ffd5b505af1158015610e6a573d5f5f3e3d5ffd5b50505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168c7f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139928d8e88604051610ed1939291906148c6565b60405180910390a4505050505050505050505050565b5f5f610ef1611f3d565b9050806001015491505090565b5f5f610f08611f64565b9050805f015f8481526020019081526020015f2060010154915050919050565b5f610f31611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610f765750610f748682611ac6565b155b15610fba5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610fb19291906148fb565b60405180910390fd5b610fc78686868686611f92565b505050505050565b610fd882610efe565b610fe181612086565b610feb838361209a565b50505050565b610ff9611f8b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461105d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110678282612192565b505050565b5f5f1b61107881612086565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110dd576040517f743358de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f479050808311156111285782816040517fce22477e00000000000000000000000000000000000000000000000000000000815260040161111f929190614427565b60405180910390fd5b611151838573ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0856040516111ae9190613902565b60405180910390a350505050565b5f6111c5612350565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff1614801561120d5750825b90505f60018367ffffffffffffffff1614801561124057505f3073ffffffffffffffffffffffffffffffffffffffff163b145b90508115801561124e575080155b15611285576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156112d2576001855f0160086101000a81548160ff0219169083151502179055505b6112db88612363565b6112e433612377565b6112ec61238b565b6112f85f5f1b3361209a565b505f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461133657611335876116fc565b5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461137357611372866115bb565b5b83156113cd575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516113c4919061496e565b60405180910390a15b5050505050505050565b5f8166016bcc41e900006113eb91906149b4565b9050919050565b6060815183511461143e57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611435929190614427565b60405180910390fd5b5f835167ffffffffffffffff81111561145a576114596135ac565b5b6040519080825280602002602001820160405280156114885781602001602082028036833780820191505090505b5090505f5f90505b84518110156114f1576114c76114af828761239590919063ffffffff16565b6114c283876123a890919063ffffffff16565b610a4a565b8282815181106114da576114d9614783565b5b602002602001018181525050806001019050611490565b508091505092915050565b5f5f6115078361189f565b119050919050565b611517611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611560575061155e83611559611f8b565b611ac6565b155b156115ab5761156d611f8b565b836040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016115a29291906148fb565b60405180910390fd5b6115b68383836123bb565b505050565b5f5f1b6115c781612086565b5f8273ffffffffffffffffffffffffffffffffffffffff163b03611617576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61166361244b565b61166c5f6124d2565b565b5f611677611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff16611698611a91565b73ffffffffffffffffffffffffffffffffffffffff16146116f057806040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116e79190614191565b60405180910390fd5b6116f9816124d2565b50565b5f5f1b61170881612086565b5f8273ffffffffffffffffffffffffffffffffffffffff163b03611758576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f5f6117a561250f565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f6117da611f64565b9050805f015f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f5f1b81565b611859611852611f8b565b8383612536565b5050565b5f5f1b61186981612086565b611872826126ad565b5050565b600181565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6118a9611f3d565b9050805f015f8481526020019081526020015f2054915050919050565b5f6118d0826113d7565b9050803410156119195780346040517f3644fa3b000000000000000000000000000000000000000000000000000000008152600401611910929190614427565b60405180910390fd5b6119348360018460405180602001604052805f8152506126ce565b5f813461194191906149f5565b90505f81111561197557611974813373ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b5b50505050565b805f611988336001610a4a565b9050808211156119d15781816040517fcffb3e690000000000000000000000000000000000000000000000000000000081526004016119c8929190614427565b60405180910390fd5b5f6119db846113d7565b90505f47905081811015611a285781816040517fce22477e000000000000000000000000000000000000000000000000000000008152600401611a1f929190614427565b60405180910390fd5b611a3433600187611d93565b611a5d823373ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b5050505050565b66016bcc41e9000081565b611a7882610efe565b611a8181612086565b611a8b8383612192565b50505050565b5f5f611a9b612763565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f611ad0611e35565b9050806001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f611b6b611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611bb05750611bae8682611ac6565b155b15611bf45780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611beb9291906148fb565b60405180910390fd5b611c01868686868661278a565b505050505050565b611c1161244b565b5f611c1a612763565b905081815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16611c7c61179b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cef611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d385750611d3683611d31611f8b565b611ac6565b155b15611d8357611d45611f8b565b836040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611d7a9291906148fb565b60405180910390fd5b611d8e838383611d93565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e03575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611dfa9190614191565b60405180910390fd5b5f5f611e0f8484612890565b91509150611e2e855f848460405180602001604052805f8152506128c0565b5050505050565b5f7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500905090565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f2657507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f365750611f358261296c565b5b9050919050565b5f7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800905090565b5f7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612002575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611ff99190614191565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612072575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016120699190614191565b60405180910390fd5b61207f85858585856128c0565b5050505050565b61209781612092611f8b565b6129e5565b50565b5f5f6120a4611f64565b90506120b084846117d0565b612187576001815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612123611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061218c565b5f9150505b92915050565b5f5f61219c611f64565b90506121a884846117d0565b1561227f575f815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061221b611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001915050612284565b5f9150505b92915050565b804710156122d15747816040517fcf4791810000000000000000000000000000000000000000000000000000000081526004016122c8929190614427565b60405180910390fd5b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516122f790614a55565b5f6040518083038185875af1925050503d805f8114612331576040519150601f19603f3d011682016040523d82523d5f602084013e612336565b606091505b50915091508161234a5761234981612a36565b5b50505050565b5f5f61235a612a7a565b90508091505090565b61236b612aa3565b61237481612ae3565b50565b61237f612aa3565b61238881612af7565b50565b612393612aa3565b565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361242b575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016124229190614191565b60405180910390fd5b612446835f848460405180602001604052805f8152506128c0565b505050565b612453611f8b565b73ffffffffffffffffffffffffffffffffffffffff1661247161179b565b73ffffffffffffffffffffffffffffffffffffffff16146124d057612494611f8b565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016124c79190614191565b60405180910390fd5b565b5f6124db612763565b9050805f015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561250b82612b7b565b5050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f61253f611e35565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125b1575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016125a89190614191565b60405180910390fd5b81816001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318460405161269f91906139b5565b60405180910390a350505050565b5f6126b6611e35565b9050818160020190816126c99190614c00565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361273e575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016127359190614191565b60405180910390fd5b5f5f61274a8585612890565b9150915061275b5f878484876128c0565b505050505050565b5f7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036127fa575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016127f19190614191565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361286a575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016128619190614191565b60405180910390fd5b5f5f6128768585612890565b9150915061288787878484876128c0565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b6128cc85858585612c4c565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612965575f612908611f8b565b90506001845103612954575f6129275f866123a890919063ffffffff16565b90505f61293d5f866123a890919063ffffffff16565b905061294d838989858589612c5e565b5050612963565b612962818787878787612e0d565b5b505b5050505050565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806129de57506129dd82612fbc565b5b9050919050565b6129ef82826117d0565b612a325780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612a29929190614ccf565b60405180910390fd5b5050565b5f81511115612a485780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b612aab613025565b612ae1576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b612aeb612aa3565b612af4816126ad565b50565b612aff612aa3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b6f575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612b669190614191565b60405180910390fd5b612b78816124d2565b50565b5f612b8461250f565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b612c5884848484613043565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612e05578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612cbe959493929190614cf6565b6020604051808303815f875af1925050508015612cf957506040513d601f19601f82011682018060405250810190612cf69190614d62565b60015b612d7a573d805f8114612d27576040519150601f19603f3d011682016040523d82523d5f602084013e612d2c565b606091505b505f815103612d7257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612d699190614191565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612e0357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612dfa9190614191565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612fb4578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612e6d959493929190614d8d565b6020604051808303815f875af1925050508015612ea857506040513d601f19601f82011682018060405250810190612ea59190614d62565b60015b612f29573d805f8114612ed6576040519150601f19603f3d011682016040523d82523d5f602084013e612edb565b606091505b505f815103612f2157846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612f189190614191565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612fb257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612fa99190614191565b60405180910390fd5b505b505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f61302e612350565b5f0160089054906101000a900460ff16905090565b5f61304c611f3d565b905061305a858585856131de565b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603613126575f5f90505f5f90505b8451811015613109575f6130b382866123a890919063ffffffff16565b905080845f015f6130cd858a6123a890919063ffffffff16565b81526020019081526020015f205f8282546130e89190614df3565b9250508190555080836130fb9190614df3565b925050806001019050613096565b5080826001015f82825461311d9190614df3565b92505081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036131d7575f5f90505f5f90505b84518110156131c3575f61317f82866123a890919063ffffffff16565b905080845f015f613199858a6123a890919063ffffffff16565b81526020019081526020015f205f8282540392505081905550808301925050806001019050613162565b5080826001015f8282540392505081905550505b5050505050565b5f6131e7611e35565b9050815183511461323357825182516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161322a929190614427565b60405180910390fd5b5f61323c611f8b565b90505f5f90505b8451811015613441575f61326082876123a890919063ffffffff16565b90505f61327683876123a890919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161461339d575f855f015f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561334757898183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161333e9493929190614e26565b60405180910390fd5b818103865f015f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146134345780855f015f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461342c9190614df3565b925050819055505b5050806001019050613243565b5060018451036134fc575f61345f5f866123a890919063ffffffff16565b90505f6134755f866123a890919063ffffffff16565b90508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516134ed929190614427565b60405180910390a4505061357b565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051613572929190614e69565b60405180910390a45b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6135e28261359c565b810181811067ffffffffffffffff82111715613601576136006135ac565b5b80604052505050565b5f613613613583565b905061361f82826135d9565b919050565b5f67ffffffffffffffff82111561363e5761363d6135ac565b5b6136478261359c565b9050602081019050919050565b828183375f83830152505050565b5f61367461366f84613624565b61360a565b9050828152602081018484840111156136905761368f613598565b5b61369b848285613654565b509392505050565b5f82601f8301126136b7576136b6613594565b5b81356136c7848260208601613662565b91505092915050565b5f67ffffffffffffffff8211156136ea576136e96135ac565b5b602082029050602081019050919050565b5f5ffd5b5f61371161370c846136d0565b61360a565b90508083825260208201905060208402830185811115613734576137336136fb565b5b835b8181101561377b57803567ffffffffffffffff81111561375957613758613594565b5b80860161376689826136a3565b85526020850194505050602081019050613736565b5050509392505050565b5f82601f83011261379957613798613594565b5b81356137a98482602086016136ff565b91505092915050565b5f5f604083850312156137c8576137c761358c565b5b5f83013567ffffffffffffffff8111156137e5576137e4613590565b5b6137f1858286016136a3565b925050602083013567ffffffffffffffff81111561381257613811613590565b5b61381e85828601613785565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61385182613828565b9050919050565b61386181613847565b811461386b575f5ffd5b50565b5f8135905061387c81613858565b92915050565b5f819050919050565b61389481613882565b811461389e575f5ffd5b50565b5f813590506138af8161388b565b92915050565b5f5f604083850312156138cb576138ca61358c565b5b5f6138d88582860161386e565b92505060206138e9858286016138a1565b9150509250929050565b6138fc81613882565b82525050565b5f6020820190506139155f8301846138f3565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61394f8161391b565b8114613959575f5ffd5b50565b5f8135905061396a81613946565b92915050565b5f602082840312156139855761398461358c565b5b5f6139928482850161395c565b91505092915050565b5f8115159050919050565b6139af8161399b565b82525050565b5f6020820190506139c85f8301846139a6565b92915050565b5f602082840312156139e3576139e261358c565b5b5f6139f0848285016138a1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f613a2b826139f9565b613a358185613a03565b9350613a45818560208601613a13565b613a4e8161359c565b840191505092915050565b5f6020820190508181035f830152613a718184613a21565b905092915050565b5f613a8382613828565b9050919050565b613a9381613a79565b8114613a9d575f5ffd5b50565b5f81359050613aae81613a8a565b92915050565b5f5f5f5f5f60a08688031215613acd57613acc61358c565b5b5f613ada8882890161386e565b9550506020613aeb888289016138a1565b9450506040613afc888289016138a1565b9350506060613b0d8882890161386e565b9250506080613b1e88828901613aa0565b9150509295509295909350565b5f819050919050565b613b3d81613b2b565b8114613b47575f5ffd5b50565b5f81359050613b5881613b34565b92915050565b5f60208284031215613b7357613b7261358c565b5b5f613b8084828501613b4a565b91505092915050565b613b9281613b2b565b82525050565b5f602082019050613bab5f830184613b89565b92915050565b5f67ffffffffffffffff821115613bcb57613bca6135ac565b5b602082029050602081019050919050565b5f613bee613be984613bb1565b61360a565b90508083825260208201905060208402830185811115613c1157613c106136fb565b5b835b81811015613c3a5780613c2688826138a1565b845260208401935050602081019050613c13565b5050509392505050565b5f82601f830112613c5857613c57613594565b5b8135613c68848260208601613bdc565b91505092915050565b5f5f5f5f5f60a08688031215613c8a57613c8961358c565b5b5f613c978882890161386e565b9550506020613ca88882890161386e565b945050604086013567ffffffffffffffff811115613cc957613cc8613590565b5b613cd588828901613c44565b935050606086013567ffffffffffffffff811115613cf657613cf5613590565b5b613d0288828901613c44565b925050608086013567ffffffffffffffff811115613d2357613d22613590565b5b613d2f888289016136a3565b9150509295509295909350565b5f5f60408385031215613d5257613d5161358c565b5b5f613d5f85828601613b4a565b9250506020613d708582860161386e565b9150509250929050565b5f5f60408385031215613d9057613d8f61358c565b5b5f613d9d85828601613aa0565b9250506020613dae858286016138a1565b9150509250929050565b5f67ffffffffffffffff821115613dd257613dd16135ac565b5b613ddb8261359c565b9050602081019050919050565b5f613dfa613df584613db8565b61360a565b905082815260208101848484011115613e1657613e15613598565b5b613e21848285613654565b509392505050565b5f82601f830112613e3d57613e3c613594565b5b8135613e4d848260208601613de8565b91505092915050565b5f5f5f60608486031215613e6d57613e6c61358c565b5b5f84013567ffffffffffffffff811115613e8a57613e89613590565b5b613e9686828701613e29565b9350506020613ea78682870161386e565b9250506040613eb88682870161386e565b9150509250925092565b5f67ffffffffffffffff821115613edc57613edb6135ac565b5b602082029050602081019050919050565b5f613eff613efa84613ec2565b61360a565b90508083825260208201905060208402830185811115613f2257613f216136fb565b5b835b81811015613f4b5780613f37888261386e565b845260208401935050602081019050613f24565b5050509392505050565b5f82601f830112613f6957613f68613594565b5b8135613f79848260208601613eed565b91505092915050565b5f5f60408385031215613f9857613f9761358c565b5b5f83013567ffffffffffffffff811115613fb557613fb4613590565b5b613fc185828601613f55565b925050602083013567ffffffffffffffff811115613fe257613fe1613590565b5b613fee85828601613c44565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61402a81613882565b82525050565b5f61403b8383614021565b60208301905092915050565b5f602082019050919050565b5f61405d82613ff8565b6140678185614002565b935061407283614012565b805f5b838110156140a25781516140898882614030565b975061409483614047565b925050600181019050614075565b5085935050505092915050565b5f6020820190508181035f8301526140c78184614053565b905092915050565b5f5f5f606084860312156140e6576140e561358c565b5b5f6140f38682870161386e565b935050602084013567ffffffffffffffff81111561411457614113613590565b5b61412086828701613c44565b925050604084013567ffffffffffffffff81111561414157614140613590565b5b61414d86828701613c44565b9150509250925092565b5f6020828403121561416c5761416b61358c565b5b5f6141798482850161386e565b91505092915050565b61418b81613847565b82525050565b5f6020820190506141a45f830184614182565b92915050565b6141b38161399b565b81146141bd575f5ffd5b50565b5f813590506141ce816141aa565b92915050565b5f5f604083850312156141ea576141e961358c565b5b5f6141f78582860161386e565b9250506020614208858286016141c0565b9150509250929050565b5f602082840312156142275761422661358c565b5b5f82013567ffffffffffffffff81111561424457614243613590565b5b61425084828501613e29565b91505092915050565b5f819050919050565b5f61427c61427761427284613828565b614259565b613828565b9050919050565b5f61428d82614262565b9050919050565b5f61429e82614283565b9050919050565b6142ae81614294565b82525050565b5f6020820190506142c75f8301846142a5565b92915050565b5f5f604083850312156142e3576142e261358c565b5b5f6142f08582860161386e565b92505060206143018582860161386e565b9150509250929050565b5f5f5f5f5f60a086880312156143245761432361358c565b5b5f6143318882890161386e565b95505060206143428882890161386e565b9450506040614353888289016138a1565b9350506060614364888289016138a1565b925050608086013567ffffffffffffffff81111561438557614384613590565b5b614391888289016136a3565b9150509295509295909350565b5f6143a882614283565b9050919050565b6143b88161439e565b82525050565b5f6020820190506143d15f8301846143af565b92915050565b5f5f5f606084860312156143ee576143ed61358c565b5b5f6143fb8682870161386e565b935050602061440c868287016138a1565b925050604061441d868287016138a1565b9150509250925092565b5f60408201905061443a5f8301856138f3565b61444760208301846138f3565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6144728261444e565b61447c8185614458565b935061448c818560208601613a13565b6144958161359c565b840191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6144e38261444e565b6144ed81856144c9565b93506144fd818560208601613a13565b6145068161359c565b840191505092915050565b5f61451c83836144d9565b905092915050565b5f602082019050919050565b5f61453a826144a0565b61454481856144aa565b935083602082028501614556856144ba565b805f5b8581101561459157848403895281516145728582614511565b945061457d83614524565b925060208a01995050600181019050614559565b50829750879550505050505092915050565b5f6040820190508181035f8301526145bb8185614468565b905081810360208301526145cf8184614530565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061461c57607f821691505b60208210810361462f5761462e6145d8565b5b50919050565b5f5ffd5b5f5ffd5b5f61464f61464a84613db8565b61360a565b90508281526020810184848401111561466b5761466a613598565b5b614676848285613a13565b509392505050565b5f82601f83011261469257614691613594565b5b81516146a284826020860161463d565b91505092915050565b5f815190506146b98161388b565b92915050565b5f606082840312156146d4576146d3614635565b5b6146de606061360a565b90505f82015167ffffffffffffffff8111156146fd576146fc614639565b5b6147098482850161467e565b5f83015250602061471c848285016146ab565b6020830152506040614730848285016146ab565b60408301525092915050565b5f602082840312156147515761475061358c565b5b5f82015167ffffffffffffffff81111561476e5761476d613590565b5b61477a848285016146bf565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6147e281613847565b82525050565b5f6147f383836147d9565b60208301905092915050565b5f602082019050919050565b5f614815826147b0565b61481f81856147ba565b935061482a836147ca565b805f5b8381101561485a57815161484188826147e8565b975061484c836147ff565b92505060018101905061482d565b5085935050505092915050565b5f60a08201905061487a5f8301886142a5565b61488760208301876138f3565b61489460408301866138f3565b81810360608301526148a6818561480b565b905081810360808301526148ba8184614468565b90509695505050505050565b5f6060820190506148d95f8301866138f3565b6148e660208301856138f3565b6148f360408301846138f3565b949350505050565b5f60408201905061490e5f830185614182565b61491b6020830184614182565b9392505050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f61495861495361494e84614922565b614259565b61492b565b9050919050565b6149688161493e565b82525050565b5f6020820190506149815f83018461495f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6149be82613882565b91506149c983613882565b92508282026149d781613882565b915082820484148315176149ee576149ed614987565b5b5092915050565b5f6149ff82613882565b9150614a0a83613882565b9250828203905081811115614a2257614a21614987565b5b92915050565b5f81905092915050565b50565b5f614a405f83614a28565b9150614a4b82614a32565b5f82019050919050565b5f614a5f82614a35565b9150819050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614ac57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a8a565b614acf8683614a8a565b95508019841693508086168417925050509392505050565b5f614b01614afc614af784613882565b614259565b613882565b9050919050565b5f819050919050565b614b1a83614ae7565b614b2e614b2682614b08565b848454614a96565b825550505050565b5f5f905090565b614b45614b36565b614b50818484614b11565b505050565b5b81811015614b7357614b685f82614b3d565b600181019050614b56565b5050565b601f821115614bb857614b8981614a69565b614b9284614a7b565b81016020851015614ba1578190505b614bb5614bad85614a7b565b830182614b55565b50505b505050565b5f82821c905092915050565b5f614bd85f1984600802614bbd565b1980831691505092915050565b5f614bf08383614bc9565b9150826002028217905092915050565b614c09826139f9565b67ffffffffffffffff811115614c2257614c216135ac565b5b614c2c8254614605565b614c37828285614b77565b5f60209050601f831160018114614c68575f8415614c56578287015190505b614c608582614be5565b865550614cc7565b601f198416614c7686614a69565b5f5b82811015614c9d57848901518255600182019150602085019450602081019050614c78565b86831015614cba5784890151614cb6601f891682614bc9565b8355505b6001600288020188555050505b505050505050565b5f604082019050614ce25f830185614182565b614cef6020830184613b89565b9392505050565b5f60a082019050614d095f830188614182565b614d166020830187614182565b614d2360408301866138f3565b614d3060608301856138f3565b8181036080830152614d428184614468565b90509695505050505050565b5f81519050614d5c81613946565b92915050565b5f60208284031215614d7757614d7661358c565b5b5f614d8484828501614d4e565b91505092915050565b5f60a082019050614da05f830188614182565b614dad6020830187614182565b8181036040830152614dbf8186614053565b90508181036060830152614dd38185614053565b90508181036080830152614de78184614468565b90509695505050505050565b5f614dfd82613882565b9150614e0883613882565b9250828201905080821115614e2057614e1f614987565b5b92915050565b5f608082019050614e395f830187614182565b614e4660208301866138f3565b614e5360408301856138f3565b614e6060608301846138f3565b95945050505050565b5f6040820190508181035f830152614e818185614053565b90508181036020830152614e958184614053565b9050939250505056fea2646970667358221220018542e6ebd2bad4bf05896d2e3ecfe7d74b9c1e20b1c75972dc34529af8847b64736f6c634300081c0033", - "nonce": "0x0", + "input": "0x608060405234801562000010575f80fd5b506200001b62000021565b620000d5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d25780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61293c80620000e35f395ff3fe6080604052600436106101fe575f3560e01c80637eb802b911610113578063c5efaae81161009d578063e30c39781161006d578063e30c397814610624578063e985e9c514610638578063f242432a14610657578063f2fde38b14610676578063f5298aca14610695575f80fd5b8063c5efaae8146105b9578063c9f18ebd146105cc578063d1b53b9c146105eb578063d547741f14610605575f80fd5b8063a22cb465116100e3578063a22cb465146104ff578063a7fd40bf1461051e578063ad77bc401461053d578063b13bfa9114610551578063bd85b0391461056f575f80fd5b80637eb802b9146104825780638da5cb5b146104a157806391d14854146104cd578063a217fddf146104ec575f80fd5b806336568abe116101945780634f558e79116101645780634f558e79146103d05780636b20c4541461041c578063715018a61461043b57806379ba50971461044f5780637ab4339d14610463575f80fd5b806336568abe14610347578063401d4482146103665780634b844a1d146103855780634e1273f4146103a4575f80fd5b806318160ddd116101cf57806318160ddd146102b7578063248a9ca3146102ea5780632eb2c2d6146103095780632f2ff15d14610328575f80fd5b8062fdd58e1461020957806301ffc9a71461023b5780630e89341c1461026a578063116039ae14610296575f80fd5b3661020557005b5f80fd5b348015610214575f80fd5b50610228610223366004611ea2565b6106b4565b6040519081526020015b60405180910390f35b348015610246575f80fd5b5061025a610255366004611ee1565b6106e9565b6040519015158152602001610232565b348015610275575f80fd5b50610289610284366004611f03565b6106f3565b6040516102329190611f67565b3480156102a1575f80fd5b506102b56102b0366004611f79565b6107b5565b005b3480156102c2575f80fd5b507f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e280154610228565b3480156102f5575f80fd5b50610228610304366004611f03565b610a30565b348015610314575f80fd5b506102b5610323366004612141565b610a50565b348015610333575f80fd5b506102b56103423660046121e7565b610ab7565b348015610352575f80fd5b506102b56103613660046121e7565b610ad9565b348015610371575f80fd5b506102b5610380366004611ea2565b610b11565b348015610390575f80fd5b5061022861039f366004611f03565b610bc8565b3480156103af575f80fd5b506103c36103be366004612215565b610bda565b604051610232919061230a565b3480156103db575f80fd5b5061025a6103ea366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e28006020526040902054151590565b348015610427575f80fd5b506102b561043636600461231c565b610ca4565b348015610446575f80fd5b506102b5610d03565b34801561045a575f80fd5b506102b5610d16565b34801561046e575f80fd5b506102b561047d36600461238c565b610d5e565b34801561048d575f80fd5b506102b561049c3660046123cf565b610e8a565b3480156104ac575f80fd5b506104b5610ee0565b6040516001600160a01b039091168152602001610232565b3480156104d8575f80fd5b5061025a6104e73660046121e7565b610f14565b3480156104f7575f80fd5b506102285f81565b34801561050a575f80fd5b506102b56105193660046123ea565b610f4a565b348015610529575f80fd5b506102b561053836600461241a565b610f59565b348015610548575f80fd5b50610228600181565b34801561055c575f80fd5b505f546104b5906001600160a01b031681565b34801561057a575f80fd5b50610228610589366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800602052604090205490565b6102b56105c7366004611ea2565b610f6c565b3480156105d7575f80fd5b506102b56105e6366004611f03565b610fda565b3480156105f6575f80fd5b5061022866016bcc41e9000081565b348015610610575f80fd5b506102b561061f3660046121e7565b611061565b34801561062f575f80fd5b506104b561107d565b348015610643575f80fd5b5061025a610652366004612453565b6110a5565b348015610662575f80fd5b506102b561067136600461247f565b6110f1565b348015610681575f80fd5b506102b56106903660046123cf565b611150565b3480156106a0575f80fd5b506102b56106af3660046124e2565b6111d5565b5f8181525f805160206128c7833981519152602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6106e38261120b565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450280546060915f805160206128c78339815191529161073190612514565b80601f016020809104026020016040519081016040528092919081815260200182805461075d90612514565b80156107a85780601f1061077f576101008083540402835291602001916107a8565b820191905f5260205f20905b81548152906001019060200180831161078b57829003601f168201915b5050505050915050919050565b846001600160a01b03163b5f036107df57604051633e07d28560e11b815260040160405180910390fd5b8460018410156108025760405163ea54cbb360e01b815260040160405180910390fd5b60405163463d31d760e11b8152600481018690525f906001600160a01b03831690638c7a63ae906024015f60405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261086d919081019061254c565b8051519091505f0361089a5760405163282dcfa760e11b8152600481018790526024015b60405180910390fd5b5f6108a63360016106b4565b9050808611156108d35760405163cffb3e6960e01b81526004810187905260248101829052604401610891565b6108df3360018861124a565b5f6108e987610bc8565b6040805160018082528183019092529192505f91906020808301908036833701905050905085815f81518110610921576109216125fe565b6001600160a01b039092166020928302919091018201526040515f91610958918a91016001600160a01b0391909116815260200190565b60408051601f19818403018152908290525f54631acf898160e11b83529092506001600160a01b038089169263359f13029287926109a3929116908f908f9089908990600401612612565b5f604051808303818588803b1580156109ba575f80fd5b505af11580156109cc573d5f803e3d5ffd5b5050604080518d8152602081018e90529081018790526001600160a01b03808c1694508c1692508d91507f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139929060600160405180910390a45050505050505050505050565b5f9081525f805160206128e7833981519152602052604090206001015490565b336001600160a01b0386168114801590610a715750610a6f86826110a5565b155b15610aa25760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866112b7565b505050505050565b610ac082610a30565b610ac981611315565b610ad3838361131f565b50505050565b6001600160a01b0381163314610b025760405163334bd91960e11b815260040160405180910390fd5b610b0c82826113c0565b505050565b5f610b1b81611315565b6001600160a01b038316610b4257604051633a19ac6f60e11b815260040160405180910390fd5b4780831115610b6e5760405163671123bf60e11b81526004810184905260248101829052604401610891565b610b816001600160a01b03851684611439565b6040518381526001600160a01b0385169033907f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0906020015b60405180910390a350505050565b5f6106e38266016bcc41e900006126a1565b60608151835114610c0b5781518351604051635b05999160e01b815260048101929092526024820152604401610891565b5f83516001600160401b03811115610c2557610c25611fd4565b604051908082528060200260200182016040528015610c4e578160200160208202803683370190505b5090505f5b8451811015610c9c57602080820286010151610c77906020808402870101516106b4565b828281518110610c8957610c896125fe565b6020908102919091010152600101610c53565b509392505050565b6001600160a01b0383163314801590610cc45750610cc283336110a5565b155b15610cf857335b60405163711bec9160e11b81526001600160a01b0391821660048201529084166024820152604401610891565b610b0c8383836114c5565b610d0b611508565b610d145f61153a565b565b3380610d2061107d565b6001600160a01b031614610d525760405163118cdaa760e01b81526001600160a01b0382166004820152602401610891565b610d5b8161153a565b50565b5f610d67611572565b805490915060ff600160401b82041615906001600160401b03165f81158015610d8d5750825b90505f826001600160401b03166001148015610da85750303b155b905081158015610db6575080155b15610dd45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dfe57845460ff60401b1916600160401b1785555b610e078761159a565b610e10336115ab565b610e186115bc565b610e225f3361131f565b506001600160a01b03861615610e3b57610e3b86610e8a565b8315610e8157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b5f610e9481611315565b816001600160a01b03163b5f03610ebe57604051633e07d28560e11b815260040160405180910390fd5b505f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f9182525f805160206128e7833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610f553383836115c4565b5050565b5f610f6381611315565b610f5582611660565b5f610f7682610bc8565b905080341015610fa257604051633644fa3b60e01b815260048101829052346024820152604401610891565b610fbd8360018460405180602001604052805f815250611699565b5f610fc882346126b8565b90508015610ad357610ad33382611439565b5f610fe63360016106b4565b9050818110156110135760405163cffb3e6960e01b81526004810183905260248101829052604401610891565b5f61101d83610bc8565b9050478181101561104b5760405163671123bf60e11b81526004810183905260248101829052604401610891565b6110573360018661124a565b610ad33383611439565b61106a82610a30565b61107381611315565b610ad383836113c0565b5f807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610f04565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386168114801590611112575061111086826110a5565b155b156111435760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866116f4565b611158611508565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561119c610ee0565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6001600160a01b03831633148015906111f557506111f383336110a5565b155b156112005733610ccb565b610b0c83838361124a565b5f6001600160e01b03198216636cdb3d1360e11b148061123b57506001600160e01b031982166303a24d0760e21b145b806106e357506106e382611777565b6001600160a01b03831661127257604051626a0d4560e21b81525f6004820152602401610891565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916112b0918791859085906117ab565b5050505050565b6001600160a01b0384166112e057604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661130857604051626a0d4560e21b81525f6004820152602401610891565b6112b085858585856117ab565b610d5b81336117fe565b5f5f805160206128e78339815191526113388484610f14565b6113b7575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561136d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106e3565b5f9150506106e3565b5f5f805160206128e78339815191526113d98484610f14565b156113b7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106e3565b804710156114635760405163cf47918160e01b815247600482015260248101829052604401610891565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146114ad576040519150601f19603f3d011682016040523d82523d5f602084013e6114b2565b606091505b509150915081610ad357610ad381611837565b6001600160a01b0383166114ed57604051626a0d4560e21b81525f6004820152602401610891565b610b0c835f848460405180602001604052805f8152506117ab565b33611511610ee0565b6001600160a01b031614610d145760405163118cdaa760e01b8152336004820152602401610891565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610f5582611860565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106e3565b6115a26118d0565b610d5b816118f5565b6115b36118d0565b610d5b81611906565b610d146118d0565b5f805160206128c78339815191526001600160a01b0383166115fa5760405162ced3e160e81b81525f6004820152602401610891565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610bba565b5f805160206128c78339815191527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610b0c838261270f565b6001600160a01b0384166116c257604051632bfa23e760e11b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610aaf5f878484876117ab565b6001600160a01b03841661171d57604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661174557604051626a0d4560e21b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610e8187878484876117ab565b5f6001600160e01b03198216637965db0b60e01b14806106e357506301ffc9a760e01b6001600160e01b03198316146106e3565b6117b785858585611937565b6001600160a01b038416156112b057825133906001036117f057602084810151908401516117e9838989858589611943565b5050610aaf565b610aaf818787878787611a64565b6118088282610f14565b610f555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610891565b8051156118475780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6118d8611b4b565b610d1457604051631afcd79f60e31b815260040160405180910390fd5b6118fd6118d0565b610d5b81611660565b61190e6118d0565b6001600160a01b038116610d5257604051631e4fbdf760e01b81525f6004820152602401610891565b610ad384848484611b64565b6001600160a01b0384163b15610aaf5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061198790899089908890889088906004016127ca565b6020604051808303815f875af19250505080156119c1575060408051601f3d908101601f191682019092526119be9181019061280e565b60015b611a28573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b606091505b5080515f03611a2057604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b6001600160a01b0384163b15610aaf5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611aa89089908990889088908890600401612829565b6020604051808303815f875af1925050508015611ae2575060408051601f3d908101601f19168201909252611adf9181019061280e565b60015b611b0f573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b6001600160e01b0319811663bc197c8160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b5f611b54611572565b54600160401b900460ff16919050565b7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800611b9185858585611c6f565b6001600160a01b038516611c0f575f805b8451811015611bf45760208181028581018201519087018201515f9081529185905260408220805491928392611bd9908490612886565b90915550611be990508184612886565b925050600101611ba2565b5080826001015f828254611c089190612886565b9091555050505b6001600160a01b0384166112b0575f805b8451811015611c5b5760208181028581018201519087018201515f908152918590526040909120805482900390559190910190600101611c20565b506001820180549190910390555050505050565b805182515f805160206128c78339815191529114611cad5782518251604051635b05999160e01b815260048101929092526024820152604401610891565b335f5b8451811015611daf576020818102868101820151908601909101516001600160a01b03891615611d61575f828152602086815260408083206001600160a01b038d16845290915290205481811015611d3b576040516303dee4c560e01b81526001600160a01b038b166004820152602481018290526044810183905260648101849052608401610891565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b03881615611da5575f828152602086815260408083206001600160a01b038c16845290915281208054839290611d9f908490612886565b90915550505b5050600101611cb0565b508351600103611e2f5760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611e20929190918252602082015260400190565b60405180910390a45050610aaf565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611e7e929190612899565b60405180910390a4505050505050565b6001600160a01b0381168114610d5b575f80fd5b5f8060408385031215611eb3575f80fd5b8235611ebe81611e8e565b946020939093013593505050565b6001600160e01b031981168114610d5b575f80fd5b5f60208284031215611ef1575f80fd5b8135611efc81611ecc565b9392505050565b5f60208284031215611f13575f80fd5b5035919050565b5f5b83811015611f34578181015183820152602001611f1c565b50505f910152565b5f8151808452611f53816020860160208601611f1a565b601f01601f19169290920160200192915050565b602081525f611efc6020830184611f3c565b5f805f805f60a08688031215611f8d575f80fd5b8535611f9881611e8e565b945060208601359350604086013592506060860135611fb681611e8e565b91506080860135611fc681611e8e565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561200a5761200a611fd4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561203857612038611fd4565b604052919050565b5f6001600160401b0382111561205857612058611fd4565b5060051b60200190565b5f82601f830112612071575f80fd5b8135602061208661208183612040565b612010565b8083825260208201915060208460051b8701019350868411156120a7575f80fd5b602086015b848110156120c357803583529183019183016120ac565b509695505050505050565b5f6001600160401b038211156120e6576120e6611fd4565b50601f01601f191660200190565b5f82601f830112612103575f80fd5b8135612111612081826120ce565b818152846020838601011115612125575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215612155575f80fd5b853561216081611e8e565b9450602086013561217081611e8e565b935060408601356001600160401b038082111561218b575f80fd5b61219789838a01612062565b945060608801359150808211156121ac575f80fd5b6121b889838a01612062565b935060808801359150808211156121cd575f80fd5b506121da888289016120f4565b9150509295509295909350565b5f80604083850312156121f8575f80fd5b82359150602083013561220a81611e8e565b809150509250929050565b5f8060408385031215612226575f80fd5b82356001600160401b038082111561223c575f80fd5b818501915085601f83011261224f575f80fd5b8135602061225f61208183612040565b82815260059290921b8401810191818101908984111561227d575f80fd5b948201945b838610156122a457853561229581611e8e565b82529482019490820190612282565b965050860135925050808211156122b9575f80fd5b506122c685828601612062565b9150509250929050565b5f815180845260208085019450602084015f5b838110156122ff578151875295820195908201906001016122e3565b509495945050505050565b602081525f611efc60208301846122d0565b5f805f6060848603121561232e575f80fd5b833561233981611e8e565b925060208401356001600160401b0380821115612354575f80fd5b61236087838801612062565b93506040860135915080821115612375575f80fd5b5061238286828701612062565b9150509250925092565b5f806040838503121561239d575f80fd5b82356001600160401b038111156123b2575f80fd5b6123be858286016120f4565b925050602083013561220a81611e8e565b5f602082840312156123df575f80fd5b8135611efc81611e8e565b5f80604083850312156123fb575f80fd5b823561240681611e8e565b91506020830135801515811461220a575f80fd5b5f6020828403121561242a575f80fd5b81356001600160401b0381111561243f575f80fd5b61244b848285016120f4565b949350505050565b5f8060408385031215612464575f80fd5b823561246f81611e8e565b9150602083013561220a81611e8e565b5f805f805f60a08688031215612493575f80fd5b853561249e81611e8e565b945060208601356124ae81611e8e565b9350604086013592506060860135915060808601356001600160401b038111156124d6575f80fd5b6121da888289016120f4565b5f805f606084860312156124f4575f80fd5b83356124ff81611e8e565b95602085013595506040909401359392505050565b600181811c9082168061252857607f821691505b60208210810361254657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602080838503121561255d575f80fd5b82516001600160401b0380821115612573575f80fd5b9084019060608287031215612586575f80fd5b61258e611fe8565b82518281111561259c575f80fd5b83019150601f820187136125ae575f80fd5b81516125bc612081826120ce565b81815288868386010111156125cf575f80fd5b6125de82878301888701611f1a565b825250828401519381019390935250604090810151908201529392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820160018060a01b038089168452602088602086015287604086015260a0606086015282875180855260c0870191506020890194505f5b8181101561266a57855185168352948301949183019160010161264c565b5050858103608087015261267e8188611f3c565b9b9a5050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e3576106e361268d565b818103818111156106e3576106e361268d565b601f821115610b0c57805f5260205f20601f840160051c810160208510156126f05750805b601f840160051c820191505b818110156112b0575f81556001016126fc565b81516001600160401b0381111561272857612728611fd4565b61273c816127368454612514565b846126cb565b602080601f83116001811461276f575f84156127585750858301515b5f19600386901b1c1916600185901b178555610aaf565b5f85815260208120601f198616915b8281101561279d5788860151825594840194600190910190840161277e565b50858210156127ba57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061280390830184611f3c565b979650505050505050565b5f6020828403121561281e575f80fd5b8151611efc81611ecc565b6001600160a01b0386811682528516602082015260a0604082018190525f90612854908301866122d0565b828103606084015261286681866122d0565b9050828103608084015261287a8185611f3c565b98975050505050505050565b808201808211156106e3576106e361268d565b604081525f6128ab60408301856122d0565b82810360208401526128bd81856122d0565b9594505050505056fe88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220705f2a39cbbda6054e9ea513adb54ebab3bfe8485e890c135b7b88701047a4c164736f6c63430008170033", + "nonce": "0x9e", "chainId": "0x2105" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x07ff9d57a1b6154eb7ecf8931116e3ad498cf4253912c3e786d5f01ffc708bc0", + "hash": "0x285c31769fb98ed50f043a9d5702ea22192cc0799757dda6ad334f050190f656", "transactionType": "CREATE", "contractName": "ProxyAdmin", - "contractAddress": "0x5cfe3a86c328258b986d19c51d866d26cf7bec4c", + "contractAddress": "0x2acb0aa03fbaccd288ae1530687290b5f15c93b0", "function": null, "arguments": [ - "0xaff4BE6F091274421f0Bf5a2F74eC368a2c017E8" + "0x3c10FAED26a6bb341322d1BAaf2c6ecf5B957D61" ], "transaction": { - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", - "gas": "0x9fb27", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "gas": "0x60734", "value": "0x0", - "input": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", - "nonce": "0x1", + "input": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c634300081700330000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "nonce": "0x9f", "chainId": "0x2105" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", + "hash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", "transactionType": "CREATE", "contractName": "TransparentUpgradeableProxy", - "contractAddress": "0x8098bc5ab006c5052f4663b6ef88529303df60df", + "contractAddress": "0xc168b5f0549afbf40052f60b86d1a1a896612646", "function": null, "arguments": [ - "0x3BD63FAd65D12288e7e306107c966490cF1b8189", - "0x5CFE3A86c328258b986D19c51d866d26cF7BeC4c", - "0x463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000006ff5693b99212da76ad316178a184ab56d299b43000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f74657374000000000000000000000000000000000000000000" + "0x06AD14843AE7c386712143c36f378A5064044CD3", + "0x2ACb0aA03fbACCD288aE1530687290B5f15c93B0", + "0x7ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000004e2516a2c207e84a1839755675dfd8ef6302f0a0000000000000000000000000000000000000000000000000000000000000007697066733a2f2f00000000000000000000000000000000000000000000000000" ], "transaction": { - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", - "gas": "0x17ef8b", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "gas": "0xf6d56", "value": "0x0", - "input": "0x60a06040526040516119d43803806119d483398181016040528101906100259190610708565b828161003782826100c160201b60201c565b50508160405161004690610554565b6100509190610783565b604051809103905ff080158015610069573d5f5f3e3d5ffd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100b96100ae61014560201b60201c565b61014e60201b60201c565b50505061081d565b6100d0826101a660201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101325761012c828261027560201b60201c565b50610141565b6101406102fb60201b60201c565b5b5050565b5f608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61017d61033760201b60201c565b8260405161018c92919061079c565b60405180910390a16101a38161039060201b60201c565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361020157806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101f89190610783565b60405180910390fd5b806102337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff168460405161029e9190610807565b5f60405180830381855af49150503d805f81146102d6576040519150601f19603f3d011682016040523d82523d5f602084013e6102db565b606091505b50915091506102f185838361047d60201b60201c565b9250505092915050565b5f341115610335576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103697fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610400575f6040517f62e77ba20000000000000000000000000000000000000000000000000000000081526004016103f79190610783565b60405180910390fd5b806104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f819050919050565b606082610498576104938261051060201b60201c565b610508565b5f82511480156104be57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561050057836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104f79190610783565b60405180910390fd5b819050610509565b5b9392505050565b5f815111156105225780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109c68061100e83390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059b82610572565b9050919050565b6105ab81610591565b81146105b5575f5ffd5b50565b5f815190506105c6816105a2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61061a826105d4565b810181811067ffffffffffffffff82111715610639576106386105e4565b5b80604052505050565b5f61064b610561565b90506106578282610611565b919050565b5f67ffffffffffffffff821115610676576106756105e4565b5b61067f826105d4565b9050602081019050919050565b8281835e5f83830152505050565b5f6106ac6106a78461065c565b610642565b9050828152602081018484840111156106c8576106c76105d0565b5b6106d384828561068c565b509392505050565b5f82601f8301126106ef576106ee6105cc565b5b81516106ff84826020860161069a565b91505092915050565b5f5f5f6060848603121561071f5761071e61056a565b5b5f61072c868287016105b8565b935050602061073d868287016105b8565b925050604084015167ffffffffffffffff81111561075e5761075d61056e565b5b61076a868287016106db565b9150509250925092565b61077d81610591565b82525050565b5f6020820190506107965f830184610774565b92915050565b5f6040820190506107af5f830185610774565b6107bc6020830184610774565b9392505050565b5f81519050919050565b5f81905092915050565b5f6107e1826107c3565b6107eb81856107cd565b93506107fb81856020860161068c565b80840191505092915050565b5f61081282846107d7565b915081905092915050565b6080516107d96108355f395f61010401526107d95ff3fe608060405261000c61000e565b005b610016610101565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f657634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19165f357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100e9576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f1610128565b6100ff565b6100fe61015c565b5b565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f5f5f36600490809261013d939291906104d0565b81019061014a91906106a8565b91509150610158828261016e565b5050565b61016c6101676101e0565b6101ee565b565b6101778261020d565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101d3576101cd82826102d6565b506101dc565b6101db610356565b5b5050565b5f6101e9610392565b905090565b365f5f375f5f365f845af43d5f5f3e805f8114610209573d5ff35b3d5ffd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361026857806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161025f9190610722565b60405180910390fd5b806102947f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102ff919061078d565b5f60405180830381855af49150503d805f8114610337576040519150601f19603f3d011682016040523d82523d5f602084013e61033c565b606091505b509150915061034c8583836103ee565b9250505092915050565b5f341115610390576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103be7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b606082610403576103fe8261047b565b610473565b5f825114801561042957505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561046b57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104629190610722565b60405180910390fd5b819050610474565b5b9392505050565b5f8151111561048d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f5ffd5b5f5ffd5b5f5f858511156104e3576104e26104c8565b5b838611156104f4576104f36104cc565b5b6001850283019150848603905094509492505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61053b82610512565b9050919050565b61054b81610531565b8114610555575f5ffd5b50565b5f8135905061056681610542565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105ba82610574565b810181811067ffffffffffffffff821117156105d9576105d8610584565b5b80604052505050565b5f6105eb6104bf565b90506105f782826105b1565b919050565b5f67ffffffffffffffff82111561061657610615610584565b5b61061f82610574565b9050602081019050919050565b828183375f83830152505050565b5f61064c610647846105fc565b6105e2565b90508281526020810184848401111561066857610667610570565b5b61067384828561062c565b509392505050565b5f82601f83011261068f5761068e61056c565b5b813561069f84826020860161063a565b91505092915050565b5f5f604083850312156106be576106bd61050a565b5b5f6106cb85828601610558565b925050602083013567ffffffffffffffff8111156106ec576106eb61050e565b5b6106f88582860161067b565b9150509250929050565b5f61070c82610512565b9050919050565b61071c81610702565b82525050565b5f6020820190506107355f830184610713565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6107678261073b565b6107718185610745565b935061078181856020860161074f565b80840191505092915050565b5f610798828461075d565b91508190509291505056fea2646970667358221220ccc9529bc6fbbf8f3b86b4a8c5192f0598aa3267a8c6404d4fb67afc4bbc1a5d64736f6c634300081c0033608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c00330000000000000000000000003bd63fad65d12288e7e306107c966490cf1b81890000000000000000000000005cfe3a86c328258b986d19c51d866d26cf7bec4c000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000006ff5693b99212da76ad316178a184ab56d299b43000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f7465737400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x2", + "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122011de57fd4b44521ee974555595699df7e8ef5536966300e3722e17cc1200174664736f6c63430008170033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610300000000000000000000000006ad14843ae7c386712143c36f378a5064044cd30000000000000000000000002acb0aa03fbaccd288ae1530687290b5f15c93b0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000847ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000004e2516a2c207e84a1839755675dfd8ef6302f0a0000000000000000000000000000000000000000000000000000000000000007697066733a2f2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xa0", "chainId": "0x2105" }, "additionalContracts": [ { "transactionType": "CREATE", - "address": "0x3682fd5f2ae6dd7f2c3a074d554eaa0e6a2dc834", - "initCode": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c00330000000000000000000000005cfe3a86c328258b986d19c51d866d26cf7bec4c" + "address": "0x6d7acf96f09c4e091168cf05493440f13129bece", + "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c634300081700330000000000000000000000002acb0aa03fbaccd288ae1530687290b5f15c93b0" } ], "isFixedGasLimit": false @@ -70,186 +70,186 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x1cb0f3b", + "cumulativeGasUsed": "0x29b5e4b", "logs": [ { - "address": "0x3bd63fad65d12288e7e306107c966490cf1b8189", + "address": "0x06ad14843ae7c386712143c36f378a5064044cd3", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "transactionHash": "0x45faa7a8120c65a7307e937a2d5b0dcd14b0da316857c23c4376dfb0972ad8dc", - "transactionIndex": "0x80", - "logIndex": "0x26d", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "transactionHash": "0x396f2b7b1c49e49c082c31baf1e6db636ae87904e23337ea01f16271b1fef1ca", + "transactionIndex": "0x86", + "logIndex": "0x431", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000010002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x45faa7a8120c65a7307e937a2d5b0dcd14b0da316857c23c4376dfb0972ad8dc", - "transactionIndex": "0x80", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "gasUsed": "0x439a6a", - "effectiveGasPrice": "0x792f2d", - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "transactionHash": "0x396f2b7b1c49e49c082c31baf1e6db636ae87904e23337ea01f16271b1fef1ca", + "transactionIndex": "0x86", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "gasUsed": "0x240ca3", + "effectiveGasPrice": "0x25198c", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", "to": null, - "contractAddress": "0x3bd63fad65d12288e7e306107c966490cf1b8189", + "contractAddress": "0x06ad14843ae7c386712143c36f378a5064044cd3", "l1BaseFeeScalar": "0x8dd", - "l1BlobBaseFee": "0x1", + "l1BlobBaseFee": "0x124da3022f", "l1BlobBaseFeeScalar": "0x101c12", - "l1Fee": "0x57dbda7dea", - "l1GasPrice": "0x46c3ea50", - "l1GasUsed": "0x2232e" + "l1Fee": "0x1c6e6e9f6affb", + "l1GasPrice": "0x15afcb083", + "l1GasUsed": "0x177b2" }, { "status": "0x1", - "cumulativeGasUsed": "0x1d2bcbc", + "cumulativeGasUsed": "0x2a00160", "logs": [ { - "address": "0x5cfe3a86c328258b986d19c51d866d26cf7bec4c", + "address": "0x2acb0aa03fbaccd288ae1530687290b5f15c93b0", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" ], "data": "0x", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "transactionHash": "0x07ff9d57a1b6154eb7ecf8931116e3ad498cf4253912c3e786d5f01ffc708bc0", - "transactionIndex": "0x81", - "logIndex": "0x26e", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "transactionHash": "0x285c31769fb98ed50f043a9d5702ea22192cc0799757dda6ad334f050190f656", + "transactionIndex": "0x87", + "logIndex": "0x432", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000800000000000000000000000000400001000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000100000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000004000000000000000000000000000000000000000000010000000000000000000000000000000000000000000001000000000000000000000010000000000000000000000000000020000000000000000000000000000400000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x07ff9d57a1b6154eb7ecf8931116e3ad498cf4253912c3e786d5f01ffc708bc0", - "transactionIndex": "0x81", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "gasUsed": "0x7ad81", - "effectiveGasPrice": "0x792f2d", - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "transactionHash": "0x285c31769fb98ed50f043a9d5702ea22192cc0799757dda6ad334f050190f656", + "transactionIndex": "0x87", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "gasUsed": "0x4a315", + "effectiveGasPrice": "0x25198c", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", "to": null, - "contractAddress": "0x5cfe3a86c328258b986d19c51d866d26cf7bec4c", + "contractAddress": "0x2acb0aa03fbaccd288ae1530687290b5f15c93b0", "l1BaseFeeScalar": "0x8dd", - "l1BlobBaseFee": "0x1", + "l1BlobBaseFee": "0x124da3022f", "l1BlobBaseFeeScalar": "0x101c12", - "l1Fee": "0xce2f16303", - "l1GasPrice": "0x46c3ea50", - "l1GasUsed": "0x5041" + "l1Fee": "0x43ad41d165f5", + "l1GasPrice": "0x15afcb083", + "l1GasUsed": "0x37e4" }, { "status": "0x1", - "cumulativeGasUsed": "0x1e5263b", + "cumulativeGasUsed": "0x2abdf54", "logs": [ { - "address": "0x8098bc5ab006c5052f4663b6ef88529303df60df", + "address": "0xc168b5f0549afbf40052f60b86d1a1a896612646", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000003bd63fad65d12288e7e306107c966490cf1b8189" + "0x00000000000000000000000006ad14843ae7c386712143c36f378a5064044cd3" ], "data": "0x", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", - "transactionIndex": "0x82", - "logIndex": "0x26f", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", + "transactionIndex": "0x88", + "logIndex": "0x433", "removed": false }, { - "address": "0x8098bc5ab006c5052f4663b6ef88529303df60df", + "address": "0xc168b5f0549afbf40052f60b86d1a1a896612646", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" ], "data": "0x", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", - "transactionIndex": "0x82", - "logIndex": "0x270", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", + "transactionIndex": "0x88", + "logIndex": "0x434", "removed": false }, { - "address": "0x8098bc5ab006c5052f4663b6ef88529303df60df", + "address": "0xc168b5f0549afbf40052f60b86d1a1a896612646", "topics": [ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" ], "data": "0x", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", - "transactionIndex": "0x82", - "logIndex": "0x271", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", + "transactionIndex": "0x88", + "logIndex": "0x435", "removed": false }, { - "address": "0x8098bc5ab006c5052f4663b6ef88529303df60df", + "address": "0xc168b5f0549afbf40052f60b86d1a1a896612646", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", - "transactionIndex": "0x82", - "logIndex": "0x272", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", + "transactionIndex": "0x88", + "logIndex": "0x436", "removed": false }, { - "address": "0x3682fd5f2ae6dd7f2c3a074d554eaa0e6a2dc834", + "address": "0x6d7acf96f09c4e091168cf05493440f13129bece", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000005cfe3a86c328258b986d19c51d866d26cf7bec4c" + "0x0000000000000000000000002acb0aa03fbaccd288ae1530687290b5f15c93b0" ], "data": "0x", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", - "transactionIndex": "0x82", - "logIndex": "0x273", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", + "transactionIndex": "0x88", + "logIndex": "0x437", "removed": false }, { - "address": "0x8098bc5ab006c5052f4663b6ef88529303df60df", + "address": "0xc168b5f0549afbf40052f60b86d1a1a896612646", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003682fd5f2ae6dd7f2c3a074d554eaa0e6a2dc834", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", - "transactionIndex": "0x82", - "logIndex": "0x274", + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d7acf96f09c4e091168cf05493440f13129bece", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", + "transactionIndex": "0x88", + "logIndex": "0x438", "removed": false } ], - "logsBloom": "0x00200004000000000002000000000000400000000000000000800000000080000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000020002000001000000000000000000000000000000100000020000000000000000000800001000800000000000000000000000400000000400000000002800000000000000000000000080000000000000800004000000000000000000000000000000000000000000000000001000000000000020000020000000000000000080000000000000000404000100000000000020000000000000000000000000000000004000100000002000000000000000000000", + "logsBloom": "0x00000004000000000040000000000000400000000000000000800000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000080000402000001000000000000000000000000000000000000020004000000000000000800000020800000000000000000000000400000000000000000000800000000000000000000000084000000000200800000000000000000000000000000008200000000000000000000001000000000000000000021000000000000000000000010000000000404000120000000000020000000000000000000004000000000000000000000000000000000040000000000", "type": "0x2", - "transactionHash": "0x35967ce268678f51c30ef8036cce36566f1b124bca8319c58a946838dc478f4f", - "transactionIndex": "0x82", - "blockHash": "0x6a6cbf714cfe71057eb938895d80aec5760bd22fce3ec911682e8ddd5be8deb2", - "blockNumber": "0x207fab2", - "gasUsed": "0x12697f", - "effectiveGasPrice": "0x792f2d", - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "transactionHash": "0x7df8fe8050f0282d1cf0d046480bc2f98a08ba282431ad9735d26ec63306fc0c", + "transactionIndex": "0x88", + "blockHash": "0xea8142f3adb7827a7bfebdc1d686de5167dd227ad8182b6191b5d15ff213a37e", + "blockNumber": "0x1c0a6d1", + "gasUsed": "0xbddf4", + "effectiveGasPrice": "0x25198c", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", "to": null, - "contractAddress": "0x8098bc5ab006c5052f4663b6ef88529303df60df", + "contractAddress": "0xc168b5f0549afbf40052f60b86d1a1a896612646", "l1BaseFeeScalar": "0x8dd", - "l1BlobBaseFee": "0x1", + "l1BlobBaseFee": "0x124da3022f", "l1BlobBaseFeeScalar": "0x101c12", - "l1Fee": "0x1e549c0780", - "l1GasPrice": "0x46c3ea50", - "l1GasUsed": "0xbce5" + "l1Fee": "0xa720414f5c8e", + "l1GasPrice": "0x15afcb083", + "l1GasUsed": "0x8a06" } ], "libraries": [], @@ -257,10 +257,10 @@ "returns": { "0": { "internal_type": "struct DeployCredits.DeploymentResult", - "value": "(0x3BD63FAd65D12288e7e306107c966490cF1b8189, 0x8098BC5aB006C5052F4663b6Ef88529303df60dF, 0x5CFE3A86c328258b986D19c51d866d26cF7BeC4c)" + "value": "(0x06AD14843AE7c386712143c36f378A5064044CD3, 0xC168B5F0549AfbF40052f60b86D1A1a896612646, 0x2ACb0aA03fbACCD288aE1530687290B5f15c93B0)" } }, - "timestamp": 1754944118, + "timestamp": 1745595074, "chain": 8453, - "commit": "5d527ff" + "commit": "94dea88" } \ No newline at end of file diff --git a/broadcast/Deploy.s.sol/84532/run-latest.json b/broadcast/Deploy.s.sol/84532/run-latest.json index 5cbcd06..770d564 100644 --- a/broadcast/Deploy.s.sol/84532/run-latest.json +++ b/broadcast/Deploy.s.sol/84532/run-latest.json @@ -1,67 +1,67 @@ { "transactions": [ { - "hash": "0xe3c6478210f30904aec7cf9545dfed1fb631651338b64db22e0c0996bd1041a8", + "hash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", "transactionType": "CREATE", "contractName": "Credits1155", - "contractAddress": "0xaddba3954346241fa7517ffb46c33d06c57344c4", + "contractAddress": "0x1a9507b4404854b48164b209bfd0d4790b609762", "function": null, "arguments": null, "transaction": { - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", - "gas": "0x57e256", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "gas": "0x2edd3a", "value": "0x0", - "input": "0x608060405234801561000f575f5ffd5b5061001e61002360201b60201c565b61019e565b5f61003261012160201b60201c565b9050805f0160089054906101000a900460ff161561007c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff161461011e5767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516101159190610185565b60405180910390a15b50565b5f5f61013161013a60201b60201c565b90508091505090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b5f67ffffffffffffffff82169050919050565b61017f81610163565b82525050565b5f6020820190506101985f830184610176565b92915050565b614ed4806101ab5f395ff3fe608060405260043610610226575f3560e01c80637eb802b911610122578063c5efaae8116100aa578063e985e9c51161006e578063e985e9c5146107eb578063f242432a14610827578063f2fde38b1461084f578063f45caae314610877578063f5298aca146108a15761022d565b8063c5efaae81461072b578063c9f18ebd14610747578063d1b53b9c1461076f578063d547741f14610799578063e30c3978146107c15761022d565b8063a22cb465116100f1578063a22cb4651461064b578063a7fd40bf14610673578063ad77bc401461069b578063b13bfa91146106c5578063bd85b039146106ef5761022d565b80637eb802b9146105935780638da5cb5b146105bb57806391d14854146105e5578063a217fddf146106215761022d565b806336568abe116101b05780634f558e79116101745780634f558e79146104db5780636b20c454146105175780636ebbcb591461053f578063715018a61461056757806379ba50971461057d5761022d565b806336568abe146103eb578063401d448214610413578063463fd1af1461043b5780634b844a1d146104635780634e1273f41461049f5761022d565b8063116039ae116101f7578063116039ae1461030d57806318160ddd14610335578063248a9ca31461035f5780632eb2c2d61461039b5780632f2ff15d146103c35761022d565b806223116814610231578062fdd58e1461025957806301ffc9a7146102955780630e89341c146102d15761022d565b3661022d57005b5f5ffd5b34801561023c575f5ffd5b50610257600480360381019061025291906137b2565b6108c9565b005b348015610264575f5ffd5b5061027f600480360381019061027a91906138b5565b610a4a565b60405161028c9190613902565b60405180910390f35b3480156102a0575f5ffd5b506102bb60048036038101906102b69190613970565b610aad565b6040516102c891906139b5565b60405180910390f35b3480156102dc575f5ffd5b506102f760048036038101906102f291906139ce565b610abe565b6040516103049190613a59565b60405180910390f35b348015610318575f5ffd5b50610333600480360381019061032e9190613ab4565b610b5e565b005b348015610340575f5ffd5b50610349610ee7565b6040516103569190613902565b60405180910390f35b34801561036a575f5ffd5b5061038560048036038101906103809190613b5e565b610efe565b6040516103929190613b98565b60405180910390f35b3480156103a6575f5ffd5b506103c160048036038101906103bc9190613c71565b610f28565b005b3480156103ce575f5ffd5b506103e960048036038101906103e49190613d3c565b610fcf565b005b3480156103f6575f5ffd5b50610411600480360381019061040c9190613d3c565b610ff1565b005b34801561041e575f5ffd5b5061043960048036038101906104349190613d7a565b61106c565b005b348015610446575f5ffd5b50610461600480360381019061045c9190613e56565b6111bc565b005b34801561046e575f5ffd5b50610489600480360381019061048491906139ce565b6113d7565b6040516104969190613902565b60405180910390f35b3480156104aa575f5ffd5b506104c560048036038101906104c09190613f82565b6113f2565b6040516104d291906140af565b60405180910390f35b3480156104e6575f5ffd5b5061050160048036038101906104fc91906139ce565b6114fc565b60405161050e91906139b5565b60405180910390f35b348015610522575f5ffd5b5061053d600480360381019061053891906140cf565b61150f565b005b34801561054a575f5ffd5b5061056560048036038101906105609190614157565b6115bb565b005b348015610572575f5ffd5b5061057b61165b565b005b348015610588575f5ffd5b5061059161166e565b005b34801561059e575f5ffd5b506105b960048036038101906105b49190614157565b6116fc565b005b3480156105c6575f5ffd5b506105cf61179b565b6040516105dc9190614191565b60405180910390f35b3480156105f0575f5ffd5b5061060b60048036038101906106069190613d3c565b6117d0565b60405161061891906139b5565b60405180910390f35b34801561062c575f5ffd5b50610635611841565b6040516106429190613b98565b60405180910390f35b348015610656575f5ffd5b50610671600480360381019061066c91906141d4565b611847565b005b34801561067e575f5ffd5b5061069960048036038101906106949190614212565b61185d565b005b3480156106a6575f5ffd5b506106af611876565b6040516106bc9190613902565b60405180910390f35b3480156106d0575f5ffd5b506106d961187b565b6040516106e691906142b4565b60405180910390f35b3480156106fa575f5ffd5b50610715600480360381019061071091906139ce565b61189f565b6040516107229190613902565b60405180910390f35b610745600480360381019061074091906138b5565b6118c6565b005b348015610752575f5ffd5b5061076d600480360381019061076891906139ce565b61197b565b005b34801561077a575f5ffd5b50610783611a64565b6040516107909190613902565b60405180910390f35b3480156107a4575f5ffd5b506107bf60048036038101906107ba9190613d3c565b611a6f565b005b3480156107cc575f5ffd5b506107d5611a91565b6040516107e29190614191565b60405180910390f35b3480156107f6575f5ffd5b50610811600480360381019061080c91906142cd565b611ac6565b60405161081e91906139b5565b60405180910390f35b348015610832575f5ffd5b5061084d6004803603810190610848919061430b565b611b62565b005b34801561085a575f5ffd5b5061087560048036038101906108709190614157565b611c09565b005b348015610882575f5ffd5b5061088b611cc2565b60405161089891906143be565b60405180910390f35b3480156108ac575f5ffd5b506108c760048036038101906108c291906143d7565b611ce7565b005b60015f6108d7336001610a4a565b9050808211156109205781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610917929190614427565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036109a6576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109b233600180611d93565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324856bc366016bcc41e9000086866040518463ffffffff1660e01b8152600401610a169291906145a3565b5f604051808303818588803b158015610a2d575f5ffd5b505af1158015610a3f573d5f5f3e3d5ffd5b505050505050505050565b5f5f610a54611e35565b9050805f015f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b5f610ab782611e5c565b9050919050565b60605f610ac9611e35565b9050806002018054610ada90614605565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0690614605565b8015610b515780601f10610b2857610100808354040283529160200191610b51565b820191905f5260205f20905b815481529060010190602001808311610b3457829003601f168201915b5050505050915050919050565b825f610b6b336001610a4a565b905080821115610bb45781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610bab929190614427565b60405180910390fd5b5f8773ffffffffffffffffffffffffffffffffffffffff163b03610c04576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8790506001861015610c43576040517fea54cbb300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff16638c7a63ae896040518263ffffffff1660e01b8152600401610c7d9190613902565b5f60405180830381865afa158015610c97573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610cbf919061473c565b90505f815f01515103610d0957876040517f505b9f4e000000000000000000000000000000000000000000000000000000008152600401610d009190613902565b60405180910390fd5b610d1533600189611d93565b5f610d1f886113d7565b90505f600167ffffffffffffffff811115610d3d57610d3c6135ac565b5b604051908082528060200260200182016040528015610d6b5781602001602082028036833780820191505090505b50905086815f81518110610d8257610d81614783565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f88604051602001610dce9190614191565b60405160208183030381529060405290508473ffffffffffffffffffffffffffffffffffffffff1663359f1302845f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168e8e87876040518763ffffffff1660e01b8152600401610e41959493929190614867565b5f604051808303818588803b158015610e58575f5ffd5b505af1158015610e6a573d5f5f3e3d5ffd5b50505050508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168c7f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139928d8e88604051610ed1939291906148c6565b60405180910390a4505050505050505050505050565b5f5f610ef1611f3d565b9050806001015491505090565b5f5f610f08611f64565b9050805f015f8481526020019081526020015f2060010154915050919050565b5f610f31611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610f765750610f748682611ac6565b155b15610fba5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610fb19291906148fb565b60405180910390fd5b610fc78686868686611f92565b505050505050565b610fd882610efe565b610fe181612086565b610feb838361209a565b50505050565b610ff9611f8b565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461105d576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110678282612192565b505050565b5f5f1b61107881612086565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110dd576040517f743358de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f479050808311156111285782816040517fce22477e00000000000000000000000000000000000000000000000000000000815260040161111f929190614427565b60405180910390fd5b611151838573ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0856040516111ae9190613902565b60405180910390a350505050565b5f6111c5612350565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff1614801561120d5750825b90505f60018367ffffffffffffffff1614801561124057505f3073ffffffffffffffffffffffffffffffffffffffff163b145b90508115801561124e575080155b15611285576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156112d2576001855f0160086101000a81548160ff0219169083151502179055505b6112db88612363565b6112e433612377565b6112ec61238b565b6112f85f5f1b3361209a565b505f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161461133657611335876116fc565b5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461137357611372866115bb565b5b83156113cd575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516113c4919061496e565b60405180910390a15b5050505050505050565b5f8166016bcc41e900006113eb91906149b4565b9050919050565b6060815183511461143e57815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611435929190614427565b60405180910390fd5b5f835167ffffffffffffffff81111561145a576114596135ac565b5b6040519080825280602002602001820160405280156114885781602001602082028036833780820191505090505b5090505f5f90505b84518110156114f1576114c76114af828761239590919063ffffffff16565b6114c283876123a890919063ffffffff16565b610a4a565b8282815181106114da576114d9614783565b5b602002602001018181525050806001019050611490565b508091505092915050565b5f5f6115078361189f565b119050919050565b611517611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611560575061155e83611559611f8b565b611ac6565b155b156115ab5761156d611f8b565b836040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016115a29291906148fb565b60405180910390fd5b6115b68383836123bb565b505050565b5f5f1b6115c781612086565b5f8273ffffffffffffffffffffffffffffffffffffffff163b03611617576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61166361244b565b61166c5f6124d2565b565b5f611677611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff16611698611a91565b73ffffffffffffffffffffffffffffffffffffffff16146116f057806040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016116e79190614191565b60405180910390fd5b6116f9816124d2565b50565b5f5f1b61170881612086565b5f8273ffffffffffffffffffffffffffffffffffffffff163b03611758576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b5f5f6117a561250f565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f6117da611f64565b9050805f015f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f5f1b81565b611859611852611f8b565b8383612536565b5050565b5f5f1b61186981612086565b611872826126ad565b5050565b600181565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6118a9611f3d565b9050805f015f8481526020019081526020015f2054915050919050565b5f6118d0826113d7565b9050803410156119195780346040517f3644fa3b000000000000000000000000000000000000000000000000000000008152600401611910929190614427565b60405180910390fd5b6119348360018460405180602001604052805f8152506126ce565b5f813461194191906149f5565b90505f81111561197557611974813373ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b5b50505050565b805f611988336001610a4a565b9050808211156119d15781816040517fcffb3e690000000000000000000000000000000000000000000000000000000081526004016119c8929190614427565b60405180910390fd5b5f6119db846113d7565b90505f47905081811015611a285781816040517fce22477e000000000000000000000000000000000000000000000000000000008152600401611a1f929190614427565b60405180910390fd5b611a3433600187611d93565b611a5d823373ffffffffffffffffffffffffffffffffffffffff1661228a90919063ffffffff16565b5050505050565b66016bcc41e9000081565b611a7882610efe565b611a8181612086565b611a8b8383612192565b50505050565b5f5f611a9b612763565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f611ad0611e35565b9050806001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f611b6b611f8b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611bb05750611bae8682611ac6565b155b15611bf45780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611beb9291906148fb565b60405180910390fd5b611c01868686868661278a565b505050505050565b611c1161244b565b5f611c1a612763565b905081815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16611c7c61179b565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611cef611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d385750611d3683611d31611f8b565b611ac6565b155b15611d8357611d45611f8b565b836040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611d7a9291906148fb565b60405180910390fd5b611d8e838383611d93565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e03575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611dfa9190614191565b60405180910390fd5b5f5f611e0f8484612890565b91509150611e2e855f848460405180602001604052805f8152506128c0565b5050505050565b5f7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500905090565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f2657507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f365750611f358261296c565b5b9050919050565b5f7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800905090565b5f7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612002575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611ff99190614191565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612072575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016120699190614191565b60405180910390fd5b61207f85858585856128c0565b5050505050565b61209781612092611f8b565b6129e5565b50565b5f5f6120a4611f64565b90506120b084846117d0565b612187576001815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612123611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600191505061218c565b5f9150505b92915050565b5f5f61219c611f64565b90506121a884846117d0565b1561227f575f815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061221b611f8b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a46001915050612284565b5f9150505b92915050565b804710156122d15747816040517fcf4791810000000000000000000000000000000000000000000000000000000081526004016122c8929190614427565b60405180910390fd5b5f5f8373ffffffffffffffffffffffffffffffffffffffff16836040516122f790614a55565b5f6040518083038185875af1925050503d805f8114612331576040519150601f19603f3d011682016040523d82523d5f602084013e612336565b606091505b50915091508161234a5761234981612a36565b5b50505050565b5f5f61235a612a7a565b90508091505090565b61236b612aa3565b61237481612ae3565b50565b61237f612aa3565b61238881612af7565b50565b612393612aa3565b565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361242b575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016124229190614191565b60405180910390fd5b612446835f848460405180602001604052805f8152506128c0565b505050565b612453611f8b565b73ffffffffffffffffffffffffffffffffffffffff1661247161179b565b73ffffffffffffffffffffffffffffffffffffffff16146124d057612494611f8b565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016124c79190614191565b60405180910390fd5b565b5f6124db612763565b9050805f015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561250b82612b7b565b5050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f61253f611e35565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125b1575f6040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016125a89190614191565b60405180910390fd5b81816001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318460405161269f91906139b5565b60405180910390a350505050565b5f6126b6611e35565b9050818160020190816126c99190614c00565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361273e575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016127359190614191565b60405180910390fd5b5f5f61274a8585612890565b9150915061275b5f878484876128c0565b505050505050565b5f7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036127fa575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016127f19190614191565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361286a575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016128619190614191565b60405180910390fd5b5f5f6128768585612890565b9150915061288787878484876128c0565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b6128cc85858585612c4c565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612965575f612908611f8b565b90506001845103612954575f6129275f866123a890919063ffffffff16565b90505f61293d5f866123a890919063ffffffff16565b905061294d838989858589612c5e565b5050612963565b612962818787878787612e0d565b5b505b5050505050565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806129de57506129dd82612fbc565b5b9050919050565b6129ef82826117d0565b612a325780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612a29929190614ccf565b60405180910390fd5b5050565b5f81511115612a485780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b612aab613025565b612ae1576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b612aeb612aa3565b612af4816126ad565b50565b612aff612aa3565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b6f575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612b669190614191565b60405180910390fd5b612b78816124d2565b50565b5f612b8461250f565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b612c5884848484613043565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612e05578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612cbe959493929190614cf6565b6020604051808303815f875af1925050508015612cf957506040513d601f19601f82011682018060405250810190612cf69190614d62565b60015b612d7a573d805f8114612d27576040519150601f19603f3d011682016040523d82523d5f602084013e612d2c565b606091505b505f815103612d7257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612d699190614191565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612e0357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612dfa9190614191565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612fb4578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612e6d959493929190614d8d565b6020604051808303815f875af1925050508015612ea857506040513d601f19601f82011682018060405250810190612ea59190614d62565b60015b612f29573d805f8114612ed6576040519150601f19603f3d011682016040523d82523d5f602084013e612edb565b606091505b505f815103612f2157846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612f189190614191565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612fb257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612fa99190614191565b60405180910390fd5b505b505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f61302e612350565b5f0160089054906101000a900460ff16905090565b5f61304c611f3d565b905061305a858585856131de565b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603613126575f5f90505f5f90505b8451811015613109575f6130b382866123a890919063ffffffff16565b905080845f015f6130cd858a6123a890919063ffffffff16565b81526020019081526020015f205f8282546130e89190614df3565b9250508190555080836130fb9190614df3565b925050806001019050613096565b5080826001015f82825461311d9190614df3565b92505081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036131d7575f5f90505f5f90505b84518110156131c3575f61317f82866123a890919063ffffffff16565b905080845f015f613199858a6123a890919063ffffffff16565b81526020019081526020015f205f8282540392505081905550808301925050806001019050613162565b5080826001015f8282540392505081905550505b5050505050565b5f6131e7611e35565b9050815183511461323357825182516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161322a929190614427565b60405180910390fd5b5f61323c611f8b565b90505f5f90505b8451811015613441575f61326082876123a890919063ffffffff16565b90505f61327683876123a890919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161461339d575f855f015f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561334757898183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161333e9493929190614e26565b60405180910390fd5b818103865f015f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146134345780855f015f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461342c9190614df3565b925050819055505b5050806001019050613243565b5060018451036134fc575f61345f5f866123a890919063ffffffff16565b90505f6134755f866123a890919063ffffffff16565b90508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516134ed929190614427565b60405180910390a4505061357b565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051613572929190614e69565b60405180910390a45b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6135e28261359c565b810181811067ffffffffffffffff82111715613601576136006135ac565b5b80604052505050565b5f613613613583565b905061361f82826135d9565b919050565b5f67ffffffffffffffff82111561363e5761363d6135ac565b5b6136478261359c565b9050602081019050919050565b828183375f83830152505050565b5f61367461366f84613624565b61360a565b9050828152602081018484840111156136905761368f613598565b5b61369b848285613654565b509392505050565b5f82601f8301126136b7576136b6613594565b5b81356136c7848260208601613662565b91505092915050565b5f67ffffffffffffffff8211156136ea576136e96135ac565b5b602082029050602081019050919050565b5f5ffd5b5f61371161370c846136d0565b61360a565b90508083825260208201905060208402830185811115613734576137336136fb565b5b835b8181101561377b57803567ffffffffffffffff81111561375957613758613594565b5b80860161376689826136a3565b85526020850194505050602081019050613736565b5050509392505050565b5f82601f83011261379957613798613594565b5b81356137a98482602086016136ff565b91505092915050565b5f5f604083850312156137c8576137c761358c565b5b5f83013567ffffffffffffffff8111156137e5576137e4613590565b5b6137f1858286016136a3565b925050602083013567ffffffffffffffff81111561381257613811613590565b5b61381e85828601613785565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61385182613828565b9050919050565b61386181613847565b811461386b575f5ffd5b50565b5f8135905061387c81613858565b92915050565b5f819050919050565b61389481613882565b811461389e575f5ffd5b50565b5f813590506138af8161388b565b92915050565b5f5f604083850312156138cb576138ca61358c565b5b5f6138d88582860161386e565b92505060206138e9858286016138a1565b9150509250929050565b6138fc81613882565b82525050565b5f6020820190506139155f8301846138f3565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61394f8161391b565b8114613959575f5ffd5b50565b5f8135905061396a81613946565b92915050565b5f602082840312156139855761398461358c565b5b5f6139928482850161395c565b91505092915050565b5f8115159050919050565b6139af8161399b565b82525050565b5f6020820190506139c85f8301846139a6565b92915050565b5f602082840312156139e3576139e261358c565b5b5f6139f0848285016138a1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f613a2b826139f9565b613a358185613a03565b9350613a45818560208601613a13565b613a4e8161359c565b840191505092915050565b5f6020820190508181035f830152613a718184613a21565b905092915050565b5f613a8382613828565b9050919050565b613a9381613a79565b8114613a9d575f5ffd5b50565b5f81359050613aae81613a8a565b92915050565b5f5f5f5f5f60a08688031215613acd57613acc61358c565b5b5f613ada8882890161386e565b9550506020613aeb888289016138a1565b9450506040613afc888289016138a1565b9350506060613b0d8882890161386e565b9250506080613b1e88828901613aa0565b9150509295509295909350565b5f819050919050565b613b3d81613b2b565b8114613b47575f5ffd5b50565b5f81359050613b5881613b34565b92915050565b5f60208284031215613b7357613b7261358c565b5b5f613b8084828501613b4a565b91505092915050565b613b9281613b2b565b82525050565b5f602082019050613bab5f830184613b89565b92915050565b5f67ffffffffffffffff821115613bcb57613bca6135ac565b5b602082029050602081019050919050565b5f613bee613be984613bb1565b61360a565b90508083825260208201905060208402830185811115613c1157613c106136fb565b5b835b81811015613c3a5780613c2688826138a1565b845260208401935050602081019050613c13565b5050509392505050565b5f82601f830112613c5857613c57613594565b5b8135613c68848260208601613bdc565b91505092915050565b5f5f5f5f5f60a08688031215613c8a57613c8961358c565b5b5f613c978882890161386e565b9550506020613ca88882890161386e565b945050604086013567ffffffffffffffff811115613cc957613cc8613590565b5b613cd588828901613c44565b935050606086013567ffffffffffffffff811115613cf657613cf5613590565b5b613d0288828901613c44565b925050608086013567ffffffffffffffff811115613d2357613d22613590565b5b613d2f888289016136a3565b9150509295509295909350565b5f5f60408385031215613d5257613d5161358c565b5b5f613d5f85828601613b4a565b9250506020613d708582860161386e565b9150509250929050565b5f5f60408385031215613d9057613d8f61358c565b5b5f613d9d85828601613aa0565b9250506020613dae858286016138a1565b9150509250929050565b5f67ffffffffffffffff821115613dd257613dd16135ac565b5b613ddb8261359c565b9050602081019050919050565b5f613dfa613df584613db8565b61360a565b905082815260208101848484011115613e1657613e15613598565b5b613e21848285613654565b509392505050565b5f82601f830112613e3d57613e3c613594565b5b8135613e4d848260208601613de8565b91505092915050565b5f5f5f60608486031215613e6d57613e6c61358c565b5b5f84013567ffffffffffffffff811115613e8a57613e89613590565b5b613e9686828701613e29565b9350506020613ea78682870161386e565b9250506040613eb88682870161386e565b9150509250925092565b5f67ffffffffffffffff821115613edc57613edb6135ac565b5b602082029050602081019050919050565b5f613eff613efa84613ec2565b61360a565b90508083825260208201905060208402830185811115613f2257613f216136fb565b5b835b81811015613f4b5780613f37888261386e565b845260208401935050602081019050613f24565b5050509392505050565b5f82601f830112613f6957613f68613594565b5b8135613f79848260208601613eed565b91505092915050565b5f5f60408385031215613f9857613f9761358c565b5b5f83013567ffffffffffffffff811115613fb557613fb4613590565b5b613fc185828601613f55565b925050602083013567ffffffffffffffff811115613fe257613fe1613590565b5b613fee85828601613c44565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61402a81613882565b82525050565b5f61403b8383614021565b60208301905092915050565b5f602082019050919050565b5f61405d82613ff8565b6140678185614002565b935061407283614012565b805f5b838110156140a25781516140898882614030565b975061409483614047565b925050600181019050614075565b5085935050505092915050565b5f6020820190508181035f8301526140c78184614053565b905092915050565b5f5f5f606084860312156140e6576140e561358c565b5b5f6140f38682870161386e565b935050602084013567ffffffffffffffff81111561411457614113613590565b5b61412086828701613c44565b925050604084013567ffffffffffffffff81111561414157614140613590565b5b61414d86828701613c44565b9150509250925092565b5f6020828403121561416c5761416b61358c565b5b5f6141798482850161386e565b91505092915050565b61418b81613847565b82525050565b5f6020820190506141a45f830184614182565b92915050565b6141b38161399b565b81146141bd575f5ffd5b50565b5f813590506141ce816141aa565b92915050565b5f5f604083850312156141ea576141e961358c565b5b5f6141f78582860161386e565b9250506020614208858286016141c0565b9150509250929050565b5f602082840312156142275761422661358c565b5b5f82013567ffffffffffffffff81111561424457614243613590565b5b61425084828501613e29565b91505092915050565b5f819050919050565b5f61427c61427761427284613828565b614259565b613828565b9050919050565b5f61428d82614262565b9050919050565b5f61429e82614283565b9050919050565b6142ae81614294565b82525050565b5f6020820190506142c75f8301846142a5565b92915050565b5f5f604083850312156142e3576142e261358c565b5b5f6142f08582860161386e565b92505060206143018582860161386e565b9150509250929050565b5f5f5f5f5f60a086880312156143245761432361358c565b5b5f6143318882890161386e565b95505060206143428882890161386e565b9450506040614353888289016138a1565b9350506060614364888289016138a1565b925050608086013567ffffffffffffffff81111561438557614384613590565b5b614391888289016136a3565b9150509295509295909350565b5f6143a882614283565b9050919050565b6143b88161439e565b82525050565b5f6020820190506143d15f8301846143af565b92915050565b5f5f5f606084860312156143ee576143ed61358c565b5b5f6143fb8682870161386e565b935050602061440c868287016138a1565b925050604061441d868287016138a1565b9150509250925092565b5f60408201905061443a5f8301856138f3565b61444760208301846138f3565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6144728261444e565b61447c8185614458565b935061448c818560208601613a13565b6144958161359c565b840191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6144e38261444e565b6144ed81856144c9565b93506144fd818560208601613a13565b6145068161359c565b840191505092915050565b5f61451c83836144d9565b905092915050565b5f602082019050919050565b5f61453a826144a0565b61454481856144aa565b935083602082028501614556856144ba565b805f5b8581101561459157848403895281516145728582614511565b945061457d83614524565b925060208a01995050600181019050614559565b50829750879550505050505092915050565b5f6040820190508181035f8301526145bb8185614468565b905081810360208301526145cf8184614530565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061461c57607f821691505b60208210810361462f5761462e6145d8565b5b50919050565b5f5ffd5b5f5ffd5b5f61464f61464a84613db8565b61360a565b90508281526020810184848401111561466b5761466a613598565b5b614676848285613a13565b509392505050565b5f82601f83011261469257614691613594565b5b81516146a284826020860161463d565b91505092915050565b5f815190506146b98161388b565b92915050565b5f606082840312156146d4576146d3614635565b5b6146de606061360a565b90505f82015167ffffffffffffffff8111156146fd576146fc614639565b5b6147098482850161467e565b5f83015250602061471c848285016146ab565b6020830152506040614730848285016146ab565b60408301525092915050565b5f602082840312156147515761475061358c565b5b5f82015167ffffffffffffffff81111561476e5761476d613590565b5b61477a848285016146bf565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6147e281613847565b82525050565b5f6147f383836147d9565b60208301905092915050565b5f602082019050919050565b5f614815826147b0565b61481f81856147ba565b935061482a836147ca565b805f5b8381101561485a57815161484188826147e8565b975061484c836147ff565b92505060018101905061482d565b5085935050505092915050565b5f60a08201905061487a5f8301886142a5565b61488760208301876138f3565b61489460408301866138f3565b81810360608301526148a6818561480b565b905081810360808301526148ba8184614468565b90509695505050505050565b5f6060820190506148d95f8301866138f3565b6148e660208301856138f3565b6148f360408301846138f3565b949350505050565b5f60408201905061490e5f830185614182565b61491b6020830184614182565b9392505050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f61495861495361494e84614922565b614259565b61492b565b9050919050565b6149688161493e565b82525050565b5f6020820190506149815f83018461495f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6149be82613882565b91506149c983613882565b92508282026149d781613882565b915082820484148315176149ee576149ed614987565b5b5092915050565b5f6149ff82613882565b9150614a0a83613882565b9250828203905081811115614a2257614a21614987565b5b92915050565b5f81905092915050565b50565b5f614a405f83614a28565b9150614a4b82614a32565b5f82019050919050565b5f614a5f82614a35565b9150819050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614ac57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614a8a565b614acf8683614a8a565b95508019841693508086168417925050509392505050565b5f614b01614afc614af784613882565b614259565b613882565b9050919050565b5f819050919050565b614b1a83614ae7565b614b2e614b2682614b08565b848454614a96565b825550505050565b5f5f905090565b614b45614b36565b614b50818484614b11565b505050565b5b81811015614b7357614b685f82614b3d565b600181019050614b56565b5050565b601f821115614bb857614b8981614a69565b614b9284614a7b565b81016020851015614ba1578190505b614bb5614bad85614a7b565b830182614b55565b50505b505050565b5f82821c905092915050565b5f614bd85f1984600802614bbd565b1980831691505092915050565b5f614bf08383614bc9565b9150826002028217905092915050565b614c09826139f9565b67ffffffffffffffff811115614c2257614c216135ac565b5b614c2c8254614605565b614c37828285614b77565b5f60209050601f831160018114614c68575f8415614c56578287015190505b614c608582614be5565b865550614cc7565b601f198416614c7686614a69565b5f5b82811015614c9d57848901518255600182019150602085019450602081019050614c78565b86831015614cba5784890151614cb6601f891682614bc9565b8355505b6001600288020188555050505b505050505050565b5f604082019050614ce25f830185614182565b614cef6020830184613b89565b9392505050565b5f60a082019050614d095f830188614182565b614d166020830187614182565b614d2360408301866138f3565b614d3060608301856138f3565b8181036080830152614d428184614468565b90509695505050505050565b5f81519050614d5c81613946565b92915050565b5f60208284031215614d7757614d7661358c565b5b5f614d8484828501614d4e565b91505092915050565b5f60a082019050614da05f830188614182565b614dad6020830187614182565b8181036040830152614dbf8186614053565b90508181036060830152614dd38185614053565b90508181036080830152614de78184614468565b90509695505050505050565b5f614dfd82613882565b9150614e0883613882565b9250828201905080821115614e2057614e1f614987565b5b92915050565b5f608082019050614e395f830187614182565b614e4660208301866138f3565b614e5360408301856138f3565b614e6060608301846138f3565b95945050505050565b5f6040820190508181035f830152614e818185614053565b90508181036020830152614e958184614053565b9050939250505056fea2646970667358221220018542e6ebd2bad4bf05896d2e3ecfe7d74b9c1e20b1c75972dc34529af8847b64736f6c634300081c0033", - "nonce": "0xf", + "input": "0x608060405234801562000010575f80fd5b506200001b62000021565b620000d5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d25780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61293c80620000e35f395ff3fe6080604052600436106101fe575f3560e01c80637eb802b911610113578063c5efaae81161009d578063e30c39781161006d578063e30c397814610624578063e985e9c514610638578063f242432a14610657578063f2fde38b14610676578063f5298aca14610695575f80fd5b8063c5efaae8146105b9578063c9f18ebd146105cc578063d1b53b9c146105eb578063d547741f14610605575f80fd5b8063a22cb465116100e3578063a22cb465146104ff578063a7fd40bf1461051e578063ad77bc401461053d578063b13bfa9114610551578063bd85b0391461056f575f80fd5b80637eb802b9146104825780638da5cb5b146104a157806391d14854146104cd578063a217fddf146104ec575f80fd5b806336568abe116101945780634f558e79116101645780634f558e79146103d05780636b20c4541461041c578063715018a61461043b57806379ba50971461044f5780637ab4339d14610463575f80fd5b806336568abe14610347578063401d4482146103665780634b844a1d146103855780634e1273f4146103a4575f80fd5b806318160ddd116101cf57806318160ddd146102b7578063248a9ca3146102ea5780632eb2c2d6146103095780632f2ff15d14610328575f80fd5b8062fdd58e1461020957806301ffc9a71461023b5780630e89341c1461026a578063116039ae14610296575f80fd5b3661020557005b5f80fd5b348015610214575f80fd5b50610228610223366004611ea2565b6106b4565b6040519081526020015b60405180910390f35b348015610246575f80fd5b5061025a610255366004611ee1565b6106e9565b6040519015158152602001610232565b348015610275575f80fd5b50610289610284366004611f03565b6106f3565b6040516102329190611f67565b3480156102a1575f80fd5b506102b56102b0366004611f79565b6107b5565b005b3480156102c2575f80fd5b507f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e280154610228565b3480156102f5575f80fd5b50610228610304366004611f03565b610a30565b348015610314575f80fd5b506102b5610323366004612141565b610a50565b348015610333575f80fd5b506102b56103423660046121e7565b610ab7565b348015610352575f80fd5b506102b56103613660046121e7565b610ad9565b348015610371575f80fd5b506102b5610380366004611ea2565b610b11565b348015610390575f80fd5b5061022861039f366004611f03565b610bc8565b3480156103af575f80fd5b506103c36103be366004612215565b610bda565b604051610232919061230a565b3480156103db575f80fd5b5061025a6103ea366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e28006020526040902054151590565b348015610427575f80fd5b506102b561043636600461231c565b610ca4565b348015610446575f80fd5b506102b5610d03565b34801561045a575f80fd5b506102b5610d16565b34801561046e575f80fd5b506102b561047d36600461238c565b610d5e565b34801561048d575f80fd5b506102b561049c3660046123cf565b610e8a565b3480156104ac575f80fd5b506104b5610ee0565b6040516001600160a01b039091168152602001610232565b3480156104d8575f80fd5b5061025a6104e73660046121e7565b610f14565b3480156104f7575f80fd5b506102285f81565b34801561050a575f80fd5b506102b56105193660046123ea565b610f4a565b348015610529575f80fd5b506102b561053836600461241a565b610f59565b348015610548575f80fd5b50610228600181565b34801561055c575f80fd5b505f546104b5906001600160a01b031681565b34801561057a575f80fd5b50610228610589366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800602052604090205490565b6102b56105c7366004611ea2565b610f6c565b3480156105d7575f80fd5b506102b56105e6366004611f03565b610fda565b3480156105f6575f80fd5b5061022866016bcc41e9000081565b348015610610575f80fd5b506102b561061f3660046121e7565b611061565b34801561062f575f80fd5b506104b561107d565b348015610643575f80fd5b5061025a610652366004612453565b6110a5565b348015610662575f80fd5b506102b561067136600461247f565b6110f1565b348015610681575f80fd5b506102b56106903660046123cf565b611150565b3480156106a0575f80fd5b506102b56106af3660046124e2565b6111d5565b5f8181525f805160206128c7833981519152602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6106e38261120b565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450280546060915f805160206128c78339815191529161073190612514565b80601f016020809104026020016040519081016040528092919081815260200182805461075d90612514565b80156107a85780601f1061077f576101008083540402835291602001916107a8565b820191905f5260205f20905b81548152906001019060200180831161078b57829003601f168201915b5050505050915050919050565b846001600160a01b03163b5f036107df57604051633e07d28560e11b815260040160405180910390fd5b8460018410156108025760405163ea54cbb360e01b815260040160405180910390fd5b60405163463d31d760e11b8152600481018690525f906001600160a01b03831690638c7a63ae906024015f60405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261086d919081019061254c565b8051519091505f0361089a5760405163282dcfa760e11b8152600481018790526024015b60405180910390fd5b5f6108a63360016106b4565b9050808611156108d35760405163cffb3e6960e01b81526004810187905260248101829052604401610891565b6108df3360018861124a565b5f6108e987610bc8565b6040805160018082528183019092529192505f91906020808301908036833701905050905085815f81518110610921576109216125fe565b6001600160a01b039092166020928302919091018201526040515f91610958918a91016001600160a01b0391909116815260200190565b60408051601f19818403018152908290525f54631acf898160e11b83529092506001600160a01b038089169263359f13029287926109a3929116908f908f9089908990600401612612565b5f604051808303818588803b1580156109ba575f80fd5b505af11580156109cc573d5f803e3d5ffd5b5050604080518d8152602081018e90529081018790526001600160a01b03808c1694508c1692508d91507f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139929060600160405180910390a45050505050505050505050565b5f9081525f805160206128e7833981519152602052604090206001015490565b336001600160a01b0386168114801590610a715750610a6f86826110a5565b155b15610aa25760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866112b7565b505050505050565b610ac082610a30565b610ac981611315565b610ad3838361131f565b50505050565b6001600160a01b0381163314610b025760405163334bd91960e11b815260040160405180910390fd5b610b0c82826113c0565b505050565b5f610b1b81611315565b6001600160a01b038316610b4257604051633a19ac6f60e11b815260040160405180910390fd5b4780831115610b6e5760405163671123bf60e11b81526004810184905260248101829052604401610891565b610b816001600160a01b03851684611439565b6040518381526001600160a01b0385169033907f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0906020015b60405180910390a350505050565b5f6106e38266016bcc41e900006126a1565b60608151835114610c0b5781518351604051635b05999160e01b815260048101929092526024820152604401610891565b5f83516001600160401b03811115610c2557610c25611fd4565b604051908082528060200260200182016040528015610c4e578160200160208202803683370190505b5090505f5b8451811015610c9c57602080820286010151610c77906020808402870101516106b4565b828281518110610c8957610c896125fe565b6020908102919091010152600101610c53565b509392505050565b6001600160a01b0383163314801590610cc45750610cc283336110a5565b155b15610cf857335b60405163711bec9160e11b81526001600160a01b0391821660048201529084166024820152604401610891565b610b0c8383836114c5565b610d0b611508565b610d145f61153a565b565b3380610d2061107d565b6001600160a01b031614610d525760405163118cdaa760e01b81526001600160a01b0382166004820152602401610891565b610d5b8161153a565b50565b5f610d67611572565b805490915060ff600160401b82041615906001600160401b03165f81158015610d8d5750825b90505f826001600160401b03166001148015610da85750303b155b905081158015610db6575080155b15610dd45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dfe57845460ff60401b1916600160401b1785555b610e078761159a565b610e10336115ab565b610e186115bc565b610e225f3361131f565b506001600160a01b03861615610e3b57610e3b86610e8a565b8315610e8157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b5f610e9481611315565b816001600160a01b03163b5f03610ebe57604051633e07d28560e11b815260040160405180910390fd5b505f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f9182525f805160206128e7833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610f553383836115c4565b5050565b5f610f6381611315565b610f5582611660565b5f610f7682610bc8565b905080341015610fa257604051633644fa3b60e01b815260048101829052346024820152604401610891565b610fbd8360018460405180602001604052805f815250611699565b5f610fc882346126b8565b90508015610ad357610ad33382611439565b5f610fe63360016106b4565b9050818110156110135760405163cffb3e6960e01b81526004810183905260248101829052604401610891565b5f61101d83610bc8565b9050478181101561104b5760405163671123bf60e11b81526004810183905260248101829052604401610891565b6110573360018661124a565b610ad33383611439565b61106a82610a30565b61107381611315565b610ad383836113c0565b5f807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610f04565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386168114801590611112575061111086826110a5565b155b156111435760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866116f4565b611158611508565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561119c610ee0565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6001600160a01b03831633148015906111f557506111f383336110a5565b155b156112005733610ccb565b610b0c83838361124a565b5f6001600160e01b03198216636cdb3d1360e11b148061123b57506001600160e01b031982166303a24d0760e21b145b806106e357506106e382611777565b6001600160a01b03831661127257604051626a0d4560e21b81525f6004820152602401610891565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916112b0918791859085906117ab565b5050505050565b6001600160a01b0384166112e057604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661130857604051626a0d4560e21b81525f6004820152602401610891565b6112b085858585856117ab565b610d5b81336117fe565b5f5f805160206128e78339815191526113388484610f14565b6113b7575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561136d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106e3565b5f9150506106e3565b5f5f805160206128e78339815191526113d98484610f14565b156113b7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106e3565b804710156114635760405163cf47918160e01b815247600482015260248101829052604401610891565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146114ad576040519150601f19603f3d011682016040523d82523d5f602084013e6114b2565b606091505b509150915081610ad357610ad381611837565b6001600160a01b0383166114ed57604051626a0d4560e21b81525f6004820152602401610891565b610b0c835f848460405180602001604052805f8152506117ab565b33611511610ee0565b6001600160a01b031614610d145760405163118cdaa760e01b8152336004820152602401610891565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610f5582611860565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106e3565b6115a26118d0565b610d5b816118f5565b6115b36118d0565b610d5b81611906565b610d146118d0565b5f805160206128c78339815191526001600160a01b0383166115fa5760405162ced3e160e81b81525f6004820152602401610891565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610bba565b5f805160206128c78339815191527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610b0c838261270f565b6001600160a01b0384166116c257604051632bfa23e760e11b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610aaf5f878484876117ab565b6001600160a01b03841661171d57604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661174557604051626a0d4560e21b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610e8187878484876117ab565b5f6001600160e01b03198216637965db0b60e01b14806106e357506301ffc9a760e01b6001600160e01b03198316146106e3565b6117b785858585611937565b6001600160a01b038416156112b057825133906001036117f057602084810151908401516117e9838989858589611943565b5050610aaf565b610aaf818787878787611a64565b6118088282610f14565b610f555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610891565b8051156118475780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6118d8611b4b565b610d1457604051631afcd79f60e31b815260040160405180910390fd5b6118fd6118d0565b610d5b81611660565b61190e6118d0565b6001600160a01b038116610d5257604051631e4fbdf760e01b81525f6004820152602401610891565b610ad384848484611b64565b6001600160a01b0384163b15610aaf5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061198790899089908890889088906004016127ca565b6020604051808303815f875af19250505080156119c1575060408051601f3d908101601f191682019092526119be9181019061280e565b60015b611a28573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b606091505b5080515f03611a2057604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b6001600160a01b0384163b15610aaf5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611aa89089908990889088908890600401612829565b6020604051808303815f875af1925050508015611ae2575060408051601f3d908101601f19168201909252611adf9181019061280e565b60015b611b0f573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b6001600160e01b0319811663bc197c8160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b5f611b54611572565b54600160401b900460ff16919050565b7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800611b9185858585611c6f565b6001600160a01b038516611c0f575f805b8451811015611bf45760208181028581018201519087018201515f9081529185905260408220805491928392611bd9908490612886565b90915550611be990508184612886565b925050600101611ba2565b5080826001015f828254611c089190612886565b9091555050505b6001600160a01b0384166112b0575f805b8451811015611c5b5760208181028581018201519087018201515f908152918590526040909120805482900390559190910190600101611c20565b506001820180549190910390555050505050565b805182515f805160206128c78339815191529114611cad5782518251604051635b05999160e01b815260048101929092526024820152604401610891565b335f5b8451811015611daf576020818102868101820151908601909101516001600160a01b03891615611d61575f828152602086815260408083206001600160a01b038d16845290915290205481811015611d3b576040516303dee4c560e01b81526001600160a01b038b166004820152602481018290526044810183905260648101849052608401610891565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b03881615611da5575f828152602086815260408083206001600160a01b038c16845290915281208054839290611d9f908490612886565b90915550505b5050600101611cb0565b508351600103611e2f5760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611e20929190918252602082015260400190565b60405180910390a45050610aaf565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611e7e929190612899565b60405180910390a4505050505050565b6001600160a01b0381168114610d5b575f80fd5b5f8060408385031215611eb3575f80fd5b8235611ebe81611e8e565b946020939093013593505050565b6001600160e01b031981168114610d5b575f80fd5b5f60208284031215611ef1575f80fd5b8135611efc81611ecc565b9392505050565b5f60208284031215611f13575f80fd5b5035919050565b5f5b83811015611f34578181015183820152602001611f1c565b50505f910152565b5f8151808452611f53816020860160208601611f1a565b601f01601f19169290920160200192915050565b602081525f611efc6020830184611f3c565b5f805f805f60a08688031215611f8d575f80fd5b8535611f9881611e8e565b945060208601359350604086013592506060860135611fb681611e8e565b91506080860135611fc681611e8e565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561200a5761200a611fd4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561203857612038611fd4565b604052919050565b5f6001600160401b0382111561205857612058611fd4565b5060051b60200190565b5f82601f830112612071575f80fd5b8135602061208661208183612040565b612010565b8083825260208201915060208460051b8701019350868411156120a7575f80fd5b602086015b848110156120c357803583529183019183016120ac565b509695505050505050565b5f6001600160401b038211156120e6576120e6611fd4565b50601f01601f191660200190565b5f82601f830112612103575f80fd5b8135612111612081826120ce565b818152846020838601011115612125575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215612155575f80fd5b853561216081611e8e565b9450602086013561217081611e8e565b935060408601356001600160401b038082111561218b575f80fd5b61219789838a01612062565b945060608801359150808211156121ac575f80fd5b6121b889838a01612062565b935060808801359150808211156121cd575f80fd5b506121da888289016120f4565b9150509295509295909350565b5f80604083850312156121f8575f80fd5b82359150602083013561220a81611e8e565b809150509250929050565b5f8060408385031215612226575f80fd5b82356001600160401b038082111561223c575f80fd5b818501915085601f83011261224f575f80fd5b8135602061225f61208183612040565b82815260059290921b8401810191818101908984111561227d575f80fd5b948201945b838610156122a457853561229581611e8e565b82529482019490820190612282565b965050860135925050808211156122b9575f80fd5b506122c685828601612062565b9150509250929050565b5f815180845260208085019450602084015f5b838110156122ff578151875295820195908201906001016122e3565b509495945050505050565b602081525f611efc60208301846122d0565b5f805f6060848603121561232e575f80fd5b833561233981611e8e565b925060208401356001600160401b0380821115612354575f80fd5b61236087838801612062565b93506040860135915080821115612375575f80fd5b5061238286828701612062565b9150509250925092565b5f806040838503121561239d575f80fd5b82356001600160401b038111156123b2575f80fd5b6123be858286016120f4565b925050602083013561220a81611e8e565b5f602082840312156123df575f80fd5b8135611efc81611e8e565b5f80604083850312156123fb575f80fd5b823561240681611e8e565b91506020830135801515811461220a575f80fd5b5f6020828403121561242a575f80fd5b81356001600160401b0381111561243f575f80fd5b61244b848285016120f4565b949350505050565b5f8060408385031215612464575f80fd5b823561246f81611e8e565b9150602083013561220a81611e8e565b5f805f805f60a08688031215612493575f80fd5b853561249e81611e8e565b945060208601356124ae81611e8e565b9350604086013592506060860135915060808601356001600160401b038111156124d6575f80fd5b6121da888289016120f4565b5f805f606084860312156124f4575f80fd5b83356124ff81611e8e565b95602085013595506040909401359392505050565b600181811c9082168061252857607f821691505b60208210810361254657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602080838503121561255d575f80fd5b82516001600160401b0380821115612573575f80fd5b9084019060608287031215612586575f80fd5b61258e611fe8565b82518281111561259c575f80fd5b83019150601f820187136125ae575f80fd5b81516125bc612081826120ce565b81815288868386010111156125cf575f80fd5b6125de82878301888701611f1a565b825250828401519381019390935250604090810151908201529392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820160018060a01b038089168452602088602086015287604086015260a0606086015282875180855260c0870191506020890194505f5b8181101561266a57855185168352948301949183019160010161264c565b5050858103608087015261267e8188611f3c565b9b9a5050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e3576106e361268d565b818103818111156106e3576106e361268d565b601f821115610b0c57805f5260205f20601f840160051c810160208510156126f05750805b601f840160051c820191505b818110156112b0575f81556001016126fc565b81516001600160401b0381111561272857612728611fd4565b61273c816127368454612514565b846126cb565b602080601f83116001811461276f575f84156127585750858301515b5f19600386901b1c1916600185901b178555610aaf565b5f85815260208120601f198616915b8281101561279d5788860151825594840194600190910190840161277e565b50858210156127ba57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061280390830184611f3c565b979650505050505050565b5f6020828403121561281e575f80fd5b8151611efc81611ecc565b6001600160a01b0386811682528516602082015260a0604082018190525f90612854908301866122d0565b828103606084015261286681866122d0565b9050828103608084015261287a8185611f3c565b98975050505050505050565b808201808211156106e3576106e361268d565b604081525f6128ab60408301856122d0565b82810360208401526128bd81856122d0565b9594505050505056fe88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220705f2a39cbbda6054e9ea513adb54ebab3bfe8485e890c135b7b88701047a4c164736f6c63430008170033", + "nonce": "0x1e", "chainId": "0x14a34" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x3fa47abfbf6cc1400f73e088ca6c022518f2e84b4d2a0e0888b982ef4d64af00", + "hash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", "transactionType": "CREATE", "contractName": "ProxyAdmin", - "contractAddress": "0x7e2b240c2a18d8479076df1a01025225a2f1ee51", + "contractAddress": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", "function": null, "arguments": [ - "0xaff4BE6F091274421f0Bf5a2F74eC368a2c017E8" + "0x3c10FAED26a6bb341322d1BAaf2c6ecf5B957D61" ], "transaction": { - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", - "gas": "0x9fb27", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "gas": "0x60734", "value": "0x0", - "input": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", - "nonce": "0x10", + "input": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c634300081700330000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "nonce": "0x1f", "chainId": "0x14a34" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", + "hash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", "transactionType": "CREATE", "contractName": "TransparentUpgradeableProxy", - "contractAddress": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", + "contractAddress": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "function": null, "arguments": [ - "0xaDDBA3954346241fA7517FFb46C33D06C57344c4", - "0x7e2B240c2A18d8479076DF1A01025225a2f1ee51", - "0x463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f74657374000000000000000000000000000000000000000000" + "0x1a9507B4404854B48164B209bFd0d4790B609762", + "0x888FB1aa6EeC47D2B5db8dBcE68d00f294F95f08", + "0x7ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f00000000000000000000000000000000000000000000000000" ], "transaction": { - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", - "gas": "0x176d9c", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "gas": "0xeebd7", "value": "0x0", - "input": "0x60a06040526040516119d43803806119d483398181016040528101906100259190610708565b828161003782826100c160201b60201c565b50508160405161004690610554565b6100509190610783565b604051809103905ff080158015610069573d5f5f3e3d5ffd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100b96100ae61014560201b60201c565b61014e60201b60201c565b50505061081d565b6100d0826101a660201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101325761012c828261027560201b60201c565b50610141565b6101406102fb60201b60201c565b5b5050565b5f608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61017d61033760201b60201c565b8260405161018c92919061079c565b60405180910390a16101a38161039060201b60201c565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361020157806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101f89190610783565b60405180910390fd5b806102337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff168460405161029e9190610807565b5f60405180830381855af49150503d805f81146102d6576040519150601f19603f3d011682016040523d82523d5f602084013e6102db565b606091505b50915091506102f185838361047d60201b60201c565b9250505092915050565b5f341115610335576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103697fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610400575f6040517f62e77ba20000000000000000000000000000000000000000000000000000000081526004016103f79190610783565b60405180910390fd5b806104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f819050919050565b606082610498576104938261051060201b60201c565b610508565b5f82511480156104be57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561050057836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104f79190610783565b60405180910390fd5b819050610509565b5b9392505050565b5f815111156105225780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109c68061100e83390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059b82610572565b9050919050565b6105ab81610591565b81146105b5575f5ffd5b50565b5f815190506105c6816105a2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61061a826105d4565b810181811067ffffffffffffffff82111715610639576106386105e4565b5b80604052505050565b5f61064b610561565b90506106578282610611565b919050565b5f67ffffffffffffffff821115610676576106756105e4565b5b61067f826105d4565b9050602081019050919050565b8281835e5f83830152505050565b5f6106ac6106a78461065c565b610642565b9050828152602081018484840111156106c8576106c76105d0565b5b6106d384828561068c565b509392505050565b5f82601f8301126106ef576106ee6105cc565b5b81516106ff84826020860161069a565b91505092915050565b5f5f5f6060848603121561071f5761071e61056a565b5b5f61072c868287016105b8565b935050602061073d868287016105b8565b925050604084015167ffffffffffffffff81111561075e5761075d61056e565b5b61076a868287016106db565b9150509250925092565b61077d81610591565b82525050565b5f6020820190506107965f830184610774565b92915050565b5f6040820190506107af5f830185610774565b6107bc6020830184610774565b9392505050565b5f81519050919050565b5f81905092915050565b5f6107e1826107c3565b6107eb81856107cd565b93506107fb81856020860161068c565b80840191505092915050565b5f61081282846107d7565b915081905092915050565b6080516107d96108355f395f61010401526107d95ff3fe608060405261000c61000e565b005b610016610101565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f657634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19165f357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100e9576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f1610128565b6100ff565b6100fe61015c565b5b565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f5f5f36600490809261013d939291906104d0565b81019061014a91906106a8565b91509150610158828261016e565b5050565b61016c6101676101e0565b6101ee565b565b6101778261020d565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101d3576101cd82826102d6565b506101dc565b6101db610356565b5b5050565b5f6101e9610392565b905090565b365f5f375f5f365f845af43d5f5f3e805f8114610209573d5ff35b3d5ffd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361026857806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161025f9190610722565b60405180910390fd5b806102947f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102ff919061078d565b5f60405180830381855af49150503d805f8114610337576040519150601f19603f3d011682016040523d82523d5f602084013e61033c565b606091505b509150915061034c8583836103ee565b9250505092915050565b5f341115610390576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103be7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b606082610403576103fe8261047b565b610473565b5f825114801561042957505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561046b57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104629190610722565b60405180910390fd5b819050610474565b5b9392505050565b5f8151111561048d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f5ffd5b5f5ffd5b5f5f858511156104e3576104e26104c8565b5b838611156104f4576104f36104cc565b5b6001850283019150848603905094509492505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61053b82610512565b9050919050565b61054b81610531565b8114610555575f5ffd5b50565b5f8135905061056681610542565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105ba82610574565b810181811067ffffffffffffffff821117156105d9576105d8610584565b5b80604052505050565b5f6105eb6104bf565b90506105f782826105b1565b919050565b5f67ffffffffffffffff82111561061657610615610584565b5b61061f82610574565b9050602081019050919050565b828183375f83830152505050565b5f61064c610647846105fc565b6105e2565b90508281526020810184848401111561066857610667610570565b5b61067384828561062c565b509392505050565b5f82601f83011261068f5761068e61056c565b5b813561069f84826020860161063a565b91505092915050565b5f5f604083850312156106be576106bd61050a565b5b5f6106cb85828601610558565b925050602083013567ffffffffffffffff8111156106ec576106eb61050e565b5b6106f88582860161067b565b9150509250929050565b5f61070c82610512565b9050919050565b61071c81610702565b82525050565b5f6020820190506107355f830184610713565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6107678261073b565b6107718185610745565b935061078181856020860161074f565b80840191505092915050565b5f610798828461075d565b91508190509291505056fea2646970667358221220ccc9529bc6fbbf8f3b86b4a8c5192f0598aa3267a8c6404d4fb67afc4bbc1a5d64736f6c634300081c0033608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000addba3954346241fa7517ffb46c33d06c57344c40000000000000000000000007e2b240c2a18d8479076df1a01025225a2f1ee51000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f7465737400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x11", + "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122011de57fd4b44521ee974555595699df7e8ef5536966300e3722e17cc1200174664736f6c63430008170033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000001a9507b4404854b48164b209bfd0d4790b609762000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000847ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x20", "chainId": "0x14a34" }, "additionalContracts": [ { "transactionType": "CREATE", - "address": "0xe0d012fc1937c09dffa4d9006c47b8db137743b3", - "initCode": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c00330000000000000000000000007e2b240c2a18d8479076df1a01025225a2f1ee51" + "address": "0xa1c729ca727eb3bea8b48ea92a2be0c86ab529b4", + "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08" } ], "isFixedGasLimit": false @@ -70,194 +70,186 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x444eaa", + "cumulativeGasUsed": "0x284809", "logs": [ { - "address": "0xaddba3954346241fa7517ffb46c33d06c57344c4", + "address": "0x1a9507b4404854b48164b209bfd0d4790b609762", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x7269fc61888bff1cd9d85f0f8b1def5a530411e86d902a8b5d9d07e12598c943", - "blockNumber": "0x1c37970", - "blockTimestamp": "0x689a51c0", - "transactionHash": "0xe3c6478210f30904aec7cf9545dfed1fb631651338b64db22e0c0996bd1041a8", - "transactionIndex": "0x1", - "logIndex": "0x0", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", + "transactionIndex": "0x6", + "logIndex": "0x5", "removed": false } ], - "logsBloom": "0x00000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000400000000000000000000040000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080002000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0xe3c6478210f30904aec7cf9545dfed1fb631651338b64db22e0c0996bd1041a8", - "transactionIndex": "0x1", - "blockHash": "0x7269fc61888bff1cd9d85f0f8b1def5a530411e86d902a8b5d9d07e12598c943", - "blockNumber": "0x1c37970", - "gasUsed": "0x439a6a", - "effectiveGasPrice": "0xf4278", - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "transactionHash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", + "transactionIndex": "0x6", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "gasUsed": "0x240ca3", + "effectiveGasPrice": "0xba11f", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", "to": null, - "contractAddress": "0xaddba3954346241fa7517ffb46c33d06c57344c4", + "contractAddress": "0x1a9507b4404854b48164b209bfd0d4790b609762", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x5", + "l1BlobBaseFee": "0x1", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0xb0c7d8c6", - "l1GasPrice": "0x1256f80", - "l1GasUsed": "0x2232e" + "l1Fee": "0xff0f73bb7a", + "l1GasPrice": "0x2689e7ebd", + "l1GasUsed": "0x177b2" }, { "status": "0x1", - "cumulativeGasUsed": "0x4bfc2b", + "cumulativeGasUsed": "0x2ceb1e", "logs": [ { - "address": "0x7e2b240c2a18d8479076df1a01025225a2f1ee51", + "address": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" ], "data": "0x", - "blockHash": "0x7269fc61888bff1cd9d85f0f8b1def5a530411e86d902a8b5d9d07e12598c943", - "blockNumber": "0x1c37970", - "blockTimestamp": "0x689a51c0", - "transactionHash": "0x3fa47abfbf6cc1400f73e088ca6c022518f2e84b4d2a0e0888b982ef4d64af00", - "transactionIndex": "0x2", - "logIndex": "0x1", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", + "transactionIndex": "0x7", + "logIndex": "0x6", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400010000400000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000100000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000010000000000000000000000000000020000000000004000000000000000000000000000400000000000000000000000020", "type": "0x2", - "transactionHash": "0x3fa47abfbf6cc1400f73e088ca6c022518f2e84b4d2a0e0888b982ef4d64af00", - "transactionIndex": "0x2", - "blockHash": "0x7269fc61888bff1cd9d85f0f8b1def5a530411e86d902a8b5d9d07e12598c943", - "blockNumber": "0x1c37970", - "gasUsed": "0x7ad81", - "effectiveGasPrice": "0xf4278", - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "transactionHash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", + "transactionIndex": "0x7", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "gasUsed": "0x4a315", + "effectiveGasPrice": "0xba11f", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", "to": null, - "contractAddress": "0x7e2b240c2a18d8479076df1a01025225a2f1ee51", + "contractAddress": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x5", + "l1BlobBaseFee": "0x1", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0x19f22019", - "l1GasPrice": "0x1256f80", - "l1GasUsed": "0x504f" + "l1Fee": "0x25f2266254", + "l1GasPrice": "0x2689e7ebd", + "l1GasUsed": "0x37e4" }, { "status": "0x1", - "cumulativeGasUsed": "0x5e01b7", + "cumulativeGasUsed": "0x386575", "logs": [ { - "address": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", + "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000addba3954346241fa7517ffb46c33d06c57344c4" + "0x0000000000000000000000001a9507b4404854b48164b209bfd0d4790b609762" ], "data": "0x", - "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", - "blockNumber": "0x1c37970", - "blockTimestamp": "0x689a51c0", - "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", - "transactionIndex": "0x3", - "logIndex": "0x2", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0x7", "removed": false }, { - "address": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", + "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" ], "data": "0x", - "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", - "blockNumber": "0x1c37970", - "blockTimestamp": "0x689a51c0", - "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", - "transactionIndex": "0x3", - "logIndex": "0x3", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0x8", "removed": false }, { - "address": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", + "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "topics": [ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" ], "data": "0x", - "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", - "blockNumber": "0x1c37970", - "blockTimestamp": "0x689a51c0", - "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", - "transactionIndex": "0x3", - "logIndex": "0x4", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0x9", "removed": false }, { - "address": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", + "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", - "blockNumber": "0x1c37970", - "blockTimestamp": "0x689a51c0", - "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", - "transactionIndex": "0x3", - "logIndex": "0x5", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0xa", "removed": false }, { - "address": "0xe0d012fc1937c09dffa4d9006c47b8db137743b3", + "address": "0xa1c729ca727eb3bea8b48ea92a2be0c86ab529b4", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000007e2b240c2a18d8479076df1a01025225a2f1ee51" + "0x000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08" ], "data": "0x", - "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", - "blockNumber": "0x1c37970", - "blockTimestamp": "0x689a51c0", - "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", - "transactionIndex": "0x3", - "logIndex": "0x6", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0xb", "removed": false }, { - "address": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", + "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e0d012fc1937c09dffa4d9006c47b8db137743b3", - "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", - "blockNumber": "0x1c37970", - "blockTimestamp": "0x689a51c0", - "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", - "transactionIndex": "0x3", - "logIndex": "0x7", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1c729ca727eb3bea8b48ea92a2be0c86ab529b4", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0xc", "removed": false } ], - "logsBloom": "0x00000004000000000000000000000000400000000000000000800000000080000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000080000000000000000000000000020000000000000000000800000000800000000000000000000000400000000400000000000800000000000000000000000080002000100000800000000008000000002000000000000000000000000000000000001000000000080004000020000000000000000020000000000000000404000100000000000020000100000000000000000000000000000800100000000000000000000000000020", + "logsBloom": "0x00000004000000000000000004000000400000000000000000800480000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000004010000000020008000000000000000800000000800000000000000000000000400000000000000000000800000000000000000000000084000000100000800000000000000000000000000000000000000000000000000000001000000000000000000021000000000000000000000090000000000404000100000000000020000000004000000000000000400000000000000000000000000000000000000040", "type": "0x2", - "transactionHash": "0x0c1ce314b14bcb632fff57ad7339a0602b247de076510e684ed9ebe503ad5e1a", - "transactionIndex": "0x3", - "blockHash": "0xc48148c24e5572e6586e620f8fab9084c20b0f65e4ea61b820147e010a4c0873", - "blockNumber": "0x1c37970", - "gasUsed": "0x12058c", - "effectiveGasPrice": "0xf4278", - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "gasUsed": "0xb7a57", + "effectiveGasPrice": "0xba11f", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", "to": null, - "contractAddress": "0xfbb419b70745140f728a4bc71fccdde452ec4ada", + "contractAddress": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x5", + "l1BlobBaseFee": "0x1", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0x3c9f63c0", - "l1GasPrice": "0x1256f80", - "l1GasUsed": "0xbba4" + "l1Fee": "0x5ce3d8476c", + "l1GasPrice": "0x2689e7ebd", + "l1GasUsed": "0x88d3" } ], "libraries": [], @@ -265,10 +257,10 @@ "returns": { "0": { "internal_type": "struct DeployCredits.DeploymentResult", - "value": "(0xaDDBA3954346241fA7517FFb46C33D06C57344c4, 0xFbB419b70745140f728A4Bc71fccdDe452ec4ADa, 0x7e2B240c2A18d8479076DF1A01025225a2f1ee51)" + "value": "(0x1a9507B4404854B48164B209bFd0d4790B609762, 0xBe5F264C6413ec0cf3FFe6169A320AeEc721d0A1, 0x888FB1aa6EeC47D2B5db8dBcE68d00f294F95f08)" } }, - "timestamp": 1754943993, + "timestamp": 1745593951, "chain": 84532, - "commit": "5d527ff" + "commit": "edb476b" } \ No newline at end of file From fe58be27dfe291f7bc32c8c3479fa0d5c0578bd1 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 11 Aug 2025 16:27:18 -0500 Subject: [PATCH 19/28] fix failing tests by adding initial value for dopplerUniversalRouter. --- test/Credits1155.t.sol | 2 +- test/Credits1155CoopIntegration.t.sol | 3 ++- test/Credits1155Initializer.t.sol | 7 ++++--- test/Credits1155Isolation.t.sol | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index dbe72f5..0aee43f 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -33,7 +33,7 @@ contract Credits1155Test is Test { // Encode initialization data bytes memory initData = - abi.encodeWithSelector(Credits1155.initialize.selector, "ipfs://test", payable(dummyMarket)); + abi.encodeWithSelector(Credits1155.initialize.selector, "ipfs://test", payable(dummyMarket), address(0)); // Deploy and initialize proxy TransparentUpgradeableProxy proxy = diff --git a/test/Credits1155CoopIntegration.t.sol b/test/Credits1155CoopIntegration.t.sol index de67b13..b76ff68 100644 --- a/test/Credits1155CoopIntegration.t.sol +++ b/test/Credits1155CoopIntegration.t.sol @@ -56,7 +56,8 @@ contract Credits1155CoopIntegrationTest is Test { bytes memory initData = abi.encodeWithSelector( Credits1155.initialize.selector, "ipfs://test", - payable(address(coopCollectibles)) // Using coopCollectibles address + payable(address(coopCollectibles)), // Using coopCollectibles address + address(0) ); // Deploy and initialize proxy diff --git a/test/Credits1155Initializer.t.sol b/test/Credits1155Initializer.t.sol index 9e26447..3fa87e7 100644 --- a/test/Credits1155Initializer.t.sol +++ b/test/Credits1155Initializer.t.sol @@ -71,7 +71,7 @@ contract Credits1155InitializerTest is Test { // Encode initialization data with the strategy bytes memory initData = - abi.encodeWithSelector(Credits1155.initialize.selector, "ipfs://test", address(saleStrategy)); + abi.encodeWithSelector(Credits1155.initialize.selector, "ipfs://test", address(saleStrategy), address(0)); // Deploy and initialize proxy TransparentUpgradeableProxy proxy = @@ -97,7 +97,8 @@ contract Credits1155InitializerTest is Test { bytes memory initData = abi.encodeWithSelector( Credits1155.initialize.selector, "ipfs://test", - address(0) // Zero address for strategy + address(0), // Zero address for strategy + address(0) ); // Deploy and initialize proxy @@ -138,7 +139,7 @@ contract Credits1155InitializerTest is Test { // Encode initialization data with the strategy bytes memory initData = - abi.encodeWithSelector(Credits1155.initialize.selector, "ipfs://test", address(saleStrategy)); + abi.encodeWithSelector(Credits1155.initialize.selector, "ipfs://test", address(saleStrategy), address(0)); // Deploy and initialize proxy TransparentUpgradeableProxy proxy = diff --git a/test/Credits1155Isolation.t.sol b/test/Credits1155Isolation.t.sol index c4cce0f..f0c6272 100644 --- a/test/Credits1155Isolation.t.sol +++ b/test/Credits1155Isolation.t.sol @@ -67,7 +67,7 @@ contract Credits1155IsolationTest is Test { // Initialize and deploy the proxy with our implementation bytes memory initData = - abi.encodeWithSelector(Credits1155.initialize.selector, "ipfs://test", address(saleStrategy)); + abi.encodeWithSelector(Credits1155.initialize.selector, "ipfs://test", address(saleStrategy), address(0)); TransparentUpgradeableProxy proxy = new TransparentUpgradeableProxy(address(implementation), address(proxyAdmin), initData); From cf0cb74bb0d85feb76b868f09774588fd6e787e9 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Thu, 14 Aug 2025 09:21:29 -0500 Subject: [PATCH 20/28] Unit Tests + buyWowCoinsWithCredits - initial implementation --- src/Credits1155.sol | 36 +++++ src/interfaces/ICoop.sol | 275 ++++++++++++++++++++++++++++++++++++ test/Credits1155.t.sol | 75 ++++++++++ test/mocks/MockCoopCoin.sol | 14 ++ 4 files changed, 400 insertions(+) create mode 100644 src/interfaces/ICoop.sol create mode 100644 test/mocks/MockCoopCoin.sol diff --git a/src/Credits1155.sol b/src/Credits1155.sol index 8e9911d..373443e 100644 --- a/src/Credits1155.sol +++ b/src/Credits1155.sol @@ -13,6 +13,7 @@ import {ERC1155SupplyUpgradeable} from import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; import {IUniversalRouter} from "./interfaces/IUniversalRouter.sol"; +import {ICoop} from "./interfaces/ICoop.sol"; // solhint-enable max-line-length import {ICoopCreator1155} from "./interfaces/ICoopCreator1155.sol"; @@ -326,6 +327,41 @@ contract Credits1155 is dopplerUniversalRouter.execute{value: MINT_FEE_IN_WEI}(commands, inputs); } + /** + * @notice Buy COOP coins using credits instead of ETH + * @param coinAddress The address of the COOP WOW Token contract to buy from + * @param recipient The address to receive the bought tokens + * @param refundRecipient The address to receive any refunds + * @param orderReferrer The address of the order referrer + * @param comment A comment for the order + * @param expectedMarketType The expected market type (0 for curve, 1 for other) + * @param minOrderSize The minimum number of tokens to receive + * @param sqrtPriceLimitX96 The price limit for the swap + */ + function buyCoopCoinsWithCredits( + address coinAddress, + address recipient, + address refundRecipient, + address orderReferrer, + string memory comment, + ICoop.MarketType expectedMarketType, + uint256 minOrderSize, + uint160 sqrtPriceLimitX96 + ) external onlySufficientCredits(1) { + // Validate that the coin address is a contract + if (coinAddress.code.length == 0) { + revert Credits1155_Contract_Address_Is_Not_A_Contract(); + } + + // Burn 1 credit before executing the buy + _burn(msg.sender, CREDITS_TOKEN_ID, 1); + + // Call the COOP WOW Token contract's buy function + ICoop(coinAddress).buy{value: MINT_FEE_IN_WEI}( + recipient, refundRecipient, orderReferrer, comment, expectedMarketType, minOrderSize, sqrtPriceLimitX96 + ); + } + /** * @notice Modifier to check if user has sufficient credits * @param amount The amount of credits required diff --git a/src/interfaces/ICoop.sol b/src/interfaces/ICoop.sol new file mode 100644 index 0000000..d1099f2 --- /dev/null +++ b/src/interfaces/ICoop.sol @@ -0,0 +1,275 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.23; + +/* +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNXK0OkkkkkkO0KXWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNOdl:'... ...':lx0XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0d:. .:d0NMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMWKd;. .;dKWMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMW0l. .l0WMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMNKOkkxkO0KOl. .lKWMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMW0l'. .. 'xNMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMO' .',,,. .lXMMMMMMMMMMMMMMMMMM +MMMMMMMMMWo ,0NWWK: cXMMMMMMMMMMMMMMMMM +MMMMMMMMMMk. .xWMNo .',,,,'. oNMMMMMMMMMMMMMMMM +MMMMMMMMMMNo. .oXx. .,oOKNWWWWNKOo, .kWMMMMMMMMMMMMMMM +MMMMMMMMMMMNx. '. ,kNMMMMMMMMMMMMNk, :XMMMMMMMMMMMMMMM +MMMMMMMMMMMMW0:. cXMMMMMMMMMMMMMMMMK: .kMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMNk; ,0MMMMMMXkddkNMMMMMM0' dWMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMNk; cNMMMMMNo .oWMMMMMX: oWMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMNO:. ;XMMMMMW0c;;l0WMMMMMK, oWMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMW0l' .dWMMMMMMMWWMMMMMMMNo. .kMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMNO0WMMXx:. .oXMMMMMMMMMMMMMMXl. ,KMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMWd';xXWMWKd;. 'o0NMMMMMMMWNOo' .dWMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMX: .lONMMW0o,. .':looool:'. .OWMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMM0; ,o0NMMN0d;. 'dNMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMM0; .,o0NMMWKxc. .. :0WMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMXl. .,lONWMWXOo;. .lK0; 'OWMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMNk, 'cxKWMMWKkl:;. ,kWMMXl ,0MMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMXd' .,lkXWMMMWKko;.. .oXMMMMM0, .dWMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMXx;. .;ok0XWMMWX0xl;.. .,;cclcc, .kMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMWKd;. ..;lx0NWMMWX0koc;'.. .;kWMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXko:,.. .'cxKWMMMMMWNK0OxdolllodkKWMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNX0kxolllccllooxk0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +*/ +interface ICoop { + /// @notice Thrown when an operation is attempted with a zero address + error AddressZero(); + + /// @notice Thrown when an invalid market type is specified + error InvalidMarketType(); + + /// @notice Thrown when there are insufficient funds for an operation + error InsufficientFunds(); + + /// @notice Thrown when there is insufficient liquidity for a transaction + error InsufficientLiquidity(); + + /// @notice Thrown when the slippage bounds are exceeded during a transaction + error SlippageBoundsExceeded(); + + /// @notice Thrown when the initial order size is too large + error InitialOrderSizeTooLarge(); + + /// @notice Thrown when the ETH amount is too small for a transaction + error EthAmountTooSmall(); + + /// @notice Thrown when an ETH transfer fails + error EthTransferFailed(); + + /// @notice Thrown when an operation is attempted by an entity other than the pool + error OnlyPool(); + + /// @notice Thrown when an operation is attempted by an entity other than WETH + error OnlyWeth(); + + /// @notice Thrown when a market is not yet graduated + error MarketNotGraduated(); + + /// @notice Thrown when a market is already graduated + error MarketAlreadyGraduated(); + + /// @notice Represents the type of market + enum MarketType { + BONDING_CURVE, + UNISWAP_POOL + } + + /// @notice Represents the state of the market + struct MarketState { + MarketType marketType; + address marketAddress; + } + + /// @notice The secondary rewards accrued from the market's liquidity position + struct SecondaryRewards { + uint256 totalAmountEth; + uint256 totalAmountToken; + uint256 creatorAmountEth; + uint256 creatorAmountToken; + uint256 platformReferrerAmountEth; + uint256 platformReferrerAmountToken; + uint256 protocolAmountEth; + uint256 protocolAmountToken; + } + + /// @notice Emitted when secondary rewards are distributed + event CoopTokenSecondaryRewards(SecondaryRewards rewards); + + /// @notice Emitted when a Coop token is bought + /// @param buyer The address of the buyer + /// @param recipient The address of the recipient + /// @param orderReferrer The address of the order referrer + /// @param totalEth The total ETH involved in the transaction + /// @param ethFee The ETH fee for the transaction + /// @param ethSold The amount of ETH sold + /// @param tokensBought The number of tokens bought + /// @param buyerTokenBalance The token balance of the buyer after the transaction + /// @param comment A comment associated with the transaction + /// @param totalSupply The total supply of tokens after the buy + /// @param marketType The type of market + event CoopTokenBuy( + address indexed buyer, + address indexed recipient, + address indexed orderReferrer, + uint256 totalEth, + uint256 ethFee, + uint256 ethSold, + uint256 tokensBought, + uint256 buyerTokenBalance, + string comment, + uint256 totalSupply, + MarketType marketType + ); + + /// @notice Emitted when a Coop token is sold + /// @param seller The address of the seller + /// @param recipient The address of the recipient + /// @param orderReferrer The address of the order referrer + /// @param totalEth The total ETH involved in the transaction + /// @param ethFee The ETH fee for the transaction + /// @param ethBought The amount of ETH bought + /// @param tokensSold The number of tokens sold + /// @param sellerTokenBalance The token balance of the seller after the transaction + /// @param comment A comment associated with the transaction + /// @param totalSupply The total supply of tokens after the sell + /// @param marketType The type of market + event CoopTokenSell( + address indexed seller, + address indexed recipient, + address indexed orderReferrer, + uint256 totalEth, + uint256 ethFee, + uint256 ethBought, + uint256 tokensSold, + uint256 sellerTokenBalance, + string comment, + uint256 totalSupply, + MarketType marketType + ); + + /// @notice Emitted when Coop tokens are transferred + /// @param from The address of the sender + /// @param to The address of the recipient + /// @param amount The amount of tokens transferred + /// @param fromTokenBalance The token balance of the sender after the transfer + /// @param toTokenBalance The token balance of the recipient after the transfer + /// @param totalSupply The total supply of tokens after the transfer + event CoopTokenTransfer( + address indexed from, + address indexed to, + uint256 amount, + uint256 fromTokenBalance, + uint256 toTokenBalance, + uint256 totalSupply + ); + + /// @notice Emitted when fees are distributed + /// @param tokenCreator The address of the token creator + /// @param platformReferrer The address of the platform referrer + /// @param orderReferrer The address of the order referrer + /// @param protocolFeeRecipient The address of the protocol fee recipient + /// @param tokenCreatorFee The fee for the token creator + /// @param platformReferrerFee The fee for the platform referrer + /// @param orderReferrerFee The fee for the order referrer + /// @param protocolFee The protocol fee + event CoopTokenFees( + address indexed tokenCreator, + address indexed platformReferrer, + address indexed orderReferrer, + address protocolFeeRecipient, + uint256 tokenCreatorFee, + uint256 platformReferrerFee, + uint256 orderReferrerFee, + uint256 protocolFee + ); + + /// @notice Emitted when a market graduates + /// @param tokenAddress The address of the token + /// @param poolAddress The address of the pool + /// @param totalEthLiquidity The total ETH liquidity in the pool + /// @param totalTokenLiquidity The total token liquidity in the pool + /// @param lpPositionId The ID of the liquidity position + /// @param marketType The type of market + event CoopMarketGraduated( + address indexed tokenAddress, + address indexed poolAddress, + uint256 totalEthLiquidity, + uint256 totalTokenLiquidity, + uint256 lpPositionId, + MarketType marketType + ); + + /// @notice Buys tokens from the bonding curve or Uniswap V3 pool depending on the market state. + /// @param recipient The address to receive the purchased tokens + /// @param refundRecipient The address to receive any excess ETH + /// @param orderReferrer The address of the order referrer + /// @param comment A comment associated with the buy order + /// @param expectedMarketType The expected market type (0 = BONDING_CURVE, 1 = UNISWAP_POOL) + /// @param minOrderSize The minimum size of the order to prevent slippage, ignored if market is uniswap pool. + /// @param sqrtPriceLimitX96 The price limit for Uniswap V3 pool swaps, ignored if market is bonding curve. + function buy( + address recipient, + address refundRecipient, + address orderReferrer, + string memory comment, + MarketType expectedMarketType, + uint256 minOrderSize, + uint160 sqrtPriceLimitX96 + ) external payable returns (uint256); + + /// @notice Sells tokens to the bonding curve or Uniswap V3 pool depending on the market state + /// @param tokensToSell The number of tokens to sell + /// @param recipient The address to receive the ETH payout + /// @param orderReferrer The address of the order referrer + /// @param comment A comment associated with the sell order + /// @param expectedMarketType The expected market type (0 = BONDING_CURVE, 1 = UNISWAP_POOL) + /// @param minPayoutSize The minimum payout size to prevent slippage, ignored if market is uniswap pool. + /// @param sqrtPriceLimitX96 The price limit for Uniswap V3 pool swaps, ignored if market is bonding curve. + function sell( + uint256 tokensToSell, + address recipient, + address orderReferrer, + string memory comment, + MarketType expectedMarketType, + uint256 minPayoutSize, + uint160 sqrtPriceLimitX96 + ) external returns (uint256); + + /// @notice Allows a holder to burn their tokens after the market has graduated + /// @dev Emits a CoopTokenTransfer event with the updated token balances and total supply + /// @param tokensToBurn The number of tokens to burn + function burn(uint256 tokensToBurn) external; + + /// @notice Provides a quote for buying tokens with a given amount of ETH + /// @param amount The amount of ETH + /// @return The number of tokens that can be bought + function getEthBuyQuote(uint256 amount) external view returns (uint256); + + /// @notice Provides a quote for selling a given number of tokens + /// @param amount The number of tokens + /// @return The amount of ETH that can be received + function getTokenSellQuote(uint256 amount) external view returns (uint256); + + /// @notice Returns the current state of the market + /// @return The market state + function state() external view returns (MarketState memory); + + /// @notice Returns the URI of the token + /// @return The token URI + function tokenURI() external view returns (string memory); + + /// @notice Returns the address of the token creator + /// @return The token creator's address + function tokenCreator() external view returns (address); + + /// @notice Returns the address of the platform referrer + /// @return The platform referrer's address + function platformReferrer() external view returns (address); +} diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index 0aee43f..d27afa2 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -5,6 +5,8 @@ import {Test} from "forge-std/Test.sol"; import {Credits1155} from "../src/Credits1155.sol"; import {TransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; +import {ICoop} from "../src/interfaces/ICoop.sol"; +import {MockCoopCoin} from "./mocks/MockCoopCoin.sol"; contract Credits1155Test is Test { Credits1155 public implementation; @@ -219,4 +221,77 @@ contract Credits1155Test is Test { uint256 finalCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); assertEq(finalCreditsBalance, 0); } + + // ===== COOP Coins Tests ===== + + function test_BuyCoopCoinsWithCredits() public { + // First buy some credits for the user + uint256 creditsAmount = 10; + uint256 creditsCost = credits.getEthCostForCredits(creditsAmount); + vm.prank(user); + credits.buyCredits{value: creditsCost}(user, creditsAmount); + + // Verify initial credits balance + uint256 initialCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(initialCreditsBalance, creditsAmount); + + // Deploy the mock COOP WOW Token contract + MockCoopCoin mockCoopToken = new MockCoopCoin(); + address coinAddress = address(mockCoopToken); + + // Test data setup - simulate the buy function call from the frontend + address recipient = makeAddr("recipient"); + address refundRecipient = makeAddr("refundRecipient"); + address orderReferrer = makeAddr("orderReferrer"); + string memory comment = "Test comment"; + ICoop.MarketType marketType = ICoop.MarketType.BONDING_CURVE; // curve market + uint256 minOutput = 1000; // minimum tokens to receive + uint160 sqrtPriceLimitX96 = 0; + + // Call buyCoopCoinsWithCredits - should succeed and consume 1 credit + vm.prank(user); + credits.buyCoopCoinsWithCredits( + coinAddress, recipient, refundRecipient, orderReferrer, comment, marketType, minOutput, sqrtPriceLimitX96 + ); + + // Verify credits balance decreased by 1 + uint256 finalCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(finalCreditsBalance, initialCreditsBalance - 1); + } + + function test_RevertWhen_BuyCoopCoinsWithCreditsNoCredits() public { + // Verify user has no credits initially + uint256 initialCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(initialCreditsBalance, 0); + + // Deploy the mock COOP WOW Token contract + MockCoopCoin mockCoopToken = new MockCoopCoin(); + address coinAddress = address(mockCoopToken); + + // Test data setup - simulate the buy function call from the frontend + address recipient = makeAddr("recipient"); + address refundRecipient = makeAddr("refundRecipient"); + address orderReferrer = makeAddr("orderReferrer"); + string memory comment = "Test comment"; + ICoop.MarketType marketType = ICoop.MarketType.BONDING_CURVE; // curve market + uint256 minOutput = 1000; // minimum tokens to receive + uint160 sqrtPriceLimitX96 = 0; + + // Expect the method to revert when user has no credits + vm.prank(user); + vm.expectRevert( + abi.encodeWithSelector( + Credits1155.Credits1155_Insufficient_Credits_Balance.selector, + 1, // required amount + 0 // available amount + ) + ); + credits.buyCoopCoinsWithCredits( + coinAddress, recipient, refundRecipient, orderReferrer, comment, marketType, minOutput, sqrtPriceLimitX96 + ); + + // Verify credits balance remains at 0 + uint256 finalCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(finalCreditsBalance, 0); + } } diff --git a/test/mocks/MockCoopCoin.sol b/test/mocks/MockCoopCoin.sol new file mode 100644 index 0000000..e0da5b9 --- /dev/null +++ b/test/mocks/MockCoopCoin.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.17; + +// Mock COOP WOW Token contract for testing +contract MockCoopCoin { + function buy(address, address, address, string memory, uint8, uint256 minOrderSize, uint160) + external + payable + returns (uint256) + { + // Mock implementation - just return a token amount + return minOrderSize; + } +} From 0401e2b307c353f307f3f5cb5544fe007789a15f Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Thu, 14 Aug 2025 09:38:20 -0500 Subject: [PATCH 21/28] onlyContracts - new modifier to DRY check for valid contract address. --- src/Credits1155.sol | 47 +++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/src/Credits1155.sol b/src/Credits1155.sol index 373443e..e5ec2ac 100644 --- a/src/Credits1155.sol +++ b/src/Credits1155.sol @@ -145,10 +145,11 @@ contract Credits1155 is * @notice Set the fixed price sale strategy for CoopCollectibles * @param _fixedPriceSaleStrategy The address of the fixed price sale strategy */ - function setFixedPriceSaleStrategy(address _fixedPriceSaleStrategy) public onlyRole(DEFAULT_ADMIN_ROLE) { - if (_fixedPriceSaleStrategy.code.length == 0) { - revert Credits1155_Contract_Address_Is_Not_A_Contract(); - } + function setFixedPriceSaleStrategy(address _fixedPriceSaleStrategy) + public + onlyRole(DEFAULT_ADMIN_ROLE) + onlyContracts(_fixedPriceSaleStrategy) + { fixedPriceSaleStrategy = IMinter1155(_fixedPriceSaleStrategy); } @@ -156,10 +157,11 @@ contract Credits1155 is * @notice Set the Doppler Universal Router contract * @param _dopplerUniversalRouter The address of the Doppler Universal Router */ - function setDopplerUniversalRouter(address _dopplerUniversalRouter) public onlyRole(DEFAULT_ADMIN_ROLE) { - if (address(_dopplerUniversalRouter).code.length == 0) { - revert Credits1155_Contract_Address_Is_Not_A_Contract(); - } + function setDopplerUniversalRouter(address _dopplerUniversalRouter) + public + onlyRole(DEFAULT_ADMIN_ROLE) + onlyContracts(_dopplerUniversalRouter) + { dopplerUniversalRouter = IUniversalRouter(payable(_dopplerUniversalRouter)); } @@ -214,10 +216,7 @@ contract Credits1155 is uint256 tokenQuantity, address tokenRecipient, address payable referrer - ) external onlySufficientCredits(tokenQuantity) { - if (coopCollectiblesAddress.code.length == 0) { - revert Credits1155_Contract_Address_Is_Not_A_Contract(); - } + ) external onlySufficientCredits(tokenQuantity) onlyContracts(coopCollectiblesAddress) { ICoopCreator1155 coopCollectibles = ICoopCreator1155(coopCollectiblesAddress); if (tokenQuantity < 1) { revert Credits1155_Must_Buy_At_Least_One_Token(); @@ -314,12 +313,8 @@ contract Credits1155 is function buyDopplerCoinsWithCredits(bytes memory commands, bytes[] memory inputs) external onlySufficientCredits(1) + onlyContracts(address(dopplerUniversalRouter)) { - // Validate that the Doppler Universal Router is set - if (address(dopplerUniversalRouter) == address(0)) { - revert Credits1155_Contract_Address_Is_Not_A_Contract(); - } - // Burn 1 credit before executing the swap _burn(msg.sender, CREDITS_TOKEN_ID, 1); @@ -347,12 +342,7 @@ contract Credits1155 is ICoop.MarketType expectedMarketType, uint256 minOrderSize, uint160 sqrtPriceLimitX96 - ) external onlySufficientCredits(1) { - // Validate that the coin address is a contract - if (coinAddress.code.length == 0) { - revert Credits1155_Contract_Address_Is_Not_A_Contract(); - } - + ) external onlySufficientCredits(1) onlyContracts(coinAddress) { // Burn 1 credit before executing the buy _burn(msg.sender, CREDITS_TOKEN_ID, 1); @@ -374,6 +364,17 @@ contract Credits1155 is _; } + /** + * @notice Modifier to check if an address is a contract + * @param target The address to check + */ + modifier onlyContracts(address target) { + if (target.code.length == 0) { + revert Credits1155_Contract_Address_Is_Not_A_Contract(); + } + _; + } + receive() external payable {} uint256[50] private __gap; From 351edae83f4e8f5d91452987bb354645d37f51b7 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Thu, 14 Aug 2025 09:40:30 -0500 Subject: [PATCH 22/28] test_RevertWhen_BuyCoopCoinsWithCreditsNonContractAddress - new unit test --- test/Credits1155.t.sol | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/test/Credits1155.t.sol b/test/Credits1155.t.sol index d27afa2..24b72dd 100644 --- a/test/Credits1155.t.sol +++ b/test/Credits1155.t.sol @@ -294,4 +294,46 @@ contract Credits1155Test is Test { uint256 finalCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); assertEq(finalCreditsBalance, 0); } + + function test_RevertWhen_BuyCoopCoinsWithCreditsNonContractAddress() public { + // First buy some credits for the user + uint256 creditsAmount = 10; + uint256 creditsCost = credits.getEthCostForCredits(creditsAmount); + vm.prank(user); + credits.buyCredits{value: creditsCost}(user, creditsAmount); + + // Verify initial credits balance + uint256 initialCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(initialCreditsBalance, creditsAmount); + + // Use a regular address (not a contract) for coinAddress + address nonContractAddress = makeAddr("nonContract"); + + // Test data setup + address recipient = makeAddr("recipient"); + address refundRecipient = makeAddr("refundRecipient"); + address orderReferrer = makeAddr("orderReferrer"); + string memory comment = "Test comment"; + ICoop.MarketType marketType = ICoop.MarketType.BONDING_CURVE; + uint256 minOutput = 1000; + uint160 sqrtPriceLimitX96 = 0; + + // Expect the method to revert due to onlyContracts modifier + vm.prank(user); + vm.expectRevert(abi.encodeWithSelector(Credits1155.Credits1155_Contract_Address_Is_Not_A_Contract.selector)); + credits.buyCoopCoinsWithCredits( + nonContractAddress, + recipient, + refundRecipient, + orderReferrer, + comment, + marketType, + minOutput, + sqrtPriceLimitX96 + ); + + // Verify credits balance remains unchanged after revert + uint256 finalCreditsBalance = credits.balanceOf(user, credits.CREDITS_TOKEN_ID()); + assertEq(finalCreditsBalance, initialCreditsBalance); + } } From 98d46eeb8e3decb4cfc64929f12e834dd1de17bf Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Thu, 14 Aug 2025 09:40:58 -0500 Subject: [PATCH 23/28] formatting From 49e44120ff0b1bea71353120cb0acb077c064f87 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 18 Aug 2025 11:13:40 -0500 Subject: [PATCH 24/28] Deploy script - setDopplerUniversalRouter --- .env.example | 3 + broadcast/Deploy.s.sol/84532/run-latest.json | 257 ++++++++----------- script/Deploy.s.sol | 5 +- 3 files changed, 109 insertions(+), 156 deletions(-) diff --git a/.env.example b/.env.example index b7bdb7b..7f22d73 100644 --- a/.env.example +++ b/.env.example @@ -18,6 +18,9 @@ TOKEN_URI=ipfs:// # Get one from https://basescan.org/apis BASESCAN_API_KEY= +# Doppler Coins ENV variables +DOPPLER_UNIVERSAL_ROUTER= + # Upgrade Script ENV variables CREDITS_PROXY_ADDRESS= CREDITS_PROXY_ADMIN= diff --git a/broadcast/Deploy.s.sol/84532/run-latest.json b/broadcast/Deploy.s.sol/84532/run-latest.json index 770d564..deaea99 100644 --- a/broadcast/Deploy.s.sol/84532/run-latest.json +++ b/broadcast/Deploy.s.sol/84532/run-latest.json @@ -1,67 +1,47 @@ { "transactions": [ { - "hash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", + "hash": "0x8243085b03eb233485ee9b726c3a4a721c8a83268fd5d98a993129264354203e", "transactionType": "CREATE", "contractName": "Credits1155", - "contractAddress": "0x1a9507b4404854b48164b209bfd0d4790b609762", + "contractAddress": "0xd4fd2ba2075aa0c2ac63ad100c3928097fc0fe55", "function": null, "arguments": null, "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0x2edd3a", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x5bead2", "value": "0x0", - "input": "0x608060405234801562000010575f80fd5b506200001b62000021565b620000d5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d25780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61293c80620000e35f395ff3fe6080604052600436106101fe575f3560e01c80637eb802b911610113578063c5efaae81161009d578063e30c39781161006d578063e30c397814610624578063e985e9c514610638578063f242432a14610657578063f2fde38b14610676578063f5298aca14610695575f80fd5b8063c5efaae8146105b9578063c9f18ebd146105cc578063d1b53b9c146105eb578063d547741f14610605575f80fd5b8063a22cb465116100e3578063a22cb465146104ff578063a7fd40bf1461051e578063ad77bc401461053d578063b13bfa9114610551578063bd85b0391461056f575f80fd5b80637eb802b9146104825780638da5cb5b146104a157806391d14854146104cd578063a217fddf146104ec575f80fd5b806336568abe116101945780634f558e79116101645780634f558e79146103d05780636b20c4541461041c578063715018a61461043b57806379ba50971461044f5780637ab4339d14610463575f80fd5b806336568abe14610347578063401d4482146103665780634b844a1d146103855780634e1273f4146103a4575f80fd5b806318160ddd116101cf57806318160ddd146102b7578063248a9ca3146102ea5780632eb2c2d6146103095780632f2ff15d14610328575f80fd5b8062fdd58e1461020957806301ffc9a71461023b5780630e89341c1461026a578063116039ae14610296575f80fd5b3661020557005b5f80fd5b348015610214575f80fd5b50610228610223366004611ea2565b6106b4565b6040519081526020015b60405180910390f35b348015610246575f80fd5b5061025a610255366004611ee1565b6106e9565b6040519015158152602001610232565b348015610275575f80fd5b50610289610284366004611f03565b6106f3565b6040516102329190611f67565b3480156102a1575f80fd5b506102b56102b0366004611f79565b6107b5565b005b3480156102c2575f80fd5b507f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e280154610228565b3480156102f5575f80fd5b50610228610304366004611f03565b610a30565b348015610314575f80fd5b506102b5610323366004612141565b610a50565b348015610333575f80fd5b506102b56103423660046121e7565b610ab7565b348015610352575f80fd5b506102b56103613660046121e7565b610ad9565b348015610371575f80fd5b506102b5610380366004611ea2565b610b11565b348015610390575f80fd5b5061022861039f366004611f03565b610bc8565b3480156103af575f80fd5b506103c36103be366004612215565b610bda565b604051610232919061230a565b3480156103db575f80fd5b5061025a6103ea366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e28006020526040902054151590565b348015610427575f80fd5b506102b561043636600461231c565b610ca4565b348015610446575f80fd5b506102b5610d03565b34801561045a575f80fd5b506102b5610d16565b34801561046e575f80fd5b506102b561047d36600461238c565b610d5e565b34801561048d575f80fd5b506102b561049c3660046123cf565b610e8a565b3480156104ac575f80fd5b506104b5610ee0565b6040516001600160a01b039091168152602001610232565b3480156104d8575f80fd5b5061025a6104e73660046121e7565b610f14565b3480156104f7575f80fd5b506102285f81565b34801561050a575f80fd5b506102b56105193660046123ea565b610f4a565b348015610529575f80fd5b506102b561053836600461241a565b610f59565b348015610548575f80fd5b50610228600181565b34801561055c575f80fd5b505f546104b5906001600160a01b031681565b34801561057a575f80fd5b50610228610589366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800602052604090205490565b6102b56105c7366004611ea2565b610f6c565b3480156105d7575f80fd5b506102b56105e6366004611f03565b610fda565b3480156105f6575f80fd5b5061022866016bcc41e9000081565b348015610610575f80fd5b506102b561061f3660046121e7565b611061565b34801561062f575f80fd5b506104b561107d565b348015610643575f80fd5b5061025a610652366004612453565b6110a5565b348015610662575f80fd5b506102b561067136600461247f565b6110f1565b348015610681575f80fd5b506102b56106903660046123cf565b611150565b3480156106a0575f80fd5b506102b56106af3660046124e2565b6111d5565b5f8181525f805160206128c7833981519152602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6106e38261120b565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450280546060915f805160206128c78339815191529161073190612514565b80601f016020809104026020016040519081016040528092919081815260200182805461075d90612514565b80156107a85780601f1061077f576101008083540402835291602001916107a8565b820191905f5260205f20905b81548152906001019060200180831161078b57829003601f168201915b5050505050915050919050565b846001600160a01b03163b5f036107df57604051633e07d28560e11b815260040160405180910390fd5b8460018410156108025760405163ea54cbb360e01b815260040160405180910390fd5b60405163463d31d760e11b8152600481018690525f906001600160a01b03831690638c7a63ae906024015f60405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261086d919081019061254c565b8051519091505f0361089a5760405163282dcfa760e11b8152600481018790526024015b60405180910390fd5b5f6108a63360016106b4565b9050808611156108d35760405163cffb3e6960e01b81526004810187905260248101829052604401610891565b6108df3360018861124a565b5f6108e987610bc8565b6040805160018082528183019092529192505f91906020808301908036833701905050905085815f81518110610921576109216125fe565b6001600160a01b039092166020928302919091018201526040515f91610958918a91016001600160a01b0391909116815260200190565b60408051601f19818403018152908290525f54631acf898160e11b83529092506001600160a01b038089169263359f13029287926109a3929116908f908f9089908990600401612612565b5f604051808303818588803b1580156109ba575f80fd5b505af11580156109cc573d5f803e3d5ffd5b5050604080518d8152602081018e90529081018790526001600160a01b03808c1694508c1692508d91507f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139929060600160405180910390a45050505050505050505050565b5f9081525f805160206128e7833981519152602052604090206001015490565b336001600160a01b0386168114801590610a715750610a6f86826110a5565b155b15610aa25760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866112b7565b505050505050565b610ac082610a30565b610ac981611315565b610ad3838361131f565b50505050565b6001600160a01b0381163314610b025760405163334bd91960e11b815260040160405180910390fd5b610b0c82826113c0565b505050565b5f610b1b81611315565b6001600160a01b038316610b4257604051633a19ac6f60e11b815260040160405180910390fd5b4780831115610b6e5760405163671123bf60e11b81526004810184905260248101829052604401610891565b610b816001600160a01b03851684611439565b6040518381526001600160a01b0385169033907f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0906020015b60405180910390a350505050565b5f6106e38266016bcc41e900006126a1565b60608151835114610c0b5781518351604051635b05999160e01b815260048101929092526024820152604401610891565b5f83516001600160401b03811115610c2557610c25611fd4565b604051908082528060200260200182016040528015610c4e578160200160208202803683370190505b5090505f5b8451811015610c9c57602080820286010151610c77906020808402870101516106b4565b828281518110610c8957610c896125fe565b6020908102919091010152600101610c53565b509392505050565b6001600160a01b0383163314801590610cc45750610cc283336110a5565b155b15610cf857335b60405163711bec9160e11b81526001600160a01b0391821660048201529084166024820152604401610891565b610b0c8383836114c5565b610d0b611508565b610d145f61153a565b565b3380610d2061107d565b6001600160a01b031614610d525760405163118cdaa760e01b81526001600160a01b0382166004820152602401610891565b610d5b8161153a565b50565b5f610d67611572565b805490915060ff600160401b82041615906001600160401b03165f81158015610d8d5750825b90505f826001600160401b03166001148015610da85750303b155b905081158015610db6575080155b15610dd45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dfe57845460ff60401b1916600160401b1785555b610e078761159a565b610e10336115ab565b610e186115bc565b610e225f3361131f565b506001600160a01b03861615610e3b57610e3b86610e8a565b8315610e8157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b5f610e9481611315565b816001600160a01b03163b5f03610ebe57604051633e07d28560e11b815260040160405180910390fd5b505f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f9182525f805160206128e7833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610f553383836115c4565b5050565b5f610f6381611315565b610f5582611660565b5f610f7682610bc8565b905080341015610fa257604051633644fa3b60e01b815260048101829052346024820152604401610891565b610fbd8360018460405180602001604052805f815250611699565b5f610fc882346126b8565b90508015610ad357610ad33382611439565b5f610fe63360016106b4565b9050818110156110135760405163cffb3e6960e01b81526004810183905260248101829052604401610891565b5f61101d83610bc8565b9050478181101561104b5760405163671123bf60e11b81526004810183905260248101829052604401610891565b6110573360018661124a565b610ad33383611439565b61106a82610a30565b61107381611315565b610ad383836113c0565b5f807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610f04565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386168114801590611112575061111086826110a5565b155b156111435760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866116f4565b611158611508565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561119c610ee0565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6001600160a01b03831633148015906111f557506111f383336110a5565b155b156112005733610ccb565b610b0c83838361124a565b5f6001600160e01b03198216636cdb3d1360e11b148061123b57506001600160e01b031982166303a24d0760e21b145b806106e357506106e382611777565b6001600160a01b03831661127257604051626a0d4560e21b81525f6004820152602401610891565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916112b0918791859085906117ab565b5050505050565b6001600160a01b0384166112e057604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661130857604051626a0d4560e21b81525f6004820152602401610891565b6112b085858585856117ab565b610d5b81336117fe565b5f5f805160206128e78339815191526113388484610f14565b6113b7575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561136d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106e3565b5f9150506106e3565b5f5f805160206128e78339815191526113d98484610f14565b156113b7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106e3565b804710156114635760405163cf47918160e01b815247600482015260248101829052604401610891565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146114ad576040519150601f19603f3d011682016040523d82523d5f602084013e6114b2565b606091505b509150915081610ad357610ad381611837565b6001600160a01b0383166114ed57604051626a0d4560e21b81525f6004820152602401610891565b610b0c835f848460405180602001604052805f8152506117ab565b33611511610ee0565b6001600160a01b031614610d145760405163118cdaa760e01b8152336004820152602401610891565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610f5582611860565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106e3565b6115a26118d0565b610d5b816118f5565b6115b36118d0565b610d5b81611906565b610d146118d0565b5f805160206128c78339815191526001600160a01b0383166115fa5760405162ced3e160e81b81525f6004820152602401610891565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610bba565b5f805160206128c78339815191527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610b0c838261270f565b6001600160a01b0384166116c257604051632bfa23e760e11b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610aaf5f878484876117ab565b6001600160a01b03841661171d57604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661174557604051626a0d4560e21b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610e8187878484876117ab565b5f6001600160e01b03198216637965db0b60e01b14806106e357506301ffc9a760e01b6001600160e01b03198316146106e3565b6117b785858585611937565b6001600160a01b038416156112b057825133906001036117f057602084810151908401516117e9838989858589611943565b5050610aaf565b610aaf818787878787611a64565b6118088282610f14565b610f555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610891565b8051156118475780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6118d8611b4b565b610d1457604051631afcd79f60e31b815260040160405180910390fd5b6118fd6118d0565b610d5b81611660565b61190e6118d0565b6001600160a01b038116610d5257604051631e4fbdf760e01b81525f6004820152602401610891565b610ad384848484611b64565b6001600160a01b0384163b15610aaf5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061198790899089908890889088906004016127ca565b6020604051808303815f875af19250505080156119c1575060408051601f3d908101601f191682019092526119be9181019061280e565b60015b611a28573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b606091505b5080515f03611a2057604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b6001600160a01b0384163b15610aaf5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611aa89089908990889088908890600401612829565b6020604051808303815f875af1925050508015611ae2575060408051601f3d908101601f19168201909252611adf9181019061280e565b60015b611b0f573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b6001600160e01b0319811663bc197c8160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b5f611b54611572565b54600160401b900460ff16919050565b7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800611b9185858585611c6f565b6001600160a01b038516611c0f575f805b8451811015611bf45760208181028581018201519087018201515f9081529185905260408220805491928392611bd9908490612886565b90915550611be990508184612886565b925050600101611ba2565b5080826001015f828254611c089190612886565b9091555050505b6001600160a01b0384166112b0575f805b8451811015611c5b5760208181028581018201519087018201515f908152918590526040909120805482900390559190910190600101611c20565b506001820180549190910390555050505050565b805182515f805160206128c78339815191529114611cad5782518251604051635b05999160e01b815260048101929092526024820152604401610891565b335f5b8451811015611daf576020818102868101820151908601909101516001600160a01b03891615611d61575f828152602086815260408083206001600160a01b038d16845290915290205481811015611d3b576040516303dee4c560e01b81526001600160a01b038b166004820152602481018290526044810183905260648101849052608401610891565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b03881615611da5575f828152602086815260408083206001600160a01b038c16845290915281208054839290611d9f908490612886565b90915550505b5050600101611cb0565b508351600103611e2f5760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611e20929190918252602082015260400190565b60405180910390a45050610aaf565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611e7e929190612899565b60405180910390a4505050505050565b6001600160a01b0381168114610d5b575f80fd5b5f8060408385031215611eb3575f80fd5b8235611ebe81611e8e565b946020939093013593505050565b6001600160e01b031981168114610d5b575f80fd5b5f60208284031215611ef1575f80fd5b8135611efc81611ecc565b9392505050565b5f60208284031215611f13575f80fd5b5035919050565b5f5b83811015611f34578181015183820152602001611f1c565b50505f910152565b5f8151808452611f53816020860160208601611f1a565b601f01601f19169290920160200192915050565b602081525f611efc6020830184611f3c565b5f805f805f60a08688031215611f8d575f80fd5b8535611f9881611e8e565b945060208601359350604086013592506060860135611fb681611e8e565b91506080860135611fc681611e8e565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561200a5761200a611fd4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561203857612038611fd4565b604052919050565b5f6001600160401b0382111561205857612058611fd4565b5060051b60200190565b5f82601f830112612071575f80fd5b8135602061208661208183612040565b612010565b8083825260208201915060208460051b8701019350868411156120a7575f80fd5b602086015b848110156120c357803583529183019183016120ac565b509695505050505050565b5f6001600160401b038211156120e6576120e6611fd4565b50601f01601f191660200190565b5f82601f830112612103575f80fd5b8135612111612081826120ce565b818152846020838601011115612125575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215612155575f80fd5b853561216081611e8e565b9450602086013561217081611e8e565b935060408601356001600160401b038082111561218b575f80fd5b61219789838a01612062565b945060608801359150808211156121ac575f80fd5b6121b889838a01612062565b935060808801359150808211156121cd575f80fd5b506121da888289016120f4565b9150509295509295909350565b5f80604083850312156121f8575f80fd5b82359150602083013561220a81611e8e565b809150509250929050565b5f8060408385031215612226575f80fd5b82356001600160401b038082111561223c575f80fd5b818501915085601f83011261224f575f80fd5b8135602061225f61208183612040565b82815260059290921b8401810191818101908984111561227d575f80fd5b948201945b838610156122a457853561229581611e8e565b82529482019490820190612282565b965050860135925050808211156122b9575f80fd5b506122c685828601612062565b9150509250929050565b5f815180845260208085019450602084015f5b838110156122ff578151875295820195908201906001016122e3565b509495945050505050565b602081525f611efc60208301846122d0565b5f805f6060848603121561232e575f80fd5b833561233981611e8e565b925060208401356001600160401b0380821115612354575f80fd5b61236087838801612062565b93506040860135915080821115612375575f80fd5b5061238286828701612062565b9150509250925092565b5f806040838503121561239d575f80fd5b82356001600160401b038111156123b2575f80fd5b6123be858286016120f4565b925050602083013561220a81611e8e565b5f602082840312156123df575f80fd5b8135611efc81611e8e565b5f80604083850312156123fb575f80fd5b823561240681611e8e565b91506020830135801515811461220a575f80fd5b5f6020828403121561242a575f80fd5b81356001600160401b0381111561243f575f80fd5b61244b848285016120f4565b949350505050565b5f8060408385031215612464575f80fd5b823561246f81611e8e565b9150602083013561220a81611e8e565b5f805f805f60a08688031215612493575f80fd5b853561249e81611e8e565b945060208601356124ae81611e8e565b9350604086013592506060860135915060808601356001600160401b038111156124d6575f80fd5b6121da888289016120f4565b5f805f606084860312156124f4575f80fd5b83356124ff81611e8e565b95602085013595506040909401359392505050565b600181811c9082168061252857607f821691505b60208210810361254657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602080838503121561255d575f80fd5b82516001600160401b0380821115612573575f80fd5b9084019060608287031215612586575f80fd5b61258e611fe8565b82518281111561259c575f80fd5b83019150601f820187136125ae575f80fd5b81516125bc612081826120ce565b81815288868386010111156125cf575f80fd5b6125de82878301888701611f1a565b825250828401519381019390935250604090810151908201529392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820160018060a01b038089168452602088602086015287604086015260a0606086015282875180855260c0870191506020890194505f5b8181101561266a57855185168352948301949183019160010161264c565b5050858103608087015261267e8188611f3c565b9b9a5050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e3576106e361268d565b818103818111156106e3576106e361268d565b601f821115610b0c57805f5260205f20601f840160051c810160208510156126f05750805b601f840160051c820191505b818110156112b0575f81556001016126fc565b81516001600160401b0381111561272857612728611fd4565b61273c816127368454612514565b846126cb565b602080601f83116001811461276f575f84156127585750858301515b5f19600386901b1c1916600185901b178555610aaf565b5f85815260208120601f198616915b8281101561279d5788860151825594840194600190910190840161277e565b50858210156127ba57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061280390830184611f3c565b979650505050505050565b5f6020828403121561281e575f80fd5b8151611efc81611ecc565b6001600160a01b0386811682528516602082015260a0604082018190525f90612854908301866122d0565b828103606084015261286681866122d0565b9050828103608084015261287a8185611f3c565b98975050505050505050565b808201808211156106e3576106e361268d565b604081525f6128ab60408301856122d0565b82810360208401526128bd81856122d0565b9594505050505056fe88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220705f2a39cbbda6054e9ea513adb54ebab3bfe8485e890c135b7b88701047a4c164736f6c63430008170033", - "nonce": "0x1e", + "input": "0x608060405234801561000f575f5ffd5b5061001e61002360201b60201c565b61019e565b5f61003261012160201b60201c565b9050805f0160089054906101000a900460ff161561007c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff161461011e5767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516101159190610185565b60405180910390a15b50565b5f5f61013161013a60201b60201c565b90508091505090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b5f67ffffffffffffffff82169050919050565b61017f81610163565b82525050565b5f6020820190506101985f830184610176565b92915050565b615285806101ab5f395ff3fe608060405260043610610231575f3560e01c80637eb802b91161012d578063c9f18ebd116100aa578063e985e9c51161006e578063e985e9c51461081e578063f242432a1461085a578063f2fde38b14610882578063f45caae3146108aa578063f5298aca146108d457610238565b8063c9f18ebd14610752578063d1b53b9c1461077a578063d547741f146107a4578063e30c3978146107cc578063e74f4e76146107f657610238565b8063a7fd40bf116100f1578063a7fd40bf1461067e578063ad77bc40146106a6578063b13bfa91146106d0578063bd85b039146106fa578063c5efaae81461073657610238565b80637eb802b91461059e5780638da5cb5b146105c657806391d14854146105f0578063a217fddf1461062c578063a22cb4651461065657610238565b806336568abe116101bb5780634f558e791161017f5780634f558e79146104e65780636b20c454146105225780636ebbcb591461054a578063715018a61461057257806379ba50971461058857610238565b806336568abe146103f6578063401d44821461041e578063463fd1af146104465780634b844a1d1461046e5780634e1273f4146104aa57610238565b8063116039ae11610202578063116039ae1461031857806318160ddd14610340578063248a9ca31461036a5780632eb2c2d6146103a65780632f2ff15d146103ce57610238565b80622311681461023c578062fdd58e1461026457806301ffc9a7146102a05780630e89341c146102dc57610238565b3661023857005b5f5ffd5b348015610247575f5ffd5b50610262600480360381019061025d9190613928565b6108fc565b005b34801561026f575f5ffd5b5061028a60048036038101906102859190613a2b565b610a6a565b6040516102979190613a78565b60405180910390f35b3480156102ab575f5ffd5b506102c660048036038101906102c19190613ae6565b610acd565b6040516102d39190613b2b565b60405180910390f35b3480156102e7575f5ffd5b5061030260048036038101906102fd9190613b44565b610ade565b60405161030f9190613bcf565b60405180910390f35b348015610323575f5ffd5b5061033e60048036038101906103399190613c2a565b610b7e565b005b34801561034b575f5ffd5b50610354610f09565b6040516103619190613a78565b60405180910390f35b348015610375575f5ffd5b50610390600480360381019061038b9190613cd4565b610f20565b60405161039d9190613d0e565b60405180910390f35b3480156103b1575f5ffd5b506103cc60048036038101906103c79190613de7565b610f4a565b005b3480156103d9575f5ffd5b506103f460048036038101906103ef9190613eb2565b610ff1565b005b348015610401575f5ffd5b5061041c60048036038101906104179190613eb2565b611013565b005b348015610429575f5ffd5b50610444600480360381019061043f9190613ef0565b61108e565b005b348015610451575f5ffd5b5061046c60048036038101906104679190613fcc565b6111de565b005b348015610479575f5ffd5b50610494600480360381019061048f9190613b44565b6113f9565b6040516104a19190613a78565b60405180910390f35b3480156104b5575f5ffd5b506104d060048036038101906104cb91906140f8565b611414565b6040516104dd9190614225565b60405180910390f35b3480156104f1575f5ffd5b5061050c60048036038101906105079190613b44565b61151e565b6040516105199190613b2b565b60405180910390f35b34801561052d575f5ffd5b5061054860048036038101906105439190614245565b611531565b005b348015610555575f5ffd5b50610570600480360381019061056b91906142cd565b6115dd565b005b34801561057d575f5ffd5b5061058661167f565b005b348015610593575f5ffd5b5061059c611692565b005b3480156105a9575f5ffd5b506105c460048036038101906105bf91906142cd565b611720565b005b3480156105d1575f5ffd5b506105da6117c1565b6040516105e79190614307565b60405180910390f35b3480156105fb575f5ffd5b5061061660048036038101906106119190613eb2565b6117f6565b6040516106239190613b2b565b60405180910390f35b348015610637575f5ffd5b50610640611867565b60405161064d9190613d0e565b60405180910390f35b348015610661575f5ffd5b5061067c6004803603810190610677919061434a565b61186d565b005b348015610689575f5ffd5b506106a4600480360381019061069f9190614388565b611883565b005b3480156106b1575f5ffd5b506106ba61189c565b6040516106c79190613a78565b60405180910390f35b3480156106db575f5ffd5b506106e46118a1565b6040516106f1919061442a565b60405180910390f35b348015610705575f5ffd5b50610720600480360381019061071b9190613b44565b6118c5565b60405161072d9190613a78565b60405180910390f35b610750600480360381019061074b9190613a2b565b6118ec565b005b34801561075d575f5ffd5b5061077860048036038101906107739190613b44565b6119a1565b005b348015610785575f5ffd5b5061078e611a8a565b60405161079b9190613a78565b60405180910390f35b3480156107af575f5ffd5b506107ca60048036038101906107c59190613eb2565b611a95565b005b3480156107d7575f5ffd5b506107e0611ab7565b6040516107ed9190614307565b60405180910390f35b348015610801575f5ffd5b5061081c60048036038101906108179190614490565b611aec565b005b348015610829575f5ffd5b50610844600480360381019061083f919061455d565b611c3c565b6040516108519190613b2b565b60405180910390f35b348015610865575f5ffd5b50610880600480360381019061087b919061459b565b611cd8565b005b34801561088d575f5ffd5b506108a860048036038101906108a391906142cd565b611d7f565b005b3480156108b5575f5ffd5b506108be611e38565b6040516108cb919061464e565b60405180910390f35b3480156108df575f5ffd5b506108fa60048036038101906108f59190614667565b611e5d565b005b60015f61090a336001610a6a565b9050808211156109535781816040517fcffb3e6900000000000000000000000000000000000000000000000000000000815260040161094a9291906146b7565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f8173ffffffffffffffffffffffffffffffffffffffff163b036109c5576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109d133600180611f09565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324856bc366016bcc41e9000087876040518463ffffffff1660e01b8152600401610a35929190614833565b5f604051808303818588803b158015610a4c575f5ffd5b505af1158015610a5e573d5f5f3e3d5ffd5b50505050505050505050565b5f5f610a74611fab565b9050805f015f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b5f610ad782611fd2565b9050919050565b60605f610ae9611fab565b9050806002018054610afa90614895565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2690614895565b8015610b715780601f10610b4857610100808354040283529160200191610b71565b820191905f5260205f20905b815481529060010190602001808311610b5457829003601f168201915b5050505050915050919050565b825f610b8b336001610a6a565b905080821115610bd45781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610bcb9291906146b7565b60405180910390fd5b865f8173ffffffffffffffffffffffffffffffffffffffff163b03610c25576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8890506001871015610c64576040517fea54cbb300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff16638c7a63ae8a6040518263ffffffff1660e01b8152600401610c9e9190613a78565b5f60405180830381865afa158015610cb8573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610ce091906149cc565b90505f815f01515103610d2a57886040517f505b9f4e000000000000000000000000000000000000000000000000000000008152600401610d219190613a78565b60405180910390fd5b610d363360018a611f09565b5f610d40896113f9565b90505f600167ffffffffffffffff811115610d5e57610d5d613722565b5b604051908082528060200260200182016040528015610d8c5781602001602082028036833780820191505090505b50905087815f81518110610da357610da2614a13565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f89604051602001610def9190614307565b60405160208183030381529060405290508473ffffffffffffffffffffffffffffffffffffffff1663359f1302845f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168f8f87876040518763ffffffff1660e01b8152600401610e62959493929190614af7565b5f604051808303818588803b158015610e79575f5ffd5b505af1158015610e8b573d5f5f3e3d5ffd5b50505050508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff168d7f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139928e8f88604051610ef293929190614b56565b60405180910390a450505050505050505050505050565b5f5f610f136120b3565b9050806001015491505090565b5f5f610f2a6120da565b9050805f015f8481526020019081526020015f2060010154915050919050565b5f610f53612101565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610f985750610f968682611c3c565b155b15610fdc5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610fd3929190614b8b565b60405180910390fd5b610fe98686868686612108565b505050505050565b610ffa82610f20565b611003816121fc565b61100d8383612210565b50505050565b61101b612101565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461107f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110898282612308565b505050565b5f5f1b61109a816121fc565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ff576040517f743358de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f4790508083111561114a5782816040517fce22477e0000000000000000000000000000000000000000000000000000000081526004016111419291906146b7565b60405180910390fd5b611173838573ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0856040516111d09190613a78565b60405180910390a350505050565b5f6111e76124c6565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff1614801561122f5750825b90505f60018367ffffffffffffffff1614801561126257505f3073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015611270575080155b156112a7576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156112f4576001855f0160086101000a81548160ff0219169083151502179055505b6112fd886124d9565b611306336124ed565b61130e612501565b61131a5f5f1b33612210565b505f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146113585761135787611720565b5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461139557611394866115dd565b5b83156113ef575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516113e69190614bfe565b60405180910390a15b5050505050505050565b5f8166016bcc41e9000061140d9190614c44565b9050919050565b6060815183511461146057815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016114579291906146b7565b60405180910390fd5b5f835167ffffffffffffffff81111561147c5761147b613722565b5b6040519080825280602002602001820160405280156114aa5781602001602082028036833780820191505090505b5090505f5f90505b8451811015611513576114e96114d1828761250b90919063ffffffff16565b6114e4838761251e90919063ffffffff16565b610a6a565b8282815181106114fc576114fb614a13565b5b6020026020010181815250508060010190506114b2565b508091505092915050565b5f5f611529836118c5565b119050919050565b611539612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561158257506115808361157b612101565b611c3c565b155b156115cd5761158f612101565b836040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016115c4929190614b8b565b60405180910390fd5b6115d8838383612531565b505050565b5f5f1b6115e9816121fc565b815f8173ffffffffffffffffffffffffffffffffffffffff163b0361163a576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6116876125c1565b6116905f612648565b565b5f61169b612101565b90508073ffffffffffffffffffffffffffffffffffffffff166116bc611ab7565b73ffffffffffffffffffffffffffffffffffffffff161461171457806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161170b9190614307565b60405180910390fd5b61171d81612648565b50565b5f5f1b61172c816121fc565b815f8173ffffffffffffffffffffffffffffffffffffffff163b0361177d576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b5f5f6117cb612685565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f6118006120da565b9050805f015f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f5f1b81565b61187f611878612101565b83836126ac565b5050565b5f5f1b61188f816121fc565b61189882612823565b5050565b600181565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6118cf6120b3565b9050805f015f8481526020019081526020015f2054915050919050565b5f6118f6826113f9565b90508034101561193f5780346040517f3644fa3b0000000000000000000000000000000000000000000000000000000081526004016119369291906146b7565b60405180910390fd5b61195a8360018460405180602001604052805f815250612844565b5f81346119679190614c85565b90505f81111561199b5761199a813373ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b5b50505050565b805f6119ae336001610a6a565b9050808211156119f75781816040517fcffb3e690000000000000000000000000000000000000000000000000000000081526004016119ee9291906146b7565b60405180910390fd5b5f611a01846113f9565b90505f47905081811015611a4e5781816040517fce22477e000000000000000000000000000000000000000000000000000000008152600401611a459291906146b7565b60405180910390fd5b611a5a33600187611f09565b611a83823373ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b5050505050565b66016bcc41e9000081565b611a9e82610f20565b611aa7816121fc565b611ab18383612308565b50505050565b5f5f611ac16128d9565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60015f611afa336001610a6a565b905080821115611b435781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401611b3a9291906146b7565b60405180910390fd5b895f8173ffffffffffffffffffffffffffffffffffffffff163b03611b94576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ba033600180611f09565b8a73ffffffffffffffffffffffffffffffffffffffff1663472e649066016bcc41e900008c8c8c8c8c8c8c6040518963ffffffff1660e01b8152600401611bed9796959493929190614d3a565b60206040518083038185885af1158015611c09573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c2e9190614dae565b505050505050505050505050565b5f5f611c46611fab565b9050806001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f611ce1612101565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611d265750611d248682611c3c565b155b15611d6a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611d61929190614b8b565b60405180910390fd5b611d778686868686612900565b505050505050565b611d876125c1565b5f611d906128d9565b905081815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16611df26117c1565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e65612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611eae5750611eac83611ea7612101565b611c3c565b155b15611ef957611ebb612101565b836040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611ef0929190614b8b565b60405180910390fd5b611f04838383611f09565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f79575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611f709190614307565b60405180910390fd5b5f5f611f858484612a06565b91509150611fa4855f848460405180602001604052805f815250612a36565b5050505050565b5f7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500905090565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061209c57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806120ac57506120ab82612ae2565b5b9050919050565b5f7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800905090565b5f7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612178575f6040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161216f9190614307565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036121e8575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016121df9190614307565b60405180910390fd5b6121f58585858585612a36565b5050505050565b61220d81612208612101565b612b5b565b50565b5f5f61221a6120da565b905061222684846117f6565b6122fd576001815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612299612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050612302565b5f9150505b92915050565b5f5f6123126120da565b905061231e84846117f6565b156123f5575f815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612391612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019150506123fa565b5f9150505b92915050565b804710156124475747816040517fcf47918100000000000000000000000000000000000000000000000000000000815260040161243e9291906146b7565b60405180910390fd5b5f5f8373ffffffffffffffffffffffffffffffffffffffff168360405161246d90614e06565b5f6040518083038185875af1925050503d805f81146124a7576040519150601f19603f3d011682016040523d82523d5f602084013e6124ac565b606091505b5091509150816124c0576124bf81612bac565b5b50505050565b5f5f6124d0612bf0565b90508091505090565b6124e1612c19565b6124ea81612c59565b50565b6124f5612c19565b6124fe81612c6d565b50565b612509612c19565b565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125a1575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016125989190614307565b60405180910390fd5b6125bc835f848460405180602001604052805f815250612a36565b505050565b6125c9612101565b73ffffffffffffffffffffffffffffffffffffffff166125e76117c1565b73ffffffffffffffffffffffffffffffffffffffff16146126465761260a612101565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161263d9190614307565b60405180910390fd5b565b5f6126516128d9565b9050805f015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561268182612cf1565b5050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f6126b5611fab565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612727575f6040517fced3e10000000000000000000000000000000000000000000000000000000000815260040161271e9190614307565b60405180910390fd5b81816001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31846040516128159190613b2b565b60405180910390a350505050565b5f61282c611fab565b90508181600201908161283f9190614fb1565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036128b4575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016128ab9190614307565b60405180910390fd5b5f5f6128c08585612a06565b915091506128d15f87848487612a36565b505050505050565b5f7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612970575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016129679190614307565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036129e0575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016129d79190614307565b60405180910390fd5b5f5f6129ec8585612a06565b915091506129fd8787848487612a36565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b612a4285858585612dc2565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612adb575f612a7e612101565b90506001845103612aca575f612a9d5f8661251e90919063ffffffff16565b90505f612ab35f8661251e90919063ffffffff16565b9050612ac3838989858589612dd4565b5050612ad9565b612ad8818787878787612f83565b5b505b5050505050565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612b545750612b5382613132565b5b9050919050565b612b6582826117f6565b612ba85780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612b9f929190615080565b60405180910390fd5b5050565b5f81511115612bbe5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b612c2161319b565b612c57576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b612c61612c19565b612c6a81612823565b50565b612c75612c19565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ce5575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612cdc9190614307565b60405180910390fd5b612cee81612648565b50565b5f612cfa612685565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b612dce848484846131b9565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612f7b578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612e349594939291906150a7565b6020604051808303815f875af1925050508015612e6f57506040513d601f19601f82011682018060405250810190612e6c9190615113565b60015b612ef0573d805f8114612e9d576040519150601f19603f3d011682016040523d82523d5f602084013e612ea2565b606091505b505f815103612ee857846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612edf9190614307565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612f7957846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612f709190614307565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561312a578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612fe395949392919061513e565b6020604051808303815f875af192505050801561301e57506040513d601f19601f8201168201806040525081019061301b9190615113565b60015b61309f573d805f811461304c576040519150601f19603f3d011682016040523d82523d5f602084013e613051565b606091505b505f81510361309757846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161308e9190614307565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461312857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161311f9190614307565b60405180910390fd5b505b505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f6131a46124c6565b5f0160089054906101000a900460ff16905090565b5f6131c26120b3565b90506131d085858585613354565b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361329c575f5f90505f5f90505b845181101561327f575f613229828661251e90919063ffffffff16565b905080845f015f613243858a61251e90919063ffffffff16565b81526020019081526020015f205f82825461325e91906151a4565b92505081905550808361327191906151a4565b92505080600101905061320c565b5080826001015f82825461329391906151a4565b92505081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361334d575f5f90505f5f90505b8451811015613339575f6132f5828661251e90919063ffffffff16565b905080845f015f61330f858a61251e90919063ffffffff16565b81526020019081526020015f205f82825403925050819055508083019250508060010190506132d8565b5080826001015f8282540392505081905550505b5050505050565b5f61335d611fab565b905081518351146133a957825182516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016133a09291906146b7565b60405180910390fd5b5f6133b2612101565b90505f5f90505b84518110156135b7575f6133d6828761251e90919063ffffffff16565b90505f6133ec838761251e90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614613513575f855f015f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156134bd57898183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016134b494939291906151d7565b60405180910390fd5b818103865f015f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146135aa5780855f015f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546135a291906151a4565b925050819055505b50508060010190506133b9565b506001845103613672575f6135d55f8661251e90919063ffffffff16565b90505f6135eb5f8661251e90919063ffffffff16565b90508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516136639291906146b7565b60405180910390a450506136f1565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516136e892919061521a565b60405180910390a45b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61375882613712565b810181811067ffffffffffffffff8211171561377757613776613722565b5b80604052505050565b5f6137896136f9565b9050613795828261374f565b919050565b5f67ffffffffffffffff8211156137b4576137b3613722565b5b6137bd82613712565b9050602081019050919050565b828183375f83830152505050565b5f6137ea6137e58461379a565b613780565b9050828152602081018484840111156138065761380561370e565b5b6138118482856137ca565b509392505050565b5f82601f83011261382d5761382c61370a565b5b813561383d8482602086016137d8565b91505092915050565b5f67ffffffffffffffff8211156138605761385f613722565b5b602082029050602081019050919050565b5f5ffd5b5f61388761388284613846565b613780565b905080838252602082019050602084028301858111156138aa576138a9613871565b5b835b818110156138f157803567ffffffffffffffff8111156138cf576138ce61370a565b5b8086016138dc8982613819565b855260208501945050506020810190506138ac565b5050509392505050565b5f82601f83011261390f5761390e61370a565b5b813561391f848260208601613875565b91505092915050565b5f5f6040838503121561393e5761393d613702565b5b5f83013567ffffffffffffffff81111561395b5761395a613706565b5b61396785828601613819565b925050602083013567ffffffffffffffff81111561398857613987613706565b5b613994858286016138fb565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6139c78261399e565b9050919050565b6139d7816139bd565b81146139e1575f5ffd5b50565b5f813590506139f2816139ce565b92915050565b5f819050919050565b613a0a816139f8565b8114613a14575f5ffd5b50565b5f81359050613a2581613a01565b92915050565b5f5f60408385031215613a4157613a40613702565b5b5f613a4e858286016139e4565b9250506020613a5f85828601613a17565b9150509250929050565b613a72816139f8565b82525050565b5f602082019050613a8b5f830184613a69565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613ac581613a91565b8114613acf575f5ffd5b50565b5f81359050613ae081613abc565b92915050565b5f60208284031215613afb57613afa613702565b5b5f613b0884828501613ad2565b91505092915050565b5f8115159050919050565b613b2581613b11565b82525050565b5f602082019050613b3e5f830184613b1c565b92915050565b5f60208284031215613b5957613b58613702565b5b5f613b6684828501613a17565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f613ba182613b6f565b613bab8185613b79565b9350613bbb818560208601613b89565b613bc481613712565b840191505092915050565b5f6020820190508181035f830152613be78184613b97565b905092915050565b5f613bf98261399e565b9050919050565b613c0981613bef565b8114613c13575f5ffd5b50565b5f81359050613c2481613c00565b92915050565b5f5f5f5f5f60a08688031215613c4357613c42613702565b5b5f613c50888289016139e4565b9550506020613c6188828901613a17565b9450506040613c7288828901613a17565b9350506060613c83888289016139e4565b9250506080613c9488828901613c16565b9150509295509295909350565b5f819050919050565b613cb381613ca1565b8114613cbd575f5ffd5b50565b5f81359050613cce81613caa565b92915050565b5f60208284031215613ce957613ce8613702565b5b5f613cf684828501613cc0565b91505092915050565b613d0881613ca1565b82525050565b5f602082019050613d215f830184613cff565b92915050565b5f67ffffffffffffffff821115613d4157613d40613722565b5b602082029050602081019050919050565b5f613d64613d5f84613d27565b613780565b90508083825260208201905060208402830185811115613d8757613d86613871565b5b835b81811015613db05780613d9c8882613a17565b845260208401935050602081019050613d89565b5050509392505050565b5f82601f830112613dce57613dcd61370a565b5b8135613dde848260208601613d52565b91505092915050565b5f5f5f5f5f60a08688031215613e0057613dff613702565b5b5f613e0d888289016139e4565b9550506020613e1e888289016139e4565b945050604086013567ffffffffffffffff811115613e3f57613e3e613706565b5b613e4b88828901613dba565b935050606086013567ffffffffffffffff811115613e6c57613e6b613706565b5b613e7888828901613dba565b925050608086013567ffffffffffffffff811115613e9957613e98613706565b5b613ea588828901613819565b9150509295509295909350565b5f5f60408385031215613ec857613ec7613702565b5b5f613ed585828601613cc0565b9250506020613ee6858286016139e4565b9150509250929050565b5f5f60408385031215613f0657613f05613702565b5b5f613f1385828601613c16565b9250506020613f2485828601613a17565b9150509250929050565b5f67ffffffffffffffff821115613f4857613f47613722565b5b613f5182613712565b9050602081019050919050565b5f613f70613f6b84613f2e565b613780565b905082815260208101848484011115613f8c57613f8b61370e565b5b613f978482856137ca565b509392505050565b5f82601f830112613fb357613fb261370a565b5b8135613fc3848260208601613f5e565b91505092915050565b5f5f5f60608486031215613fe357613fe2613702565b5b5f84013567ffffffffffffffff81111561400057613fff613706565b5b61400c86828701613f9f565b935050602061401d868287016139e4565b925050604061402e868287016139e4565b9150509250925092565b5f67ffffffffffffffff82111561405257614051613722565b5b602082029050602081019050919050565b5f61407561407084614038565b613780565b9050808382526020820190506020840283018581111561409857614097613871565b5b835b818110156140c157806140ad88826139e4565b84526020840193505060208101905061409a565b5050509392505050565b5f82601f8301126140df576140de61370a565b5b81356140ef848260208601614063565b91505092915050565b5f5f6040838503121561410e5761410d613702565b5b5f83013567ffffffffffffffff81111561412b5761412a613706565b5b614137858286016140cb565b925050602083013567ffffffffffffffff81111561415857614157613706565b5b61416485828601613dba565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141a0816139f8565b82525050565b5f6141b18383614197565b60208301905092915050565b5f602082019050919050565b5f6141d38261416e565b6141dd8185614178565b93506141e883614188565b805f5b838110156142185781516141ff88826141a6565b975061420a836141bd565b9250506001810190506141eb565b5085935050505092915050565b5f6020820190508181035f83015261423d81846141c9565b905092915050565b5f5f5f6060848603121561425c5761425b613702565b5b5f614269868287016139e4565b935050602084013567ffffffffffffffff81111561428a57614289613706565b5b61429686828701613dba565b925050604084013567ffffffffffffffff8111156142b7576142b6613706565b5b6142c386828701613dba565b9150509250925092565b5f602082840312156142e2576142e1613702565b5b5f6142ef848285016139e4565b91505092915050565b614301816139bd565b82525050565b5f60208201905061431a5f8301846142f8565b92915050565b61432981613b11565b8114614333575f5ffd5b50565b5f8135905061434481614320565b92915050565b5f5f604083850312156143605761435f613702565b5b5f61436d858286016139e4565b925050602061437e85828601614336565b9150509250929050565b5f6020828403121561439d5761439c613702565b5b5f82013567ffffffffffffffff8111156143ba576143b9613706565b5b6143c684828501613f9f565b91505092915050565b5f819050919050565b5f6143f26143ed6143e88461399e565b6143cf565b61399e565b9050919050565b5f614403826143d8565b9050919050565b5f614414826143f9565b9050919050565b6144248161440a565b82525050565b5f60208201905061443d5f83018461441b565b92915050565b6002811061444f575f5ffd5b50565b5f8135905061446081614443565b92915050565b61446f8161399e565b8114614479575f5ffd5b50565b5f8135905061448a81614466565b92915050565b5f5f5f5f5f5f5f5f610100898b0312156144ad576144ac613702565b5b5f6144ba8b828c016139e4565b98505060206144cb8b828c016139e4565b97505060406144dc8b828c016139e4565b96505060606144ed8b828c016139e4565b955050608089013567ffffffffffffffff81111561450e5761450d613706565b5b61451a8b828c01613f9f565b94505060a061452b8b828c01614452565b93505060c061453c8b828c01613a17565b92505060e061454d8b828c0161447c565b9150509295985092959890939650565b5f5f6040838503121561457357614572613702565b5b5f614580858286016139e4565b9250506020614591858286016139e4565b9150509250929050565b5f5f5f5f5f60a086880312156145b4576145b3613702565b5b5f6145c1888289016139e4565b95505060206145d2888289016139e4565b94505060406145e388828901613a17565b93505060606145f488828901613a17565b925050608086013567ffffffffffffffff81111561461557614614613706565b5b61462188828901613819565b9150509295509295909350565b5f614638826143f9565b9050919050565b6146488161462e565b82525050565b5f6020820190506146615f83018461463f565b92915050565b5f5f5f6060848603121561467e5761467d613702565b5b5f61468b868287016139e4565b935050602061469c86828701613a17565b92505060406146ad86828701613a17565b9150509250925092565b5f6040820190506146ca5f830185613a69565b6146d76020830184613a69565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f614702826146de565b61470c81856146e8565b935061471c818560208601613b89565b61472581613712565b840191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f614773826146de565b61477d8185614759565b935061478d818560208601613b89565b61479681613712565b840191505092915050565b5f6147ac8383614769565b905092915050565b5f602082019050919050565b5f6147ca82614730565b6147d4818561473a565b9350836020820285016147e68561474a565b805f5b85811015614821578484038952815161480285826147a1565b945061480d836147b4565b925060208a019950506001810190506147e9565b50829750879550505050505092915050565b5f6040820190508181035f83015261484b81856146f8565b9050818103602083015261485f81846147c0565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806148ac57607f821691505b6020821081036148bf576148be614868565b5b50919050565b5f5ffd5b5f5ffd5b5f6148df6148da84613f2e565b613780565b9050828152602081018484840111156148fb576148fa61370e565b5b614906848285613b89565b509392505050565b5f82601f8301126149225761492161370a565b5b81516149328482602086016148cd565b91505092915050565b5f8151905061494981613a01565b92915050565b5f60608284031215614964576149636148c5565b5b61496e6060613780565b90505f82015167ffffffffffffffff81111561498d5761498c6148c9565b5b6149998482850161490e565b5f8301525060206149ac8482850161493b565b60208301525060406149c08482850161493b565b60408301525092915050565b5f602082840312156149e1576149e0613702565b5b5f82015167ffffffffffffffff8111156149fe576149fd613706565b5b614a0a8482850161494f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614a72816139bd565b82525050565b5f614a838383614a69565b60208301905092915050565b5f602082019050919050565b5f614aa582614a40565b614aaf8185614a4a565b9350614aba83614a5a565b805f5b83811015614aea578151614ad18882614a78565b9750614adc83614a8f565b925050600181019050614abd565b5085935050505092915050565b5f60a082019050614b0a5f83018861441b565b614b176020830187613a69565b614b246040830186613a69565b8181036060830152614b368185614a9b565b90508181036080830152614b4a81846146f8565b90509695505050505050565b5f606082019050614b695f830186613a69565b614b766020830185613a69565b614b836040830184613a69565b949350505050565b5f604082019050614b9e5f8301856142f8565b614bab60208301846142f8565b9392505050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f614be8614be3614bde84614bb2565b6143cf565b614bbb565b9050919050565b614bf881614bce565b82525050565b5f602082019050614c115f830184614bef565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614c4e826139f8565b9150614c59836139f8565b9250828202614c67816139f8565b91508282048414831517614c7e57614c7d614c17565b5b5092915050565b5f614c8f826139f8565b9150614c9a836139f8565b9250828203905081811115614cb257614cb1614c17565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110614cf657614cf5614cb8565b5b50565b5f819050614d0682614ce5565b919050565b5f614d1582614cf9565b9050919050565b614d2581614d0b565b82525050565b614d348161399e565b82525050565b5f60e082019050614d4d5f83018a6142f8565b614d5a60208301896142f8565b614d6760408301886142f8565b8181036060830152614d798187613b97565b9050614d886080830186614d1c565b614d9560a0830185613a69565b614da260c0830184614d2b565b98975050505050505050565b5f60208284031215614dc357614dc2613702565b5b5f614dd08482850161493b565b91505092915050565b5f81905092915050565b50565b5f614df15f83614dd9565b9150614dfc82614de3565b5f82019050919050565b5f614e1082614de6565b9150819050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614e767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614e3b565b614e808683614e3b565b95508019841693508086168417925050509392505050565b5f614eb2614ead614ea8846139f8565b6143cf565b6139f8565b9050919050565b5f819050919050565b614ecb83614e98565b614edf614ed782614eb9565b848454614e47565b825550505050565b5f5f905090565b614ef6614ee7565b614f01818484614ec2565b505050565b5b81811015614f2457614f195f82614eee565b600181019050614f07565b5050565b601f821115614f6957614f3a81614e1a565b614f4384614e2c565b81016020851015614f52578190505b614f66614f5e85614e2c565b830182614f06565b50505b505050565b5f82821c905092915050565b5f614f895f1984600802614f6e565b1980831691505092915050565b5f614fa18383614f7a565b9150826002028217905092915050565b614fba82613b6f565b67ffffffffffffffff811115614fd357614fd2613722565b5b614fdd8254614895565b614fe8828285614f28565b5f60209050601f831160018114615019575f8415615007578287015190505b6150118582614f96565b865550615078565b601f19841661502786614e1a565b5f5b8281101561504e57848901518255600182019150602085019450602081019050615029565b8683101561506b5784890151615067601f891682614f7a565b8355505b6001600288020188555050505b505050505050565b5f6040820190506150935f8301856142f8565b6150a06020830184613cff565b9392505050565b5f60a0820190506150ba5f8301886142f8565b6150c760208301876142f8565b6150d46040830186613a69565b6150e16060830185613a69565b81810360808301526150f381846146f8565b90509695505050505050565b5f8151905061510d81613abc565b92915050565b5f6020828403121561512857615127613702565b5b5f615135848285016150ff565b91505092915050565b5f60a0820190506151515f8301886142f8565b61515e60208301876142f8565b818103604083015261517081866141c9565b9050818103606083015261518481856141c9565b9050818103608083015261519881846146f8565b90509695505050505050565b5f6151ae826139f8565b91506151b9836139f8565b92508282019050808211156151d1576151d0614c17565b5b92915050565b5f6080820190506151ea5f8301876142f8565b6151f76020830186613a69565b6152046040830185613a69565b6152116060830184613a69565b95945050505050565b5f6040820190508181035f83015261523281856141c9565b9050818103602083015261524681846141c9565b9050939250505056fea26469706673582212202c607fe090de5b404fc5c3a5562b19ffe9d191a5fb90cec284cb58685f24247864736f6c634300081c0033", + "nonce": "0x29", "chainId": "0x14a34" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", - "transactionType": "CREATE", - "contractName": "ProxyAdmin", - "contractAddress": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", - "function": null, - "arguments": [ - "0x3c10FAED26a6bb341322d1BAaf2c6ecf5B957D61" - ], - "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0x60734", - "value": "0x0", - "input": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c634300081700330000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "nonce": "0x1f", - "chainId": "0x14a34" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "hash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", "transactionType": "CREATE", "contractName": "TransparentUpgradeableProxy", - "contractAddress": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "contractAddress": "0xdf812831151c93821d5118aed612c5711ad36785", "function": null, "arguments": [ - "0x1a9507B4404854B48164B209bFd0d4790B609762", - "0x888FB1aa6EeC47D2B5db8dBcE68d00f294F95f08", - "0x7ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f00000000000000000000000000000000000000000000000000" + "0xd4fd2BA2075aA0C2Ac63aD100c3928097Fc0fe55", + "0xaff4BE6F091274421f0Bf5a2F74eC368a2c017E8", + "0x463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000001660939de5e468514859e04fbfdc8a98d8e0cf1e000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f74657374000000000000000000000000000000000000000000" ], "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0xeebd7", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x17ef98", "value": "0x0", - "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122011de57fd4b44521ee974555595699df7e8ef5536966300e3722e17cc1200174664736f6c63430008170033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000001a9507b4404854b48164b209bfd0d4790b609762000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000847ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x20", + "input": "0x60a06040526040516119d43803806119d483398181016040528101906100259190610708565b828161003782826100c160201b60201c565b50508160405161004690610554565b6100509190610783565b604051809103905ff080158015610069573d5f5f3e3d5ffd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100b96100ae61014560201b60201c565b61014e60201b60201c565b50505061081d565b6100d0826101a660201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101325761012c828261027560201b60201c565b50610141565b6101406102fb60201b60201c565b5b5050565b5f608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61017d61033760201b60201c565b8260405161018c92919061079c565b60405180910390a16101a38161039060201b60201c565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361020157806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101f89190610783565b60405180910390fd5b806102337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff168460405161029e9190610807565b5f60405180830381855af49150503d805f81146102d6576040519150601f19603f3d011682016040523d82523d5f602084013e6102db565b606091505b50915091506102f185838361047d60201b60201c565b9250505092915050565b5f341115610335576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103697fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610400575f6040517f62e77ba20000000000000000000000000000000000000000000000000000000081526004016103f79190610783565b60405180910390fd5b806104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f819050919050565b606082610498576104938261051060201b60201c565b610508565b5f82511480156104be57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561050057836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104f79190610783565b60405180910390fd5b819050610509565b5b9392505050565b5f815111156105225780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109c68061100e83390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059b82610572565b9050919050565b6105ab81610591565b81146105b5575f5ffd5b50565b5f815190506105c6816105a2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61061a826105d4565b810181811067ffffffffffffffff82111715610639576106386105e4565b5b80604052505050565b5f61064b610561565b90506106578282610611565b919050565b5f67ffffffffffffffff821115610676576106756105e4565b5b61067f826105d4565b9050602081019050919050565b8281835e5f83830152505050565b5f6106ac6106a78461065c565b610642565b9050828152602081018484840111156106c8576106c76105d0565b5b6106d384828561068c565b509392505050565b5f82601f8301126106ef576106ee6105cc565b5b81516106ff84826020860161069a565b91505092915050565b5f5f5f6060848603121561071f5761071e61056a565b5b5f61072c868287016105b8565b935050602061073d868287016105b8565b925050604084015167ffffffffffffffff81111561075e5761075d61056e565b5b61076a868287016106db565b9150509250925092565b61077d81610591565b82525050565b5f6020820190506107965f830184610774565b92915050565b5f6040820190506107af5f830185610774565b6107bc6020830184610774565b9392505050565b5f81519050919050565b5f81905092915050565b5f6107e1826107c3565b6107eb81856107cd565b93506107fb81856020860161068c565b80840191505092915050565b5f61081282846107d7565b915081905092915050565b6080516107d96108355f395f61010401526107d95ff3fe608060405261000c61000e565b005b610016610101565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f657634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19165f357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100e9576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f1610128565b6100ff565b6100fe61015c565b5b565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f5f5f36600490809261013d939291906104d0565b81019061014a91906106a8565b91509150610158828261016e565b5050565b61016c6101676101e0565b6101ee565b565b6101778261020d565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101d3576101cd82826102d6565b506101dc565b6101db610356565b5b5050565b5f6101e9610392565b905090565b365f5f375f5f365f845af43d5f5f3e805f8114610209573d5ff35b3d5ffd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361026857806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161025f9190610722565b60405180910390fd5b806102947f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102ff919061078d565b5f60405180830381855af49150503d805f8114610337576040519150601f19603f3d011682016040523d82523d5f602084013e61033c565b606091505b509150915061034c8583836103ee565b9250505092915050565b5f341115610390576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103be7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b606082610403576103fe8261047b565b610473565b5f825114801561042957505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561046b57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104629190610722565b60405180910390fd5b819050610474565b5b9392505050565b5f8151111561048d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f5ffd5b5f5ffd5b5f5f858511156104e3576104e26104c8565b5b838611156104f4576104f36104cc565b5b6001850283019150848603905094509492505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61053b82610512565b9050919050565b61054b81610531565b8114610555575f5ffd5b50565b5f8135905061056681610542565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105ba82610574565b810181811067ffffffffffffffff821117156105d9576105d8610584565b5b80604052505050565b5f6105eb6104bf565b90506105f782826105b1565b919050565b5f67ffffffffffffffff82111561061657610615610584565b5b61061f82610574565b9050602081019050919050565b828183375f83830152505050565b5f61064c610647846105fc565b6105e2565b90508281526020810184848401111561066857610667610570565b5b61067384828561062c565b509392505050565b5f82601f83011261068f5761068e61056c565b5b813561069f84826020860161063a565b91505092915050565b5f5f604083850312156106be576106bd61050a565b5b5f6106cb85828601610558565b925050602083013567ffffffffffffffff8111156106ec576106eb61050e565b5b6106f88582860161067b565b9150509250929050565b5f61070c82610512565b9050919050565b61071c81610702565b82525050565b5f6020820190506107355f830184610713565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6107678261073b565b6107718185610745565b935061078181856020860161074f565b80840191505092915050565b5f610798828461075d565b91508190509291505056fea2646970667358221220ccc9529bc6fbbf8f3b86b4a8c5192f0598aa3267a8c6404d4fb67afc4bbc1a5d64736f6c634300081c0033608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000d4fd2ba2075aa0c2ac63ad100c3928097fc0fe55000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000001660939de5e468514859e04fbfdc8a98d8e0cf1e000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f7465737400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2a", "chainId": "0x14a34" }, "additionalContracts": [ { "transactionType": "CREATE", - "address": "0xa1c729ca727eb3bea8b48ea92a2be0c86ab529b4", - "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08" + "address": "0x194288c650b89a339095142df67e397bbf20d77d", + "initCode": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" } ], "isFixedGasLimit": false @@ -70,186 +50,155 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x284809", + "cumulativeGasUsed": "0x6df654", "logs": [ { - "address": "0x1a9507b4404854b48164b209bfd0d4790b609762", + "address": "0xd4fd2ba2075aa0c2ac63ad100c3928097fc0fe55", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", - "transactionIndex": "0x6", - "logIndex": "0x5", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080002000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", - "transactionIndex": "0x6", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "gasUsed": "0x240ca3", - "effectiveGasPrice": "0xba11f", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "to": null, - "contractAddress": "0x1a9507b4404854b48164b209bfd0d4790b609762", - "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x1", - "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0xff0f73bb7a", - "l1GasPrice": "0x2689e7ebd", - "l1GasUsed": "0x177b2" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x2ceb1e", - "logs": [ - { - "address": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" - ], - "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", - "transactionIndex": "0x7", - "logIndex": "0x6", + "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", + "blockNumber": "0x1c7f904", + "blockTimestamp": "0x68a350e8", + "transactionHash": "0x8243085b03eb233485ee9b726c3a4a721c8a83268fd5d98a993129264354203e", + "transactionIndex": "0xa", + "logIndex": "0x44", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000010000000000000000000000000000020000000000004000000000000000000000000000400000000000000000000000020", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000800000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", - "transactionIndex": "0x7", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "gasUsed": "0x4a315", - "effectiveGasPrice": "0xba11f", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "transactionHash": "0x8243085b03eb233485ee9b726c3a4a721c8a83268fd5d98a993129264354203e", + "transactionIndex": "0xa", + "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", + "blockNumber": "0x1c7f904", + "gasUsed": "0x46b4a2", + "effectiveGasPrice": "0xeb0e3", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", "to": null, - "contractAddress": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", + "contractAddress": "0xd4fd2ba2075aa0c2ac63ad100c3928097fc0fe55", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x1", + "l1BlobBaseFee": "0x8e4ff807", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0x25f2266254", - "l1GasPrice": "0x2689e7ebd", - "l1GasUsed": "0x37e4" + "l1Fee": "0xd3128b8694d", + "l1GasPrice": "0xbb2873e", + "l1GasUsed": "0x23e28" }, { "status": "0x1", - "cumulativeGasUsed": "0x386575", + "cumulativeGasUsed": "0x805fdd", "logs": [ { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xdf812831151c93821d5118aed612c5711ad36785", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000001a9507b4404854b48164b209bfd0d4790b609762" + "0x000000000000000000000000d4fd2ba2075aa0c2ac63ad100c3928097fc0fe55" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0x7", + "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", + "blockNumber": "0x1c7f904", + "blockTimestamp": "0x68a350e8", + "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", + "transactionIndex": "0xb", + "logIndex": "0x45", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xdf812831151c93821d5118aed612c5711ad36785", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0x8", + "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", + "blockNumber": "0x1c7f904", + "blockTimestamp": "0x68a350e8", + "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", + "transactionIndex": "0xb", + "logIndex": "0x46", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xdf812831151c93821d5118aed612c5711ad36785", "topics": [ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0x9", + "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", + "blockNumber": "0x1c7f904", + "blockTimestamp": "0x68a350e8", + "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", + "transactionIndex": "0xb", + "logIndex": "0x47", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xdf812831151c93821d5118aed612c5711ad36785", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0xa", + "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", + "blockNumber": "0x1c7f904", + "blockTimestamp": "0x68a350e8", + "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", + "transactionIndex": "0xb", + "logIndex": "0x48", "removed": false }, { - "address": "0xa1c729ca727eb3bea8b48ea92a2be0c86ab529b4", + "address": "0x194288c650b89a339095142df67e397bbf20d77d", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0xb", + "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", + "blockNumber": "0x1c7f904", + "blockTimestamp": "0x68a350e8", + "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", + "transactionIndex": "0xb", + "logIndex": "0x49", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xdf812831151c93821d5118aed612c5711ad36785", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1c729ca727eb3bea8b48ea92a2be0c86ab529b4", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0xc", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000194288c650b89a339095142df67e397bbf20d77d", + "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", + "blockNumber": "0x1c7f904", + "blockTimestamp": "0x68a350e8", + "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", + "transactionIndex": "0xb", + "logIndex": "0x4a", "removed": false } ], - "logsBloom": "0x00000004000000000000000004000000400000000000000000800480000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000004010000000020008000000000000000800000000800000000000000000000000400000000000000000000800000000000000000000000084000000100000800000000000000000000000000000000000000000000000000000001000000000000000000021000000000000000000000090000000000404000100000000000020000000004000000000000000400000000000000000000000000000000000000040", + "logsBloom": "0x00000004000000000000000000000000400000000000000000800000000080000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000002000001001000000000000000000000000000000000020000000000000000000800000000800000000000000000000000400000000420000000000800000000000000000000000080000000000000800000000000000000000000000000000000003000000000000000001000000080000400000020000000000000000000000000000000000404000100000000000020000000000000000000000000000000000200100000000000000000000000000000", "type": "0x2", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "gasUsed": "0xb7a57", - "effectiveGasPrice": "0xba11f", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", + "transactionIndex": "0xb", + "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", + "blockNumber": "0x1c7f904", + "gasUsed": "0x126989", + "effectiveGasPrice": "0xeb0e3", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", "to": null, - "contractAddress": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "contractAddress": "0xdf812831151c93821d5118aed612c5711ad36785", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x1", + "l1BlobBaseFee": "0x8e4ff807", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0x5ce3d8476c", - "l1GasPrice": "0x2689e7ebd", - "l1GasUsed": "0x88d3" + "l1Fee": "0x4576338ac56", + "l1GasPrice": "0xbb2873e", + "l1GasUsed": "0xbcf2" } ], "libraries": [], @@ -257,10 +206,10 @@ "returns": { "0": { "internal_type": "struct DeployCredits.DeploymentResult", - "value": "(0x1a9507B4404854B48164B209bFd0d4790B609762, 0xBe5F264C6413ec0cf3FFe6169A320AeEc721d0A1, 0x888FB1aa6EeC47D2B5db8dBcE68d00f294F95f08)" + "value": "(0xd4fd2BA2075aA0C2Ac63aD100c3928097Fc0fe55, 0xDf812831151c93821D5118aEd612C5711Ad36785)" } }, - "timestamp": 1745593951, + "timestamp": 1755533581, "chain": 84532, - "commit": "edb476b" + "commit": "df79975" } \ No newline at end of file diff --git a/script/Deploy.s.sol b/script/Deploy.s.sol index 43a757e..131eea3 100644 --- a/script/Deploy.s.sol +++ b/script/Deploy.s.sol @@ -36,8 +36,9 @@ contract DeployCredits is Script { console.log("Implementation deployed at:", address(implementation)); // 2. Prepare initialization data - bytes memory initData = - abi.encodeWithSelector(Credits1155.initialize.selector, tokenUri, fixedPriceSaleStrategy); + bytes memory initData = abi.encodeWithSelector( + Credits1155.initialize.selector, tokenUri, fixedPriceSaleStrategy, dopplerUniversalRouter + ); // 3. Deploy and initialize proxy TransparentUpgradeableProxy proxy = From 62f7ec94d074a3f6419aee49956d65a166ba4ef8 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 18 Aug 2025 11:17:15 -0500 Subject: [PATCH 25/28] rollback run-latest --- broadcast/Deploy.s.sol/84532/run-latest.json | 257 +++++++++++-------- 1 file changed, 154 insertions(+), 103 deletions(-) diff --git a/broadcast/Deploy.s.sol/84532/run-latest.json b/broadcast/Deploy.s.sol/84532/run-latest.json index deaea99..770d564 100644 --- a/broadcast/Deploy.s.sol/84532/run-latest.json +++ b/broadcast/Deploy.s.sol/84532/run-latest.json @@ -1,47 +1,67 @@ { "transactions": [ { - "hash": "0x8243085b03eb233485ee9b726c3a4a721c8a83268fd5d98a993129264354203e", + "hash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", "transactionType": "CREATE", "contractName": "Credits1155", - "contractAddress": "0xd4fd2ba2075aa0c2ac63ad100c3928097fc0fe55", + "contractAddress": "0x1a9507b4404854b48164b209bfd0d4790b609762", "function": null, "arguments": null, "transaction": { - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", - "gas": "0x5bead2", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "gas": "0x2edd3a", "value": "0x0", - "input": "0x608060405234801561000f575f5ffd5b5061001e61002360201b60201c565b61019e565b5f61003261012160201b60201c565b9050805f0160089054906101000a900460ff161561007c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff161461011e5767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516101159190610185565b60405180910390a15b50565b5f5f61013161013a60201b60201c565b90508091505090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b5f67ffffffffffffffff82169050919050565b61017f81610163565b82525050565b5f6020820190506101985f830184610176565b92915050565b615285806101ab5f395ff3fe608060405260043610610231575f3560e01c80637eb802b91161012d578063c9f18ebd116100aa578063e985e9c51161006e578063e985e9c51461081e578063f242432a1461085a578063f2fde38b14610882578063f45caae3146108aa578063f5298aca146108d457610238565b8063c9f18ebd14610752578063d1b53b9c1461077a578063d547741f146107a4578063e30c3978146107cc578063e74f4e76146107f657610238565b8063a7fd40bf116100f1578063a7fd40bf1461067e578063ad77bc40146106a6578063b13bfa91146106d0578063bd85b039146106fa578063c5efaae81461073657610238565b80637eb802b91461059e5780638da5cb5b146105c657806391d14854146105f0578063a217fddf1461062c578063a22cb4651461065657610238565b806336568abe116101bb5780634f558e791161017f5780634f558e79146104e65780636b20c454146105225780636ebbcb591461054a578063715018a61461057257806379ba50971461058857610238565b806336568abe146103f6578063401d44821461041e578063463fd1af146104465780634b844a1d1461046e5780634e1273f4146104aa57610238565b8063116039ae11610202578063116039ae1461031857806318160ddd14610340578063248a9ca31461036a5780632eb2c2d6146103a65780632f2ff15d146103ce57610238565b80622311681461023c578062fdd58e1461026457806301ffc9a7146102a05780630e89341c146102dc57610238565b3661023857005b5f5ffd5b348015610247575f5ffd5b50610262600480360381019061025d9190613928565b6108fc565b005b34801561026f575f5ffd5b5061028a60048036038101906102859190613a2b565b610a6a565b6040516102979190613a78565b60405180910390f35b3480156102ab575f5ffd5b506102c660048036038101906102c19190613ae6565b610acd565b6040516102d39190613b2b565b60405180910390f35b3480156102e7575f5ffd5b5061030260048036038101906102fd9190613b44565b610ade565b60405161030f9190613bcf565b60405180910390f35b348015610323575f5ffd5b5061033e60048036038101906103399190613c2a565b610b7e565b005b34801561034b575f5ffd5b50610354610f09565b6040516103619190613a78565b60405180910390f35b348015610375575f5ffd5b50610390600480360381019061038b9190613cd4565b610f20565b60405161039d9190613d0e565b60405180910390f35b3480156103b1575f5ffd5b506103cc60048036038101906103c79190613de7565b610f4a565b005b3480156103d9575f5ffd5b506103f460048036038101906103ef9190613eb2565b610ff1565b005b348015610401575f5ffd5b5061041c60048036038101906104179190613eb2565b611013565b005b348015610429575f5ffd5b50610444600480360381019061043f9190613ef0565b61108e565b005b348015610451575f5ffd5b5061046c60048036038101906104679190613fcc565b6111de565b005b348015610479575f5ffd5b50610494600480360381019061048f9190613b44565b6113f9565b6040516104a19190613a78565b60405180910390f35b3480156104b5575f5ffd5b506104d060048036038101906104cb91906140f8565b611414565b6040516104dd9190614225565b60405180910390f35b3480156104f1575f5ffd5b5061050c60048036038101906105079190613b44565b61151e565b6040516105199190613b2b565b60405180910390f35b34801561052d575f5ffd5b5061054860048036038101906105439190614245565b611531565b005b348015610555575f5ffd5b50610570600480360381019061056b91906142cd565b6115dd565b005b34801561057d575f5ffd5b5061058661167f565b005b348015610593575f5ffd5b5061059c611692565b005b3480156105a9575f5ffd5b506105c460048036038101906105bf91906142cd565b611720565b005b3480156105d1575f5ffd5b506105da6117c1565b6040516105e79190614307565b60405180910390f35b3480156105fb575f5ffd5b5061061660048036038101906106119190613eb2565b6117f6565b6040516106239190613b2b565b60405180910390f35b348015610637575f5ffd5b50610640611867565b60405161064d9190613d0e565b60405180910390f35b348015610661575f5ffd5b5061067c6004803603810190610677919061434a565b61186d565b005b348015610689575f5ffd5b506106a4600480360381019061069f9190614388565b611883565b005b3480156106b1575f5ffd5b506106ba61189c565b6040516106c79190613a78565b60405180910390f35b3480156106db575f5ffd5b506106e46118a1565b6040516106f1919061442a565b60405180910390f35b348015610705575f5ffd5b50610720600480360381019061071b9190613b44565b6118c5565b60405161072d9190613a78565b60405180910390f35b610750600480360381019061074b9190613a2b565b6118ec565b005b34801561075d575f5ffd5b5061077860048036038101906107739190613b44565b6119a1565b005b348015610785575f5ffd5b5061078e611a8a565b60405161079b9190613a78565b60405180910390f35b3480156107af575f5ffd5b506107ca60048036038101906107c59190613eb2565b611a95565b005b3480156107d7575f5ffd5b506107e0611ab7565b6040516107ed9190614307565b60405180910390f35b348015610801575f5ffd5b5061081c60048036038101906108179190614490565b611aec565b005b348015610829575f5ffd5b50610844600480360381019061083f919061455d565b611c3c565b6040516108519190613b2b565b60405180910390f35b348015610865575f5ffd5b50610880600480360381019061087b919061459b565b611cd8565b005b34801561088d575f5ffd5b506108a860048036038101906108a391906142cd565b611d7f565b005b3480156108b5575f5ffd5b506108be611e38565b6040516108cb919061464e565b60405180910390f35b3480156108df575f5ffd5b506108fa60048036038101906108f59190614667565b611e5d565b005b60015f61090a336001610a6a565b9050808211156109535781816040517fcffb3e6900000000000000000000000000000000000000000000000000000000815260040161094a9291906146b7565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f8173ffffffffffffffffffffffffffffffffffffffff163b036109c5576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109d133600180611f09565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324856bc366016bcc41e9000087876040518463ffffffff1660e01b8152600401610a35929190614833565b5f604051808303818588803b158015610a4c575f5ffd5b505af1158015610a5e573d5f5f3e3d5ffd5b50505050505050505050565b5f5f610a74611fab565b9050805f015f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b5f610ad782611fd2565b9050919050565b60605f610ae9611fab565b9050806002018054610afa90614895565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2690614895565b8015610b715780601f10610b4857610100808354040283529160200191610b71565b820191905f5260205f20905b815481529060010190602001808311610b5457829003601f168201915b5050505050915050919050565b825f610b8b336001610a6a565b905080821115610bd45781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610bcb9291906146b7565b60405180910390fd5b865f8173ffffffffffffffffffffffffffffffffffffffff163b03610c25576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8890506001871015610c64576040517fea54cbb300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff16638c7a63ae8a6040518263ffffffff1660e01b8152600401610c9e9190613a78565b5f60405180830381865afa158015610cb8573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610ce091906149cc565b90505f815f01515103610d2a57886040517f505b9f4e000000000000000000000000000000000000000000000000000000008152600401610d219190613a78565b60405180910390fd5b610d363360018a611f09565b5f610d40896113f9565b90505f600167ffffffffffffffff811115610d5e57610d5d613722565b5b604051908082528060200260200182016040528015610d8c5781602001602082028036833780820191505090505b50905087815f81518110610da357610da2614a13565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f89604051602001610def9190614307565b60405160208183030381529060405290508473ffffffffffffffffffffffffffffffffffffffff1663359f1302845f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168f8f87876040518763ffffffff1660e01b8152600401610e62959493929190614af7565b5f604051808303818588803b158015610e79575f5ffd5b505af1158015610e8b573d5f5f3e3d5ffd5b50505050508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff168d7f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139928e8f88604051610ef293929190614b56565b60405180910390a450505050505050505050505050565b5f5f610f136120b3565b9050806001015491505090565b5f5f610f2a6120da565b9050805f015f8481526020019081526020015f2060010154915050919050565b5f610f53612101565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610f985750610f968682611c3c565b155b15610fdc5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610fd3929190614b8b565b60405180910390fd5b610fe98686868686612108565b505050505050565b610ffa82610f20565b611003816121fc565b61100d8383612210565b50505050565b61101b612101565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461107f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110898282612308565b505050565b5f5f1b61109a816121fc565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ff576040517f743358de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f4790508083111561114a5782816040517fce22477e0000000000000000000000000000000000000000000000000000000081526004016111419291906146b7565b60405180910390fd5b611173838573ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0856040516111d09190613a78565b60405180910390a350505050565b5f6111e76124c6565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff1614801561122f5750825b90505f60018367ffffffffffffffff1614801561126257505f3073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015611270575080155b156112a7576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156112f4576001855f0160086101000a81548160ff0219169083151502179055505b6112fd886124d9565b611306336124ed565b61130e612501565b61131a5f5f1b33612210565b505f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146113585761135787611720565b5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461139557611394866115dd565b5b83156113ef575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516113e69190614bfe565b60405180910390a15b5050505050505050565b5f8166016bcc41e9000061140d9190614c44565b9050919050565b6060815183511461146057815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016114579291906146b7565b60405180910390fd5b5f835167ffffffffffffffff81111561147c5761147b613722565b5b6040519080825280602002602001820160405280156114aa5781602001602082028036833780820191505090505b5090505f5f90505b8451811015611513576114e96114d1828761250b90919063ffffffff16565b6114e4838761251e90919063ffffffff16565b610a6a565b8282815181106114fc576114fb614a13565b5b6020026020010181815250508060010190506114b2565b508091505092915050565b5f5f611529836118c5565b119050919050565b611539612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561158257506115808361157b612101565b611c3c565b155b156115cd5761158f612101565b836040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016115c4929190614b8b565b60405180910390fd5b6115d8838383612531565b505050565b5f5f1b6115e9816121fc565b815f8173ffffffffffffffffffffffffffffffffffffffff163b0361163a576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6116876125c1565b6116905f612648565b565b5f61169b612101565b90508073ffffffffffffffffffffffffffffffffffffffff166116bc611ab7565b73ffffffffffffffffffffffffffffffffffffffff161461171457806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161170b9190614307565b60405180910390fd5b61171d81612648565b50565b5f5f1b61172c816121fc565b815f8173ffffffffffffffffffffffffffffffffffffffff163b0361177d576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b5f5f6117cb612685565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f6118006120da565b9050805f015f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f5f1b81565b61187f611878612101565b83836126ac565b5050565b5f5f1b61188f816121fc565b61189882612823565b5050565b600181565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6118cf6120b3565b9050805f015f8481526020019081526020015f2054915050919050565b5f6118f6826113f9565b90508034101561193f5780346040517f3644fa3b0000000000000000000000000000000000000000000000000000000081526004016119369291906146b7565b60405180910390fd5b61195a8360018460405180602001604052805f815250612844565b5f81346119679190614c85565b90505f81111561199b5761199a813373ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b5b50505050565b805f6119ae336001610a6a565b9050808211156119f75781816040517fcffb3e690000000000000000000000000000000000000000000000000000000081526004016119ee9291906146b7565b60405180910390fd5b5f611a01846113f9565b90505f47905081811015611a4e5781816040517fce22477e000000000000000000000000000000000000000000000000000000008152600401611a459291906146b7565b60405180910390fd5b611a5a33600187611f09565b611a83823373ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b5050505050565b66016bcc41e9000081565b611a9e82610f20565b611aa7816121fc565b611ab18383612308565b50505050565b5f5f611ac16128d9565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60015f611afa336001610a6a565b905080821115611b435781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401611b3a9291906146b7565b60405180910390fd5b895f8173ffffffffffffffffffffffffffffffffffffffff163b03611b94576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ba033600180611f09565b8a73ffffffffffffffffffffffffffffffffffffffff1663472e649066016bcc41e900008c8c8c8c8c8c8c6040518963ffffffff1660e01b8152600401611bed9796959493929190614d3a565b60206040518083038185885af1158015611c09573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c2e9190614dae565b505050505050505050505050565b5f5f611c46611fab565b9050806001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f611ce1612101565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611d265750611d248682611c3c565b155b15611d6a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611d61929190614b8b565b60405180910390fd5b611d778686868686612900565b505050505050565b611d876125c1565b5f611d906128d9565b905081815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16611df26117c1565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e65612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611eae5750611eac83611ea7612101565b611c3c565b155b15611ef957611ebb612101565b836040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611ef0929190614b8b565b60405180910390fd5b611f04838383611f09565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f79575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611f709190614307565b60405180910390fd5b5f5f611f858484612a06565b91509150611fa4855f848460405180602001604052805f815250612a36565b5050505050565b5f7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500905090565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061209c57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806120ac57506120ab82612ae2565b5b9050919050565b5f7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800905090565b5f7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612178575f6040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161216f9190614307565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036121e8575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016121df9190614307565b60405180910390fd5b6121f58585858585612a36565b5050505050565b61220d81612208612101565b612b5b565b50565b5f5f61221a6120da565b905061222684846117f6565b6122fd576001815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612299612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050612302565b5f9150505b92915050565b5f5f6123126120da565b905061231e84846117f6565b156123f5575f815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612391612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019150506123fa565b5f9150505b92915050565b804710156124475747816040517fcf47918100000000000000000000000000000000000000000000000000000000815260040161243e9291906146b7565b60405180910390fd5b5f5f8373ffffffffffffffffffffffffffffffffffffffff168360405161246d90614e06565b5f6040518083038185875af1925050503d805f81146124a7576040519150601f19603f3d011682016040523d82523d5f602084013e6124ac565b606091505b5091509150816124c0576124bf81612bac565b5b50505050565b5f5f6124d0612bf0565b90508091505090565b6124e1612c19565b6124ea81612c59565b50565b6124f5612c19565b6124fe81612c6d565b50565b612509612c19565b565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125a1575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016125989190614307565b60405180910390fd5b6125bc835f848460405180602001604052805f815250612a36565b505050565b6125c9612101565b73ffffffffffffffffffffffffffffffffffffffff166125e76117c1565b73ffffffffffffffffffffffffffffffffffffffff16146126465761260a612101565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161263d9190614307565b60405180910390fd5b565b5f6126516128d9565b9050805f015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561268182612cf1565b5050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f6126b5611fab565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612727575f6040517fced3e10000000000000000000000000000000000000000000000000000000000815260040161271e9190614307565b60405180910390fd5b81816001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31846040516128159190613b2b565b60405180910390a350505050565b5f61282c611fab565b90508181600201908161283f9190614fb1565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036128b4575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016128ab9190614307565b60405180910390fd5b5f5f6128c08585612a06565b915091506128d15f87848487612a36565b505050505050565b5f7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612970575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016129679190614307565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036129e0575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016129d79190614307565b60405180910390fd5b5f5f6129ec8585612a06565b915091506129fd8787848487612a36565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b612a4285858585612dc2565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612adb575f612a7e612101565b90506001845103612aca575f612a9d5f8661251e90919063ffffffff16565b90505f612ab35f8661251e90919063ffffffff16565b9050612ac3838989858589612dd4565b5050612ad9565b612ad8818787878787612f83565b5b505b5050505050565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612b545750612b5382613132565b5b9050919050565b612b6582826117f6565b612ba85780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612b9f929190615080565b60405180910390fd5b5050565b5f81511115612bbe5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b612c2161319b565b612c57576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b612c61612c19565b612c6a81612823565b50565b612c75612c19565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ce5575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612cdc9190614307565b60405180910390fd5b612cee81612648565b50565b5f612cfa612685565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b612dce848484846131b9565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612f7b578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612e349594939291906150a7565b6020604051808303815f875af1925050508015612e6f57506040513d601f19601f82011682018060405250810190612e6c9190615113565b60015b612ef0573d805f8114612e9d576040519150601f19603f3d011682016040523d82523d5f602084013e612ea2565b606091505b505f815103612ee857846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612edf9190614307565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612f7957846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612f709190614307565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561312a578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612fe395949392919061513e565b6020604051808303815f875af192505050801561301e57506040513d601f19601f8201168201806040525081019061301b9190615113565b60015b61309f573d805f811461304c576040519150601f19603f3d011682016040523d82523d5f602084013e613051565b606091505b505f81510361309757846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161308e9190614307565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461312857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161311f9190614307565b60405180910390fd5b505b505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f6131a46124c6565b5f0160089054906101000a900460ff16905090565b5f6131c26120b3565b90506131d085858585613354565b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361329c575f5f90505f5f90505b845181101561327f575f613229828661251e90919063ffffffff16565b905080845f015f613243858a61251e90919063ffffffff16565b81526020019081526020015f205f82825461325e91906151a4565b92505081905550808361327191906151a4565b92505080600101905061320c565b5080826001015f82825461329391906151a4565b92505081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361334d575f5f90505f5f90505b8451811015613339575f6132f5828661251e90919063ffffffff16565b905080845f015f61330f858a61251e90919063ffffffff16565b81526020019081526020015f205f82825403925050819055508083019250508060010190506132d8565b5080826001015f8282540392505081905550505b5050505050565b5f61335d611fab565b905081518351146133a957825182516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016133a09291906146b7565b60405180910390fd5b5f6133b2612101565b90505f5f90505b84518110156135b7575f6133d6828761251e90919063ffffffff16565b90505f6133ec838761251e90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614613513575f855f015f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156134bd57898183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016134b494939291906151d7565b60405180910390fd5b818103865f015f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146135aa5780855f015f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546135a291906151a4565b925050819055505b50508060010190506133b9565b506001845103613672575f6135d55f8661251e90919063ffffffff16565b90505f6135eb5f8661251e90919063ffffffff16565b90508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516136639291906146b7565b60405180910390a450506136f1565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516136e892919061521a565b60405180910390a45b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61375882613712565b810181811067ffffffffffffffff8211171561377757613776613722565b5b80604052505050565b5f6137896136f9565b9050613795828261374f565b919050565b5f67ffffffffffffffff8211156137b4576137b3613722565b5b6137bd82613712565b9050602081019050919050565b828183375f83830152505050565b5f6137ea6137e58461379a565b613780565b9050828152602081018484840111156138065761380561370e565b5b6138118482856137ca565b509392505050565b5f82601f83011261382d5761382c61370a565b5b813561383d8482602086016137d8565b91505092915050565b5f67ffffffffffffffff8211156138605761385f613722565b5b602082029050602081019050919050565b5f5ffd5b5f61388761388284613846565b613780565b905080838252602082019050602084028301858111156138aa576138a9613871565b5b835b818110156138f157803567ffffffffffffffff8111156138cf576138ce61370a565b5b8086016138dc8982613819565b855260208501945050506020810190506138ac565b5050509392505050565b5f82601f83011261390f5761390e61370a565b5b813561391f848260208601613875565b91505092915050565b5f5f6040838503121561393e5761393d613702565b5b5f83013567ffffffffffffffff81111561395b5761395a613706565b5b61396785828601613819565b925050602083013567ffffffffffffffff81111561398857613987613706565b5b613994858286016138fb565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6139c78261399e565b9050919050565b6139d7816139bd565b81146139e1575f5ffd5b50565b5f813590506139f2816139ce565b92915050565b5f819050919050565b613a0a816139f8565b8114613a14575f5ffd5b50565b5f81359050613a2581613a01565b92915050565b5f5f60408385031215613a4157613a40613702565b5b5f613a4e858286016139e4565b9250506020613a5f85828601613a17565b9150509250929050565b613a72816139f8565b82525050565b5f602082019050613a8b5f830184613a69565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613ac581613a91565b8114613acf575f5ffd5b50565b5f81359050613ae081613abc565b92915050565b5f60208284031215613afb57613afa613702565b5b5f613b0884828501613ad2565b91505092915050565b5f8115159050919050565b613b2581613b11565b82525050565b5f602082019050613b3e5f830184613b1c565b92915050565b5f60208284031215613b5957613b58613702565b5b5f613b6684828501613a17565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f613ba182613b6f565b613bab8185613b79565b9350613bbb818560208601613b89565b613bc481613712565b840191505092915050565b5f6020820190508181035f830152613be78184613b97565b905092915050565b5f613bf98261399e565b9050919050565b613c0981613bef565b8114613c13575f5ffd5b50565b5f81359050613c2481613c00565b92915050565b5f5f5f5f5f60a08688031215613c4357613c42613702565b5b5f613c50888289016139e4565b9550506020613c6188828901613a17565b9450506040613c7288828901613a17565b9350506060613c83888289016139e4565b9250506080613c9488828901613c16565b9150509295509295909350565b5f819050919050565b613cb381613ca1565b8114613cbd575f5ffd5b50565b5f81359050613cce81613caa565b92915050565b5f60208284031215613ce957613ce8613702565b5b5f613cf684828501613cc0565b91505092915050565b613d0881613ca1565b82525050565b5f602082019050613d215f830184613cff565b92915050565b5f67ffffffffffffffff821115613d4157613d40613722565b5b602082029050602081019050919050565b5f613d64613d5f84613d27565b613780565b90508083825260208201905060208402830185811115613d8757613d86613871565b5b835b81811015613db05780613d9c8882613a17565b845260208401935050602081019050613d89565b5050509392505050565b5f82601f830112613dce57613dcd61370a565b5b8135613dde848260208601613d52565b91505092915050565b5f5f5f5f5f60a08688031215613e0057613dff613702565b5b5f613e0d888289016139e4565b9550506020613e1e888289016139e4565b945050604086013567ffffffffffffffff811115613e3f57613e3e613706565b5b613e4b88828901613dba565b935050606086013567ffffffffffffffff811115613e6c57613e6b613706565b5b613e7888828901613dba565b925050608086013567ffffffffffffffff811115613e9957613e98613706565b5b613ea588828901613819565b9150509295509295909350565b5f5f60408385031215613ec857613ec7613702565b5b5f613ed585828601613cc0565b9250506020613ee6858286016139e4565b9150509250929050565b5f5f60408385031215613f0657613f05613702565b5b5f613f1385828601613c16565b9250506020613f2485828601613a17565b9150509250929050565b5f67ffffffffffffffff821115613f4857613f47613722565b5b613f5182613712565b9050602081019050919050565b5f613f70613f6b84613f2e565b613780565b905082815260208101848484011115613f8c57613f8b61370e565b5b613f978482856137ca565b509392505050565b5f82601f830112613fb357613fb261370a565b5b8135613fc3848260208601613f5e565b91505092915050565b5f5f5f60608486031215613fe357613fe2613702565b5b5f84013567ffffffffffffffff81111561400057613fff613706565b5b61400c86828701613f9f565b935050602061401d868287016139e4565b925050604061402e868287016139e4565b9150509250925092565b5f67ffffffffffffffff82111561405257614051613722565b5b602082029050602081019050919050565b5f61407561407084614038565b613780565b9050808382526020820190506020840283018581111561409857614097613871565b5b835b818110156140c157806140ad88826139e4565b84526020840193505060208101905061409a565b5050509392505050565b5f82601f8301126140df576140de61370a565b5b81356140ef848260208601614063565b91505092915050565b5f5f6040838503121561410e5761410d613702565b5b5f83013567ffffffffffffffff81111561412b5761412a613706565b5b614137858286016140cb565b925050602083013567ffffffffffffffff81111561415857614157613706565b5b61416485828601613dba565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141a0816139f8565b82525050565b5f6141b18383614197565b60208301905092915050565b5f602082019050919050565b5f6141d38261416e565b6141dd8185614178565b93506141e883614188565b805f5b838110156142185781516141ff88826141a6565b975061420a836141bd565b9250506001810190506141eb565b5085935050505092915050565b5f6020820190508181035f83015261423d81846141c9565b905092915050565b5f5f5f6060848603121561425c5761425b613702565b5b5f614269868287016139e4565b935050602084013567ffffffffffffffff81111561428a57614289613706565b5b61429686828701613dba565b925050604084013567ffffffffffffffff8111156142b7576142b6613706565b5b6142c386828701613dba565b9150509250925092565b5f602082840312156142e2576142e1613702565b5b5f6142ef848285016139e4565b91505092915050565b614301816139bd565b82525050565b5f60208201905061431a5f8301846142f8565b92915050565b61432981613b11565b8114614333575f5ffd5b50565b5f8135905061434481614320565b92915050565b5f5f604083850312156143605761435f613702565b5b5f61436d858286016139e4565b925050602061437e85828601614336565b9150509250929050565b5f6020828403121561439d5761439c613702565b5b5f82013567ffffffffffffffff8111156143ba576143b9613706565b5b6143c684828501613f9f565b91505092915050565b5f819050919050565b5f6143f26143ed6143e88461399e565b6143cf565b61399e565b9050919050565b5f614403826143d8565b9050919050565b5f614414826143f9565b9050919050565b6144248161440a565b82525050565b5f60208201905061443d5f83018461441b565b92915050565b6002811061444f575f5ffd5b50565b5f8135905061446081614443565b92915050565b61446f8161399e565b8114614479575f5ffd5b50565b5f8135905061448a81614466565b92915050565b5f5f5f5f5f5f5f5f610100898b0312156144ad576144ac613702565b5b5f6144ba8b828c016139e4565b98505060206144cb8b828c016139e4565b97505060406144dc8b828c016139e4565b96505060606144ed8b828c016139e4565b955050608089013567ffffffffffffffff81111561450e5761450d613706565b5b61451a8b828c01613f9f565b94505060a061452b8b828c01614452565b93505060c061453c8b828c01613a17565b92505060e061454d8b828c0161447c565b9150509295985092959890939650565b5f5f6040838503121561457357614572613702565b5b5f614580858286016139e4565b9250506020614591858286016139e4565b9150509250929050565b5f5f5f5f5f60a086880312156145b4576145b3613702565b5b5f6145c1888289016139e4565b95505060206145d2888289016139e4565b94505060406145e388828901613a17565b93505060606145f488828901613a17565b925050608086013567ffffffffffffffff81111561461557614614613706565b5b61462188828901613819565b9150509295509295909350565b5f614638826143f9565b9050919050565b6146488161462e565b82525050565b5f6020820190506146615f83018461463f565b92915050565b5f5f5f6060848603121561467e5761467d613702565b5b5f61468b868287016139e4565b935050602061469c86828701613a17565b92505060406146ad86828701613a17565b9150509250925092565b5f6040820190506146ca5f830185613a69565b6146d76020830184613a69565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f614702826146de565b61470c81856146e8565b935061471c818560208601613b89565b61472581613712565b840191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f614773826146de565b61477d8185614759565b935061478d818560208601613b89565b61479681613712565b840191505092915050565b5f6147ac8383614769565b905092915050565b5f602082019050919050565b5f6147ca82614730565b6147d4818561473a565b9350836020820285016147e68561474a565b805f5b85811015614821578484038952815161480285826147a1565b945061480d836147b4565b925060208a019950506001810190506147e9565b50829750879550505050505092915050565b5f6040820190508181035f83015261484b81856146f8565b9050818103602083015261485f81846147c0565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806148ac57607f821691505b6020821081036148bf576148be614868565b5b50919050565b5f5ffd5b5f5ffd5b5f6148df6148da84613f2e565b613780565b9050828152602081018484840111156148fb576148fa61370e565b5b614906848285613b89565b509392505050565b5f82601f8301126149225761492161370a565b5b81516149328482602086016148cd565b91505092915050565b5f8151905061494981613a01565b92915050565b5f60608284031215614964576149636148c5565b5b61496e6060613780565b90505f82015167ffffffffffffffff81111561498d5761498c6148c9565b5b6149998482850161490e565b5f8301525060206149ac8482850161493b565b60208301525060406149c08482850161493b565b60408301525092915050565b5f602082840312156149e1576149e0613702565b5b5f82015167ffffffffffffffff8111156149fe576149fd613706565b5b614a0a8482850161494f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614a72816139bd565b82525050565b5f614a838383614a69565b60208301905092915050565b5f602082019050919050565b5f614aa582614a40565b614aaf8185614a4a565b9350614aba83614a5a565b805f5b83811015614aea578151614ad18882614a78565b9750614adc83614a8f565b925050600181019050614abd565b5085935050505092915050565b5f60a082019050614b0a5f83018861441b565b614b176020830187613a69565b614b246040830186613a69565b8181036060830152614b368185614a9b565b90508181036080830152614b4a81846146f8565b90509695505050505050565b5f606082019050614b695f830186613a69565b614b766020830185613a69565b614b836040830184613a69565b949350505050565b5f604082019050614b9e5f8301856142f8565b614bab60208301846142f8565b9392505050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f614be8614be3614bde84614bb2565b6143cf565b614bbb565b9050919050565b614bf881614bce565b82525050565b5f602082019050614c115f830184614bef565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614c4e826139f8565b9150614c59836139f8565b9250828202614c67816139f8565b91508282048414831517614c7e57614c7d614c17565b5b5092915050565b5f614c8f826139f8565b9150614c9a836139f8565b9250828203905081811115614cb257614cb1614c17565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110614cf657614cf5614cb8565b5b50565b5f819050614d0682614ce5565b919050565b5f614d1582614cf9565b9050919050565b614d2581614d0b565b82525050565b614d348161399e565b82525050565b5f60e082019050614d4d5f83018a6142f8565b614d5a60208301896142f8565b614d6760408301886142f8565b8181036060830152614d798187613b97565b9050614d886080830186614d1c565b614d9560a0830185613a69565b614da260c0830184614d2b565b98975050505050505050565b5f60208284031215614dc357614dc2613702565b5b5f614dd08482850161493b565b91505092915050565b5f81905092915050565b50565b5f614df15f83614dd9565b9150614dfc82614de3565b5f82019050919050565b5f614e1082614de6565b9150819050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614e767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614e3b565b614e808683614e3b565b95508019841693508086168417925050509392505050565b5f614eb2614ead614ea8846139f8565b6143cf565b6139f8565b9050919050565b5f819050919050565b614ecb83614e98565b614edf614ed782614eb9565b848454614e47565b825550505050565b5f5f905090565b614ef6614ee7565b614f01818484614ec2565b505050565b5b81811015614f2457614f195f82614eee565b600181019050614f07565b5050565b601f821115614f6957614f3a81614e1a565b614f4384614e2c565b81016020851015614f52578190505b614f66614f5e85614e2c565b830182614f06565b50505b505050565b5f82821c905092915050565b5f614f895f1984600802614f6e565b1980831691505092915050565b5f614fa18383614f7a565b9150826002028217905092915050565b614fba82613b6f565b67ffffffffffffffff811115614fd357614fd2613722565b5b614fdd8254614895565b614fe8828285614f28565b5f60209050601f831160018114615019575f8415615007578287015190505b6150118582614f96565b865550615078565b601f19841661502786614e1a565b5f5b8281101561504e57848901518255600182019150602085019450602081019050615029565b8683101561506b5784890151615067601f891682614f7a565b8355505b6001600288020188555050505b505050505050565b5f6040820190506150935f8301856142f8565b6150a06020830184613cff565b9392505050565b5f60a0820190506150ba5f8301886142f8565b6150c760208301876142f8565b6150d46040830186613a69565b6150e16060830185613a69565b81810360808301526150f381846146f8565b90509695505050505050565b5f8151905061510d81613abc565b92915050565b5f6020828403121561512857615127613702565b5b5f615135848285016150ff565b91505092915050565b5f60a0820190506151515f8301886142f8565b61515e60208301876142f8565b818103604083015261517081866141c9565b9050818103606083015261518481856141c9565b9050818103608083015261519881846146f8565b90509695505050505050565b5f6151ae826139f8565b91506151b9836139f8565b92508282019050808211156151d1576151d0614c17565b5b92915050565b5f6080820190506151ea5f8301876142f8565b6151f76020830186613a69565b6152046040830185613a69565b6152116060830184613a69565b95945050505050565b5f6040820190508181035f83015261523281856141c9565b9050818103602083015261524681846141c9565b9050939250505056fea26469706673582212202c607fe090de5b404fc5c3a5562b19ffe9d191a5fb90cec284cb58685f24247864736f6c634300081c0033", - "nonce": "0x29", + "input": "0x608060405234801562000010575f80fd5b506200001b62000021565b620000d5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d25780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61293c80620000e35f395ff3fe6080604052600436106101fe575f3560e01c80637eb802b911610113578063c5efaae81161009d578063e30c39781161006d578063e30c397814610624578063e985e9c514610638578063f242432a14610657578063f2fde38b14610676578063f5298aca14610695575f80fd5b8063c5efaae8146105b9578063c9f18ebd146105cc578063d1b53b9c146105eb578063d547741f14610605575f80fd5b8063a22cb465116100e3578063a22cb465146104ff578063a7fd40bf1461051e578063ad77bc401461053d578063b13bfa9114610551578063bd85b0391461056f575f80fd5b80637eb802b9146104825780638da5cb5b146104a157806391d14854146104cd578063a217fddf146104ec575f80fd5b806336568abe116101945780634f558e79116101645780634f558e79146103d05780636b20c4541461041c578063715018a61461043b57806379ba50971461044f5780637ab4339d14610463575f80fd5b806336568abe14610347578063401d4482146103665780634b844a1d146103855780634e1273f4146103a4575f80fd5b806318160ddd116101cf57806318160ddd146102b7578063248a9ca3146102ea5780632eb2c2d6146103095780632f2ff15d14610328575f80fd5b8062fdd58e1461020957806301ffc9a71461023b5780630e89341c1461026a578063116039ae14610296575f80fd5b3661020557005b5f80fd5b348015610214575f80fd5b50610228610223366004611ea2565b6106b4565b6040519081526020015b60405180910390f35b348015610246575f80fd5b5061025a610255366004611ee1565b6106e9565b6040519015158152602001610232565b348015610275575f80fd5b50610289610284366004611f03565b6106f3565b6040516102329190611f67565b3480156102a1575f80fd5b506102b56102b0366004611f79565b6107b5565b005b3480156102c2575f80fd5b507f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e280154610228565b3480156102f5575f80fd5b50610228610304366004611f03565b610a30565b348015610314575f80fd5b506102b5610323366004612141565b610a50565b348015610333575f80fd5b506102b56103423660046121e7565b610ab7565b348015610352575f80fd5b506102b56103613660046121e7565b610ad9565b348015610371575f80fd5b506102b5610380366004611ea2565b610b11565b348015610390575f80fd5b5061022861039f366004611f03565b610bc8565b3480156103af575f80fd5b506103c36103be366004612215565b610bda565b604051610232919061230a565b3480156103db575f80fd5b5061025a6103ea366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e28006020526040902054151590565b348015610427575f80fd5b506102b561043636600461231c565b610ca4565b348015610446575f80fd5b506102b5610d03565b34801561045a575f80fd5b506102b5610d16565b34801561046e575f80fd5b506102b561047d36600461238c565b610d5e565b34801561048d575f80fd5b506102b561049c3660046123cf565b610e8a565b3480156104ac575f80fd5b506104b5610ee0565b6040516001600160a01b039091168152602001610232565b3480156104d8575f80fd5b5061025a6104e73660046121e7565b610f14565b3480156104f7575f80fd5b506102285f81565b34801561050a575f80fd5b506102b56105193660046123ea565b610f4a565b348015610529575f80fd5b506102b561053836600461241a565b610f59565b348015610548575f80fd5b50610228600181565b34801561055c575f80fd5b505f546104b5906001600160a01b031681565b34801561057a575f80fd5b50610228610589366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800602052604090205490565b6102b56105c7366004611ea2565b610f6c565b3480156105d7575f80fd5b506102b56105e6366004611f03565b610fda565b3480156105f6575f80fd5b5061022866016bcc41e9000081565b348015610610575f80fd5b506102b561061f3660046121e7565b611061565b34801561062f575f80fd5b506104b561107d565b348015610643575f80fd5b5061025a610652366004612453565b6110a5565b348015610662575f80fd5b506102b561067136600461247f565b6110f1565b348015610681575f80fd5b506102b56106903660046123cf565b611150565b3480156106a0575f80fd5b506102b56106af3660046124e2565b6111d5565b5f8181525f805160206128c7833981519152602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6106e38261120b565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450280546060915f805160206128c78339815191529161073190612514565b80601f016020809104026020016040519081016040528092919081815260200182805461075d90612514565b80156107a85780601f1061077f576101008083540402835291602001916107a8565b820191905f5260205f20905b81548152906001019060200180831161078b57829003601f168201915b5050505050915050919050565b846001600160a01b03163b5f036107df57604051633e07d28560e11b815260040160405180910390fd5b8460018410156108025760405163ea54cbb360e01b815260040160405180910390fd5b60405163463d31d760e11b8152600481018690525f906001600160a01b03831690638c7a63ae906024015f60405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261086d919081019061254c565b8051519091505f0361089a5760405163282dcfa760e11b8152600481018790526024015b60405180910390fd5b5f6108a63360016106b4565b9050808611156108d35760405163cffb3e6960e01b81526004810187905260248101829052604401610891565b6108df3360018861124a565b5f6108e987610bc8565b6040805160018082528183019092529192505f91906020808301908036833701905050905085815f81518110610921576109216125fe565b6001600160a01b039092166020928302919091018201526040515f91610958918a91016001600160a01b0391909116815260200190565b60408051601f19818403018152908290525f54631acf898160e11b83529092506001600160a01b038089169263359f13029287926109a3929116908f908f9089908990600401612612565b5f604051808303818588803b1580156109ba575f80fd5b505af11580156109cc573d5f803e3d5ffd5b5050604080518d8152602081018e90529081018790526001600160a01b03808c1694508c1692508d91507f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139929060600160405180910390a45050505050505050505050565b5f9081525f805160206128e7833981519152602052604090206001015490565b336001600160a01b0386168114801590610a715750610a6f86826110a5565b155b15610aa25760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866112b7565b505050505050565b610ac082610a30565b610ac981611315565b610ad3838361131f565b50505050565b6001600160a01b0381163314610b025760405163334bd91960e11b815260040160405180910390fd5b610b0c82826113c0565b505050565b5f610b1b81611315565b6001600160a01b038316610b4257604051633a19ac6f60e11b815260040160405180910390fd5b4780831115610b6e5760405163671123bf60e11b81526004810184905260248101829052604401610891565b610b816001600160a01b03851684611439565b6040518381526001600160a01b0385169033907f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0906020015b60405180910390a350505050565b5f6106e38266016bcc41e900006126a1565b60608151835114610c0b5781518351604051635b05999160e01b815260048101929092526024820152604401610891565b5f83516001600160401b03811115610c2557610c25611fd4565b604051908082528060200260200182016040528015610c4e578160200160208202803683370190505b5090505f5b8451811015610c9c57602080820286010151610c77906020808402870101516106b4565b828281518110610c8957610c896125fe565b6020908102919091010152600101610c53565b509392505050565b6001600160a01b0383163314801590610cc45750610cc283336110a5565b155b15610cf857335b60405163711bec9160e11b81526001600160a01b0391821660048201529084166024820152604401610891565b610b0c8383836114c5565b610d0b611508565b610d145f61153a565b565b3380610d2061107d565b6001600160a01b031614610d525760405163118cdaa760e01b81526001600160a01b0382166004820152602401610891565b610d5b8161153a565b50565b5f610d67611572565b805490915060ff600160401b82041615906001600160401b03165f81158015610d8d5750825b90505f826001600160401b03166001148015610da85750303b155b905081158015610db6575080155b15610dd45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dfe57845460ff60401b1916600160401b1785555b610e078761159a565b610e10336115ab565b610e186115bc565b610e225f3361131f565b506001600160a01b03861615610e3b57610e3b86610e8a565b8315610e8157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b5f610e9481611315565b816001600160a01b03163b5f03610ebe57604051633e07d28560e11b815260040160405180910390fd5b505f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f9182525f805160206128e7833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610f553383836115c4565b5050565b5f610f6381611315565b610f5582611660565b5f610f7682610bc8565b905080341015610fa257604051633644fa3b60e01b815260048101829052346024820152604401610891565b610fbd8360018460405180602001604052805f815250611699565b5f610fc882346126b8565b90508015610ad357610ad33382611439565b5f610fe63360016106b4565b9050818110156110135760405163cffb3e6960e01b81526004810183905260248101829052604401610891565b5f61101d83610bc8565b9050478181101561104b5760405163671123bf60e11b81526004810183905260248101829052604401610891565b6110573360018661124a565b610ad33383611439565b61106a82610a30565b61107381611315565b610ad383836113c0565b5f807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610f04565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386168114801590611112575061111086826110a5565b155b156111435760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866116f4565b611158611508565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561119c610ee0565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6001600160a01b03831633148015906111f557506111f383336110a5565b155b156112005733610ccb565b610b0c83838361124a565b5f6001600160e01b03198216636cdb3d1360e11b148061123b57506001600160e01b031982166303a24d0760e21b145b806106e357506106e382611777565b6001600160a01b03831661127257604051626a0d4560e21b81525f6004820152602401610891565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916112b0918791859085906117ab565b5050505050565b6001600160a01b0384166112e057604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661130857604051626a0d4560e21b81525f6004820152602401610891565b6112b085858585856117ab565b610d5b81336117fe565b5f5f805160206128e78339815191526113388484610f14565b6113b7575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561136d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106e3565b5f9150506106e3565b5f5f805160206128e78339815191526113d98484610f14565b156113b7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106e3565b804710156114635760405163cf47918160e01b815247600482015260248101829052604401610891565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146114ad576040519150601f19603f3d011682016040523d82523d5f602084013e6114b2565b606091505b509150915081610ad357610ad381611837565b6001600160a01b0383166114ed57604051626a0d4560e21b81525f6004820152602401610891565b610b0c835f848460405180602001604052805f8152506117ab565b33611511610ee0565b6001600160a01b031614610d145760405163118cdaa760e01b8152336004820152602401610891565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610f5582611860565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106e3565b6115a26118d0565b610d5b816118f5565b6115b36118d0565b610d5b81611906565b610d146118d0565b5f805160206128c78339815191526001600160a01b0383166115fa5760405162ced3e160e81b81525f6004820152602401610891565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610bba565b5f805160206128c78339815191527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610b0c838261270f565b6001600160a01b0384166116c257604051632bfa23e760e11b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610aaf5f878484876117ab565b6001600160a01b03841661171d57604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661174557604051626a0d4560e21b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610e8187878484876117ab565b5f6001600160e01b03198216637965db0b60e01b14806106e357506301ffc9a760e01b6001600160e01b03198316146106e3565b6117b785858585611937565b6001600160a01b038416156112b057825133906001036117f057602084810151908401516117e9838989858589611943565b5050610aaf565b610aaf818787878787611a64565b6118088282610f14565b610f555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610891565b8051156118475780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6118d8611b4b565b610d1457604051631afcd79f60e31b815260040160405180910390fd5b6118fd6118d0565b610d5b81611660565b61190e6118d0565b6001600160a01b038116610d5257604051631e4fbdf760e01b81525f6004820152602401610891565b610ad384848484611b64565b6001600160a01b0384163b15610aaf5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061198790899089908890889088906004016127ca565b6020604051808303815f875af19250505080156119c1575060408051601f3d908101601f191682019092526119be9181019061280e565b60015b611a28573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b606091505b5080515f03611a2057604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b6001600160a01b0384163b15610aaf5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611aa89089908990889088908890600401612829565b6020604051808303815f875af1925050508015611ae2575060408051601f3d908101601f19168201909252611adf9181019061280e565b60015b611b0f573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b6001600160e01b0319811663bc197c8160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b5f611b54611572565b54600160401b900460ff16919050565b7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800611b9185858585611c6f565b6001600160a01b038516611c0f575f805b8451811015611bf45760208181028581018201519087018201515f9081529185905260408220805491928392611bd9908490612886565b90915550611be990508184612886565b925050600101611ba2565b5080826001015f828254611c089190612886565b9091555050505b6001600160a01b0384166112b0575f805b8451811015611c5b5760208181028581018201519087018201515f908152918590526040909120805482900390559190910190600101611c20565b506001820180549190910390555050505050565b805182515f805160206128c78339815191529114611cad5782518251604051635b05999160e01b815260048101929092526024820152604401610891565b335f5b8451811015611daf576020818102868101820151908601909101516001600160a01b03891615611d61575f828152602086815260408083206001600160a01b038d16845290915290205481811015611d3b576040516303dee4c560e01b81526001600160a01b038b166004820152602481018290526044810183905260648101849052608401610891565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b03881615611da5575f828152602086815260408083206001600160a01b038c16845290915281208054839290611d9f908490612886565b90915550505b5050600101611cb0565b508351600103611e2f5760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611e20929190918252602082015260400190565b60405180910390a45050610aaf565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611e7e929190612899565b60405180910390a4505050505050565b6001600160a01b0381168114610d5b575f80fd5b5f8060408385031215611eb3575f80fd5b8235611ebe81611e8e565b946020939093013593505050565b6001600160e01b031981168114610d5b575f80fd5b5f60208284031215611ef1575f80fd5b8135611efc81611ecc565b9392505050565b5f60208284031215611f13575f80fd5b5035919050565b5f5b83811015611f34578181015183820152602001611f1c565b50505f910152565b5f8151808452611f53816020860160208601611f1a565b601f01601f19169290920160200192915050565b602081525f611efc6020830184611f3c565b5f805f805f60a08688031215611f8d575f80fd5b8535611f9881611e8e565b945060208601359350604086013592506060860135611fb681611e8e565b91506080860135611fc681611e8e565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561200a5761200a611fd4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561203857612038611fd4565b604052919050565b5f6001600160401b0382111561205857612058611fd4565b5060051b60200190565b5f82601f830112612071575f80fd5b8135602061208661208183612040565b612010565b8083825260208201915060208460051b8701019350868411156120a7575f80fd5b602086015b848110156120c357803583529183019183016120ac565b509695505050505050565b5f6001600160401b038211156120e6576120e6611fd4565b50601f01601f191660200190565b5f82601f830112612103575f80fd5b8135612111612081826120ce565b818152846020838601011115612125575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215612155575f80fd5b853561216081611e8e565b9450602086013561217081611e8e565b935060408601356001600160401b038082111561218b575f80fd5b61219789838a01612062565b945060608801359150808211156121ac575f80fd5b6121b889838a01612062565b935060808801359150808211156121cd575f80fd5b506121da888289016120f4565b9150509295509295909350565b5f80604083850312156121f8575f80fd5b82359150602083013561220a81611e8e565b809150509250929050565b5f8060408385031215612226575f80fd5b82356001600160401b038082111561223c575f80fd5b818501915085601f83011261224f575f80fd5b8135602061225f61208183612040565b82815260059290921b8401810191818101908984111561227d575f80fd5b948201945b838610156122a457853561229581611e8e565b82529482019490820190612282565b965050860135925050808211156122b9575f80fd5b506122c685828601612062565b9150509250929050565b5f815180845260208085019450602084015f5b838110156122ff578151875295820195908201906001016122e3565b509495945050505050565b602081525f611efc60208301846122d0565b5f805f6060848603121561232e575f80fd5b833561233981611e8e565b925060208401356001600160401b0380821115612354575f80fd5b61236087838801612062565b93506040860135915080821115612375575f80fd5b5061238286828701612062565b9150509250925092565b5f806040838503121561239d575f80fd5b82356001600160401b038111156123b2575f80fd5b6123be858286016120f4565b925050602083013561220a81611e8e565b5f602082840312156123df575f80fd5b8135611efc81611e8e565b5f80604083850312156123fb575f80fd5b823561240681611e8e565b91506020830135801515811461220a575f80fd5b5f6020828403121561242a575f80fd5b81356001600160401b0381111561243f575f80fd5b61244b848285016120f4565b949350505050565b5f8060408385031215612464575f80fd5b823561246f81611e8e565b9150602083013561220a81611e8e565b5f805f805f60a08688031215612493575f80fd5b853561249e81611e8e565b945060208601356124ae81611e8e565b9350604086013592506060860135915060808601356001600160401b038111156124d6575f80fd5b6121da888289016120f4565b5f805f606084860312156124f4575f80fd5b83356124ff81611e8e565b95602085013595506040909401359392505050565b600181811c9082168061252857607f821691505b60208210810361254657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602080838503121561255d575f80fd5b82516001600160401b0380821115612573575f80fd5b9084019060608287031215612586575f80fd5b61258e611fe8565b82518281111561259c575f80fd5b83019150601f820187136125ae575f80fd5b81516125bc612081826120ce565b81815288868386010111156125cf575f80fd5b6125de82878301888701611f1a565b825250828401519381019390935250604090810151908201529392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820160018060a01b038089168452602088602086015287604086015260a0606086015282875180855260c0870191506020890194505f5b8181101561266a57855185168352948301949183019160010161264c565b5050858103608087015261267e8188611f3c565b9b9a5050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e3576106e361268d565b818103818111156106e3576106e361268d565b601f821115610b0c57805f5260205f20601f840160051c810160208510156126f05750805b601f840160051c820191505b818110156112b0575f81556001016126fc565b81516001600160401b0381111561272857612728611fd4565b61273c816127368454612514565b846126cb565b602080601f83116001811461276f575f84156127585750858301515b5f19600386901b1c1916600185901b178555610aaf565b5f85815260208120601f198616915b8281101561279d5788860151825594840194600190910190840161277e565b50858210156127ba57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061280390830184611f3c565b979650505050505050565b5f6020828403121561281e575f80fd5b8151611efc81611ecc565b6001600160a01b0386811682528516602082015260a0604082018190525f90612854908301866122d0565b828103606084015261286681866122d0565b9050828103608084015261287a8185611f3c565b98975050505050505050565b808201808211156106e3576106e361268d565b604081525f6128ab60408301856122d0565b82810360208401526128bd81856122d0565b9594505050505056fe88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220705f2a39cbbda6054e9ea513adb54ebab3bfe8485e890c135b7b88701047a4c164736f6c63430008170033", + "nonce": "0x1e", "chainId": "0x14a34" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", + "hash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", + "transactionType": "CREATE", + "contractName": "ProxyAdmin", + "contractAddress": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", + "function": null, + "arguments": [ + "0x3c10FAED26a6bb341322d1BAaf2c6ecf5B957D61" + ], + "transaction": { + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "gas": "0x60734", + "value": "0x0", + "input": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c634300081700330000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "nonce": "0x1f", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", "transactionType": "CREATE", "contractName": "TransparentUpgradeableProxy", - "contractAddress": "0xdf812831151c93821d5118aed612c5711ad36785", + "contractAddress": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "function": null, "arguments": [ - "0xd4fd2BA2075aA0C2Ac63aD100c3928097Fc0fe55", - "0xaff4BE6F091274421f0Bf5a2F74eC368a2c017E8", - "0x463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000001660939de5e468514859e04fbfdc8a98d8e0cf1e000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f74657374000000000000000000000000000000000000000000" + "0x1a9507B4404854B48164B209bFd0d4790B609762", + "0x888FB1aa6EeC47D2B5db8dBcE68d00f294F95f08", + "0x7ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f00000000000000000000000000000000000000000000000000" ], "transaction": { - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", - "gas": "0x17ef98", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "gas": "0xeebd7", "value": "0x0", - "input": "0x60a06040526040516119d43803806119d483398181016040528101906100259190610708565b828161003782826100c160201b60201c565b50508160405161004690610554565b6100509190610783565b604051809103905ff080158015610069573d5f5f3e3d5ffd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100b96100ae61014560201b60201c565b61014e60201b60201c565b50505061081d565b6100d0826101a660201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101325761012c828261027560201b60201c565b50610141565b6101406102fb60201b60201c565b5b5050565b5f608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61017d61033760201b60201c565b8260405161018c92919061079c565b60405180910390a16101a38161039060201b60201c565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361020157806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101f89190610783565b60405180910390fd5b806102337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff168460405161029e9190610807565b5f60405180830381855af49150503d805f81146102d6576040519150601f19603f3d011682016040523d82523d5f602084013e6102db565b606091505b50915091506102f185838361047d60201b60201c565b9250505092915050565b5f341115610335576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103697fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610400575f6040517f62e77ba20000000000000000000000000000000000000000000000000000000081526004016103f79190610783565b60405180910390fd5b806104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f819050919050565b606082610498576104938261051060201b60201c565b610508565b5f82511480156104be57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561050057836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104f79190610783565b60405180910390fd5b819050610509565b5b9392505050565b5f815111156105225780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109c68061100e83390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059b82610572565b9050919050565b6105ab81610591565b81146105b5575f5ffd5b50565b5f815190506105c6816105a2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61061a826105d4565b810181811067ffffffffffffffff82111715610639576106386105e4565b5b80604052505050565b5f61064b610561565b90506106578282610611565b919050565b5f67ffffffffffffffff821115610676576106756105e4565b5b61067f826105d4565b9050602081019050919050565b8281835e5f83830152505050565b5f6106ac6106a78461065c565b610642565b9050828152602081018484840111156106c8576106c76105d0565b5b6106d384828561068c565b509392505050565b5f82601f8301126106ef576106ee6105cc565b5b81516106ff84826020860161069a565b91505092915050565b5f5f5f6060848603121561071f5761071e61056a565b5b5f61072c868287016105b8565b935050602061073d868287016105b8565b925050604084015167ffffffffffffffff81111561075e5761075d61056e565b5b61076a868287016106db565b9150509250925092565b61077d81610591565b82525050565b5f6020820190506107965f830184610774565b92915050565b5f6040820190506107af5f830185610774565b6107bc6020830184610774565b9392505050565b5f81519050919050565b5f81905092915050565b5f6107e1826107c3565b6107eb81856107cd565b93506107fb81856020860161068c565b80840191505092915050565b5f61081282846107d7565b915081905092915050565b6080516107d96108355f395f61010401526107d95ff3fe608060405261000c61000e565b005b610016610101565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f657634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19165f357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100e9576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f1610128565b6100ff565b6100fe61015c565b5b565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f5f5f36600490809261013d939291906104d0565b81019061014a91906106a8565b91509150610158828261016e565b5050565b61016c6101676101e0565b6101ee565b565b6101778261020d565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101d3576101cd82826102d6565b506101dc565b6101db610356565b5b5050565b5f6101e9610392565b905090565b365f5f375f5f365f845af43d5f5f3e805f8114610209573d5ff35b3d5ffd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361026857806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161025f9190610722565b60405180910390fd5b806102947f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102ff919061078d565b5f60405180830381855af49150503d805f8114610337576040519150601f19603f3d011682016040523d82523d5f602084013e61033c565b606091505b509150915061034c8583836103ee565b9250505092915050565b5f341115610390576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103be7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b606082610403576103fe8261047b565b610473565b5f825114801561042957505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561046b57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104629190610722565b60405180910390fd5b819050610474565b5b9392505050565b5f8151111561048d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f5ffd5b5f5ffd5b5f5f858511156104e3576104e26104c8565b5b838611156104f4576104f36104cc565b5b6001850283019150848603905094509492505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61053b82610512565b9050919050565b61054b81610531565b8114610555575f5ffd5b50565b5f8135905061056681610542565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105ba82610574565b810181811067ffffffffffffffff821117156105d9576105d8610584565b5b80604052505050565b5f6105eb6104bf565b90506105f782826105b1565b919050565b5f67ffffffffffffffff82111561061657610615610584565b5b61061f82610574565b9050602081019050919050565b828183375f83830152505050565b5f61064c610647846105fc565b6105e2565b90508281526020810184848401111561066857610667610570565b5b61067384828561062c565b509392505050565b5f82601f83011261068f5761068e61056c565b5b813561069f84826020860161063a565b91505092915050565b5f5f604083850312156106be576106bd61050a565b5b5f6106cb85828601610558565b925050602083013567ffffffffffffffff8111156106ec576106eb61050e565b5b6106f88582860161067b565b9150509250929050565b5f61070c82610512565b9050919050565b61071c81610702565b82525050565b5f6020820190506107355f830184610713565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6107678261073b565b6107718185610745565b935061078181856020860161074f565b80840191505092915050565b5f610798828461075d565b91508190509291505056fea2646970667358221220ccc9529bc6fbbf8f3b86b4a8c5192f0598aa3267a8c6404d4fb67afc4bbc1a5d64736f6c634300081c0033608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000d4fd2ba2075aa0c2ac63ad100c3928097fc0fe55000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae0000000000000000000000001660939de5e468514859e04fbfdc8a98d8e0cf1e000000000000000000000000000000000000000000000000000000000000000b697066733a2f2f7465737400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x2a", + "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122011de57fd4b44521ee974555595699df7e8ef5536966300e3722e17cc1200174664736f6c63430008170033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000001a9507b4404854b48164b209bfd0d4790b609762000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000847ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x20", "chainId": "0x14a34" }, "additionalContracts": [ { "transactionType": "CREATE", - "address": "0x194288c650b89a339095142df67e397bbf20d77d", - "initCode": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" + "address": "0xa1c729ca727eb3bea8b48ea92a2be0c86ab529b4", + "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08" } ], "isFixedGasLimit": false @@ -50,155 +70,186 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x6df654", + "cumulativeGasUsed": "0x284809", "logs": [ { - "address": "0xd4fd2ba2075aa0c2ac63ad100c3928097fc0fe55", + "address": "0x1a9507b4404854b48164b209bfd0d4790b609762", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", - "blockNumber": "0x1c7f904", - "blockTimestamp": "0x68a350e8", - "transactionHash": "0x8243085b03eb233485ee9b726c3a4a721c8a83268fd5d98a993129264354203e", - "transactionIndex": "0xa", - "logIndex": "0x44", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", + "transactionIndex": "0x6", + "logIndex": "0x5", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080002000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", + "transactionIndex": "0x6", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "gasUsed": "0x240ca3", + "effectiveGasPrice": "0xba11f", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "to": null, + "contractAddress": "0x1a9507b4404854b48164b209bfd0d4790b609762", + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0xff0f73bb7a", + "l1GasPrice": "0x2689e7ebd", + "l1GasUsed": "0x177b2" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2ceb1e", + "logs": [ + { + "address": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + ], + "data": "0x", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", + "transactionIndex": "0x7", + "logIndex": "0x6", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000800000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000010000000000000000000000000000020000000000004000000000000000000000000000400000000000000000000000020", "type": "0x2", - "transactionHash": "0x8243085b03eb233485ee9b726c3a4a721c8a83268fd5d98a993129264354203e", - "transactionIndex": "0xa", - "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", - "blockNumber": "0x1c7f904", - "gasUsed": "0x46b4a2", - "effectiveGasPrice": "0xeb0e3", - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "transactionHash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", + "transactionIndex": "0x7", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "gasUsed": "0x4a315", + "effectiveGasPrice": "0xba11f", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", "to": null, - "contractAddress": "0xd4fd2ba2075aa0c2ac63ad100c3928097fc0fe55", + "contractAddress": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x8e4ff807", + "l1BlobBaseFee": "0x1", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0xd3128b8694d", - "l1GasPrice": "0xbb2873e", - "l1GasUsed": "0x23e28" + "l1Fee": "0x25f2266254", + "l1GasPrice": "0x2689e7ebd", + "l1GasUsed": "0x37e4" }, { "status": "0x1", - "cumulativeGasUsed": "0x805fdd", + "cumulativeGasUsed": "0x386575", "logs": [ { - "address": "0xdf812831151c93821d5118aed612c5711ad36785", + "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000d4fd2ba2075aa0c2ac63ad100c3928097fc0fe55" + "0x0000000000000000000000001a9507b4404854b48164b209bfd0d4790b609762" ], "data": "0x", - "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", - "blockNumber": "0x1c7f904", - "blockTimestamp": "0x68a350e8", - "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", - "transactionIndex": "0xb", - "logIndex": "0x45", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0x7", "removed": false }, { - "address": "0xdf812831151c93821d5118aed612c5711ad36785", + "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" ], "data": "0x", - "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", - "blockNumber": "0x1c7f904", - "blockTimestamp": "0x68a350e8", - "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", - "transactionIndex": "0xb", - "logIndex": "0x46", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0x8", "removed": false }, { - "address": "0xdf812831151c93821d5118aed612c5711ad36785", + "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "topics": [ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" ], "data": "0x", - "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", - "blockNumber": "0x1c7f904", - "blockTimestamp": "0x68a350e8", - "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", - "transactionIndex": "0xb", - "logIndex": "0x47", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0x9", "removed": false }, { - "address": "0xdf812831151c93821d5118aed612c5711ad36785", + "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", - "blockNumber": "0x1c7f904", - "blockTimestamp": "0x68a350e8", - "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", - "transactionIndex": "0xb", - "logIndex": "0x48", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0xa", "removed": false }, { - "address": "0x194288c650b89a339095142df67e397bbf20d77d", + "address": "0xa1c729ca727eb3bea8b48ea92a2be0c86ab529b4", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" + "0x000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08" ], "data": "0x", - "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", - "blockNumber": "0x1c7f904", - "blockTimestamp": "0x68a350e8", - "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", - "transactionIndex": "0xb", - "logIndex": "0x49", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0xb", "removed": false }, { - "address": "0xdf812831151c93821d5118aed612c5711ad36785", + "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000194288c650b89a339095142df67e397bbf20d77d", - "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", - "blockNumber": "0x1c7f904", - "blockTimestamp": "0x68a350e8", - "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", - "transactionIndex": "0xb", - "logIndex": "0x4a", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1c729ca727eb3bea8b48ea92a2be0c86ab529b4", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "logIndex": "0xc", "removed": false } ], - "logsBloom": "0x00000004000000000000000000000000400000000000000000800000000080000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000002000001001000000000000000000000000000000000020000000000000000000800000000800000000000000000000000400000000420000000000800000000000000000000000080000000000000800000000000000000000000000000000000003000000000000000001000000080000400000020000000000000000000000000000000000404000100000000000020000000000000000000000000000000000200100000000000000000000000000000", + "logsBloom": "0x00000004000000000000000004000000400000000000000000800480000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000004010000000020008000000000000000800000000800000000000000000000000400000000000000000000800000000000000000000000084000000100000800000000000000000000000000000000000000000000000000000001000000000000000000021000000000000000000000090000000000404000100000000000020000000004000000000000000400000000000000000000000000000000000000040", "type": "0x2", - "transactionHash": "0x2fd00c6dd238a6a324c1efc849ac6b0ba807d7ed841b5799d3b51cf007ce9872", - "transactionIndex": "0xb", - "blockHash": "0xdbc4568acb1c3a4c9a162c35dfa7408e6d27af753d3ec5571565019389f3cb5a", - "blockNumber": "0x1c7f904", - "gasUsed": "0x126989", - "effectiveGasPrice": "0xeb0e3", - "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "transactionIndex": "0x8", + "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", + "blockNumber": "0x17c239e", + "gasUsed": "0xb7a57", + "effectiveGasPrice": "0xba11f", + "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", "to": null, - "contractAddress": "0xdf812831151c93821d5118aed612c5711ad36785", + "contractAddress": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x8e4ff807", + "l1BlobBaseFee": "0x1", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0x4576338ac56", - "l1GasPrice": "0xbb2873e", - "l1GasUsed": "0xbcf2" + "l1Fee": "0x5ce3d8476c", + "l1GasPrice": "0x2689e7ebd", + "l1GasUsed": "0x88d3" } ], "libraries": [], @@ -206,10 +257,10 @@ "returns": { "0": { "internal_type": "struct DeployCredits.DeploymentResult", - "value": "(0xd4fd2BA2075aA0C2Ac63aD100c3928097Fc0fe55, 0xDf812831151c93821D5118aEd612C5711Ad36785)" + "value": "(0x1a9507B4404854B48164B209bFd0d4790B609762, 0xBe5F264C6413ec0cf3FFe6169A320AeEc721d0A1, 0x888FB1aa6EeC47D2B5db8dBcE68d00f294F95f08)" } }, - "timestamp": 1755533581, + "timestamp": 1745593951, "chain": 84532, - "commit": "df79975" + "commit": "edb476b" } \ No newline at end of file From 09c7f42f904387921babcf669391c7e2dd73171a Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 18 Aug 2025 11:47:06 -0500 Subject: [PATCH 26/28] README - script instructions for Deploy and Upgrade pnpm + ENV --- .env.example | 8 +++++++- README.md | 39 +++++++++++++++++++-------------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/.env.example b/.env.example index 7f22d73..670c76d 100644 --- a/.env.example +++ b/.env.example @@ -12,15 +12,21 @@ FIXED_PRICE_SALE_STRATEGY= # IPFS URI for the token metadata # Example format: ipfs://Qm... -TOKEN_URI=ipfs:// +TOKEN_URI=ar://o3ni6dHT2v1fda8610XgjXx-3jGuBb4b--0pfbOxrmw # Basescan API Key for contract verification # Get one from https://basescan.org/apis BASESCAN_API_KEY= # Doppler Coins ENV variables +# Base Sepolia: 0xd34872BE0cdb6b09d45FCa067B07f04a1A9aE1aE +# Base Mainnet: 0x6ff5693b99212da76ad316178a184ab56d299b43 DOPPLER_UNIVERSAL_ROUTER= # Upgrade Script ENV variables +# Base Sepolia: 0x1660939de5E468514859E04fBfDC8a98d8e0Cf1E +# Base Mainnet: ??? CREDITS_PROXY_ADDRESS= +# Base Sepolia: 0x2c62591c601e467cb58e3fa5483f2b0c1483fca4 +# Base Mainnet: ??? CREDITS_PROXY_ADMIN= diff --git a/README.md b/README.md index ec0e66d..6134dc3 100644 --- a/README.md +++ b/README.md @@ -108,17 +108,6 @@ To deploy the Credits Protocol to a network, you'll need to: 1. Configure your deployment environment in `.env` file: -```bash -# Required environment variables -RPC_URL= # The RPC URL of the target network (e.g., https://sepolia.base.org) -PRIVATE_KEY= # Your wallet's private key for deployment -TOKEN_URI= # The URI for the token metadata (e.g., ipfs://...) -BASESCAN_API_KEY= # API key for contract verification -FIXED_PRICE_SALE_STRATEGY= # Address of the fixed price sale strategy contract - # Base Sepolia: 0xd34872BE0cdb6b09d45FCa067B07f04a1A9aE1aE - # Base Mainnet: 0x04E2516A2c207E84a1839755675dfd8eF6302F0a -``` - 2. Run the deployment script: ```bash @@ -164,22 +153,32 @@ forge test --match-test test_BuyCredits Since the protocol uses the transparent proxy pattern, the implementation contract can be upgraded while preserving all state: -1. Deploy a new implementation contract: +### Using the Upgrade Script (Recommended) + +The easiest way to upgrade the contract is using the provided upgrade script: + +1. Configure your upgrade environment in `.env` file: ```bash -forge create src/Credits1155.sol:Credits1155 --rpc-url $RPC_URL --private-key $PRIVATE_KEY +# Required for upgrades +CREDITS_PROXY_ADDRESS= +CREDITS_PROXY_ADMIN= + +# Optional: Set doppler universal router for the new implementation +DOPPLER_UNIVERSAL_ROUTER= ``` -2. Upgrade the proxy to point to the new implementation using the ProxyAdmin: +2. Run the upgrade script: ```bash -# Get the ProxyAdmin contract interface -cast call "getProxyAdmin(address)" --rpc-url $RPC_URL +# Using pnpm +pnpm run upgrade-credits -# Upgrade the proxy to the new implementation -cast send "upgrade(address,address)" --rpc-url $RPC_URL --private-key $PRIVATE_KEY +# Or directly with Foundry +forge clean && forge script script/Upgrade.s.sol:UpgradeCredits --rpc-url $RPC_URL --private-key $PRIVATE_KEY --broadcast --verify --etherscan-api-key $BASESCAN_API_KEY -vvvv ``` -## License +The upgrade script will: -This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. +- Deploy a new `Credits1155` implementation contract +- Use the ProxyAdmin's `upgradeAndCall` method to upgrade the proxy From 38e3ec49d560b4e2dddc577ddb514811fdedf462 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 18 Aug 2025 12:03:35 -0500 Subject: [PATCH 27/28] upgrade testnet proxy with new coins methods --- .env.example | 18 +- README.md | 8 +- broadcast/Deploy.s.sol/84532/run-latest.json | 250 +++++++------------ 3 files changed, 111 insertions(+), 165 deletions(-) diff --git a/.env.example b/.env.example index 670c76d..4545e9c 100644 --- a/.env.example +++ b/.env.example @@ -1,10 +1,16 @@ -# Base Sepolia RPC URL -RPC_URL=https://sepolia.base.org - # Your deployment wallet's private key (generate with `npm run generate-wallet`) # Example format: 0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef PRIVATE_KEY= +# Basescan API Key for contract verification +# Get one from https://basescan.org/apis +BASESCAN_API_KEY= + +# RPC URL +# Base Sepolia: https://sepolia.base.org +# Base Mainnet: https://mainnet.base.org +RPC_URL=https://sepolia.base.org + # Fixed Price Sale Strategy address for initialization # Base Sepolia: 0xd34872BE0cdb6b09d45FCa067B07f04a1A9aE1aE # Base Mainnet: 0x04E2516A2c207E84a1839755675dfd8eF6302F0a @@ -14,19 +20,17 @@ FIXED_PRICE_SALE_STRATEGY= # Example format: ipfs://Qm... TOKEN_URI=ar://o3ni6dHT2v1fda8610XgjXx-3jGuBb4b--0pfbOxrmw -# Basescan API Key for contract verification -# Get one from https://basescan.org/apis -BASESCAN_API_KEY= - # Doppler Coins ENV variables # Base Sepolia: 0xd34872BE0cdb6b09d45FCa067B07f04a1A9aE1aE # Base Mainnet: 0x6ff5693b99212da76ad316178a184ab56d299b43 DOPPLER_UNIVERSAL_ROUTER= # Upgrade Script ENV variables + # Base Sepolia: 0x1660939de5E468514859E04fBfDC8a98d8e0Cf1E # Base Mainnet: ??? CREDITS_PROXY_ADDRESS= + # Base Sepolia: 0x2c62591c601e467cb58e3fa5483f2b0c1483fca4 # Base Mainnet: ??? CREDITS_PROXY_ADMIN= diff --git a/README.md b/README.md index 6134dc3..6731a7c 100644 --- a/README.md +++ b/README.md @@ -23,11 +23,11 @@ The COOP Credits Protocol implements a flexible and upgradeable ERC1155 token sy | Contract | Address | Transaction | | -------------- | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| Implementation | `0x019d5E4BcF1804265AFD084777a700B1aEdf47c9` | [View](https://sepolia.basescan.org/tx/0xac8a612f38c4793e560c497389d95bd21d112158fbbd3640454c51d3d7757eb9) | -| Proxy Admin | `0x0Eb9984B125D7e8fe10C7F8E64A0594009ae449a` | [View](https://sepolia.basescan.org/tx/0x297b6626141b18bacac6e7ea338372ad881ca071d79cd36b45c18dc92d79c2f3) | -| Proxy | `0x2d8CF3A448b75Bbc25cEC322be1224A9f8584115` | [View](https://sepolia.basescan.org/tx/0xb0f75db8cfcf2c490e6d82103f5baa4455e454a43eb45577a627d66813cce656) | +| Implementation | `0x29c6F2022b97bf8503A64025Dd4fafEa5251756C` | [View](https://sepolia.basescan.org/tx/0x396b891ad4ba8a3095f6e278a47dd5ed97d8aa277f676fe9bc27dd71a0182ef7) | +| Proxy Admin | `0x57c2cd477300e7ec80974b28fa55e34589627cb5` | [View](https://sepolia.basescan.org/tx/0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2) | +| Proxy | `0xB3dd782FCe60BCFBBEF1eaD56eF3a24a9c330A38` | [View](https://sepolia.basescan.org/tx/0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2) | -> **Latest Update (2025-04-23)**: The contract implementation has been improved to fix an issue with global state handling in the `mintWithCredits` function. The function now maintains isolation between different calls, ensuring consistent behavior when interacting with multiple collectibles contracts. +> **Latest Update (Aug-18-2025)**: The contract implementation has been improved to add methods for purchasing coins with credits. It also fixes a bug in our Proxy upgrades allowing the Proxy to be upgraded via the `upgradeAndCall` method on the `ProxyAdmin` contract. ### Key Features diff --git a/broadcast/Deploy.s.sol/84532/run-latest.json b/broadcast/Deploy.s.sol/84532/run-latest.json index 770d564..1ad2ba2 100644 --- a/broadcast/Deploy.s.sol/84532/run-latest.json +++ b/broadcast/Deploy.s.sol/84532/run-latest.json @@ -1,67 +1,47 @@ { "transactions": [ { - "hash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", + "hash": "0x396b891ad4ba8a3095f6e278a47dd5ed97d8aa277f676fe9bc27dd71a0182ef7", "transactionType": "CREATE", "contractName": "Credits1155", - "contractAddress": "0x1a9507b4404854b48164b209bfd0d4790b609762", + "contractAddress": "0x29c6f2022b97bf8503a64025dd4fafea5251756c", "function": null, "arguments": null, "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0x2edd3a", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x5bead2", "value": "0x0", - "input": "0x608060405234801562000010575f80fd5b506200001b62000021565b620000d5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d25780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61293c80620000e35f395ff3fe6080604052600436106101fe575f3560e01c80637eb802b911610113578063c5efaae81161009d578063e30c39781161006d578063e30c397814610624578063e985e9c514610638578063f242432a14610657578063f2fde38b14610676578063f5298aca14610695575f80fd5b8063c5efaae8146105b9578063c9f18ebd146105cc578063d1b53b9c146105eb578063d547741f14610605575f80fd5b8063a22cb465116100e3578063a22cb465146104ff578063a7fd40bf1461051e578063ad77bc401461053d578063b13bfa9114610551578063bd85b0391461056f575f80fd5b80637eb802b9146104825780638da5cb5b146104a157806391d14854146104cd578063a217fddf146104ec575f80fd5b806336568abe116101945780634f558e79116101645780634f558e79146103d05780636b20c4541461041c578063715018a61461043b57806379ba50971461044f5780637ab4339d14610463575f80fd5b806336568abe14610347578063401d4482146103665780634b844a1d146103855780634e1273f4146103a4575f80fd5b806318160ddd116101cf57806318160ddd146102b7578063248a9ca3146102ea5780632eb2c2d6146103095780632f2ff15d14610328575f80fd5b8062fdd58e1461020957806301ffc9a71461023b5780630e89341c1461026a578063116039ae14610296575f80fd5b3661020557005b5f80fd5b348015610214575f80fd5b50610228610223366004611ea2565b6106b4565b6040519081526020015b60405180910390f35b348015610246575f80fd5b5061025a610255366004611ee1565b6106e9565b6040519015158152602001610232565b348015610275575f80fd5b50610289610284366004611f03565b6106f3565b6040516102329190611f67565b3480156102a1575f80fd5b506102b56102b0366004611f79565b6107b5565b005b3480156102c2575f80fd5b507f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e280154610228565b3480156102f5575f80fd5b50610228610304366004611f03565b610a30565b348015610314575f80fd5b506102b5610323366004612141565b610a50565b348015610333575f80fd5b506102b56103423660046121e7565b610ab7565b348015610352575f80fd5b506102b56103613660046121e7565b610ad9565b348015610371575f80fd5b506102b5610380366004611ea2565b610b11565b348015610390575f80fd5b5061022861039f366004611f03565b610bc8565b3480156103af575f80fd5b506103c36103be366004612215565b610bda565b604051610232919061230a565b3480156103db575f80fd5b5061025a6103ea366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e28006020526040902054151590565b348015610427575f80fd5b506102b561043636600461231c565b610ca4565b348015610446575f80fd5b506102b5610d03565b34801561045a575f80fd5b506102b5610d16565b34801561046e575f80fd5b506102b561047d36600461238c565b610d5e565b34801561048d575f80fd5b506102b561049c3660046123cf565b610e8a565b3480156104ac575f80fd5b506104b5610ee0565b6040516001600160a01b039091168152602001610232565b3480156104d8575f80fd5b5061025a6104e73660046121e7565b610f14565b3480156104f7575f80fd5b506102285f81565b34801561050a575f80fd5b506102b56105193660046123ea565b610f4a565b348015610529575f80fd5b506102b561053836600461241a565b610f59565b348015610548575f80fd5b50610228600181565b34801561055c575f80fd5b505f546104b5906001600160a01b031681565b34801561057a575f80fd5b50610228610589366004611f03565b5f9081527f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800602052604090205490565b6102b56105c7366004611ea2565b610f6c565b3480156105d7575f80fd5b506102b56105e6366004611f03565b610fda565b3480156105f6575f80fd5b5061022866016bcc41e9000081565b348015610610575f80fd5b506102b561061f3660046121e7565b611061565b34801561062f575f80fd5b506104b561107d565b348015610643575f80fd5b5061025a610652366004612453565b6110a5565b348015610662575f80fd5b506102b561067136600461247f565b6110f1565b348015610681575f80fd5b506102b56106903660046123cf565b611150565b3480156106a0575f80fd5b506102b56106af3660046124e2565b6111d5565b5f8181525f805160206128c7833981519152602090815260408083206001600160a01b03861684529091529020545b92915050565b5f6106e38261120b565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450280546060915f805160206128c78339815191529161073190612514565b80601f016020809104026020016040519081016040528092919081815260200182805461075d90612514565b80156107a85780601f1061077f576101008083540402835291602001916107a8565b820191905f5260205f20905b81548152906001019060200180831161078b57829003601f168201915b5050505050915050919050565b846001600160a01b03163b5f036107df57604051633e07d28560e11b815260040160405180910390fd5b8460018410156108025760405163ea54cbb360e01b815260040160405180910390fd5b60405163463d31d760e11b8152600481018690525f906001600160a01b03831690638c7a63ae906024015f60405180830381865afa158015610846573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261086d919081019061254c565b8051519091505f0361089a5760405163282dcfa760e11b8152600481018790526024015b60405180910390fd5b5f6108a63360016106b4565b9050808611156108d35760405163cffb3e6960e01b81526004810187905260248101829052604401610891565b6108df3360018861124a565b5f6108e987610bc8565b6040805160018082528183019092529192505f91906020808301908036833701905050905085815f81518110610921576109216125fe565b6001600160a01b039092166020928302919091018201526040515f91610958918a91016001600160a01b0391909116815260200190565b60408051601f19818403018152908290525f54631acf898160e11b83529092506001600160a01b038089169263359f13029287926109a3929116908f908f9089908990600401612612565b5f604051808303818588803b1580156109ba575f80fd5b505af11580156109cc573d5f803e3d5ffd5b5050604080518d8152602081018e90529081018790526001600160a01b03808c1694508c1692508d91507f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139929060600160405180910390a45050505050505050505050565b5f9081525f805160206128e7833981519152602052604090206001015490565b336001600160a01b0386168114801590610a715750610a6f86826110a5565b155b15610aa25760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866112b7565b505050505050565b610ac082610a30565b610ac981611315565b610ad3838361131f565b50505050565b6001600160a01b0381163314610b025760405163334bd91960e11b815260040160405180910390fd5b610b0c82826113c0565b505050565b5f610b1b81611315565b6001600160a01b038316610b4257604051633a19ac6f60e11b815260040160405180910390fd5b4780831115610b6e5760405163671123bf60e11b81526004810184905260248101829052604401610891565b610b816001600160a01b03851684611439565b6040518381526001600160a01b0385169033907f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0906020015b60405180910390a350505050565b5f6106e38266016bcc41e900006126a1565b60608151835114610c0b5781518351604051635b05999160e01b815260048101929092526024820152604401610891565b5f83516001600160401b03811115610c2557610c25611fd4565b604051908082528060200260200182016040528015610c4e578160200160208202803683370190505b5090505f5b8451811015610c9c57602080820286010151610c77906020808402870101516106b4565b828281518110610c8957610c896125fe565b6020908102919091010152600101610c53565b509392505050565b6001600160a01b0383163314801590610cc45750610cc283336110a5565b155b15610cf857335b60405163711bec9160e11b81526001600160a01b0391821660048201529084166024820152604401610891565b610b0c8383836114c5565b610d0b611508565b610d145f61153a565b565b3380610d2061107d565b6001600160a01b031614610d525760405163118cdaa760e01b81526001600160a01b0382166004820152602401610891565b610d5b8161153a565b50565b5f610d67611572565b805490915060ff600160401b82041615906001600160401b03165f81158015610d8d5750825b90505f826001600160401b03166001148015610da85750303b155b905081158015610db6575080155b15610dd45760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dfe57845460ff60401b1916600160401b1785555b610e078761159a565b610e10336115ab565b610e186115bc565b610e225f3361131f565b506001600160a01b03861615610e3b57610e3b86610e8a565b8315610e8157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b5f610e9481611315565b816001600160a01b03163b5f03610ebe57604051633e07d28560e11b815260040160405180910390fd5b505f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b5f9182525f805160206128e7833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610f553383836115c4565b5050565b5f610f6381611315565b610f5582611660565b5f610f7682610bc8565b905080341015610fa257604051633644fa3b60e01b815260048101829052346024820152604401610891565b610fbd8360018460405180602001604052805f815250611699565b5f610fc882346126b8565b90508015610ad357610ad33382611439565b5f610fe63360016106b4565b9050818110156110135760405163cffb3e6960e01b81526004810183905260248101829052604401610891565b5f61101d83610bc8565b9050478181101561104b5760405163671123bf60e11b81526004810183905260248101829052604401610891565b6110573360018661124a565b610ad33383611439565b61106a82610a30565b61107381611315565b610ad383836113c0565b5f807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00610f04565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386168114801590611112575061111086826110a5565b155b156111435760405163711bec9160e11b81526001600160a01b03808316600483015287166024820152604401610891565b610aaf86868686866116f4565b611158611508565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b038316908117825561119c610ee0565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6001600160a01b03831633148015906111f557506111f383336110a5565b155b156112005733610ccb565b610b0c83838361124a565b5f6001600160e01b03198216636cdb3d1360e11b148061123b57506001600160e01b031982166303a24d0760e21b145b806106e357506106e382611777565b6001600160a01b03831661127257604051626a0d4560e21b81525f6004820152602401610891565b604080516001808252602082018590528183019081526060820184905260a082019092525f608082018181529192916112b0918791859085906117ab565b5050505050565b6001600160a01b0384166112e057604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661130857604051626a0d4560e21b81525f6004820152602401610891565b6112b085858585856117ab565b610d5b81336117fe565b5f5f805160206128e78339815191526113388484610f14565b6113b7575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561136d3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019150506106e3565b5f9150506106e3565b5f5f805160206128e78339815191526113d98484610f14565b156113b7575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a460019150506106e3565b804710156114635760405163cf47918160e01b815247600482015260248101829052604401610891565b5f80836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146114ad576040519150601f19603f3d011682016040523d82523d5f602084013e6114b2565b606091505b509150915081610ad357610ad381611837565b6001600160a01b0383166114ed57604051626a0d4560e21b81525f6004820152602401610891565b610b0c835f848460405180602001604052805f8152506117ab565b33611511610ee0565b6001600160a01b031614610d145760405163118cdaa760e01b8152336004820152602401610891565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319168155610f5582611860565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106e3565b6115a26118d0565b610d5b816118f5565b6115b36118d0565b610d5b81611906565b610d146118d0565b5f805160206128c78339815191526001600160a01b0383166115fa5760405162ced3e160e81b81525f6004820152602401610891565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319101610bba565b5f805160206128c78339815191527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502610b0c838261270f565b6001600160a01b0384166116c257604051632bfa23e760e11b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610aaf5f878484876117ab565b6001600160a01b03841661171d57604051632bfa23e760e11b81525f6004820152602401610891565b6001600160a01b03851661174557604051626a0d4560e21b81525f6004820152602401610891565b60408051600180825260208201869052818301908152606082018590526080820190925290610e8187878484876117ab565b5f6001600160e01b03198216637965db0b60e01b14806106e357506301ffc9a760e01b6001600160e01b03198316146106e3565b6117b785858585611937565b6001600160a01b038416156112b057825133906001036117f057602084810151908401516117e9838989858589611943565b5050610aaf565b610aaf818787878787611a64565b6118088282610f14565b610f555760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610891565b8051156118475780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6118d8611b4b565b610d1457604051631afcd79f60e31b815260040160405180910390fd5b6118fd6118d0565b610d5b81611660565b61190e6118d0565b6001600160a01b038116610d5257604051631e4fbdf760e01b81525f6004820152602401610891565b610ad384848484611b64565b6001600160a01b0384163b15610aaf5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061198790899089908890889088906004016127ca565b6020604051808303815f875af19250505080156119c1575060408051601f3d908101601f191682019092526119be9181019061280e565b60015b611a28573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b606091505b5080515f03611a2057604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b805181602001fd5b6001600160e01b0319811663f23a6e6160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b6001600160a01b0384163b15610aaf5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611aa89089908990889088908890600401612829565b6020604051808303815f875af1925050508015611ae2575060408051601f3d908101601f19168201909252611adf9181019061280e565b60015b611b0f573d8080156119ee576040519150601f19603f3d011682016040523d82523d5f602084013e6119f3565b6001600160e01b0319811663bc197c8160e01b14610e8157604051632bfa23e760e11b81526001600160a01b0386166004820152602401610891565b5f611b54611572565b54600160401b900460ff16919050565b7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800611b9185858585611c6f565b6001600160a01b038516611c0f575f805b8451811015611bf45760208181028581018201519087018201515f9081529185905260408220805491928392611bd9908490612886565b90915550611be990508184612886565b925050600101611ba2565b5080826001015f828254611c089190612886565b9091555050505b6001600160a01b0384166112b0575f805b8451811015611c5b5760208181028581018201519087018201515f908152918590526040909120805482900390559190910190600101611c20565b506001820180549190910390555050505050565b805182515f805160206128c78339815191529114611cad5782518251604051635b05999160e01b815260048101929092526024820152604401610891565b335f5b8451811015611daf576020818102868101820151908601909101516001600160a01b03891615611d61575f828152602086815260408083206001600160a01b038d16845290915290205481811015611d3b576040516303dee4c560e01b81526001600160a01b038b166004820152602481018290526044810183905260648101849052608401610891565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b03881615611da5575f828152602086815260408083206001600160a01b038c16845290915281208054839290611d9f908490612886565b90915550505b5050600101611cb0565b508351600103611e2f5760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611e20929190918252602082015260400190565b60405180910390a45050610aaf565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611e7e929190612899565b60405180910390a4505050505050565b6001600160a01b0381168114610d5b575f80fd5b5f8060408385031215611eb3575f80fd5b8235611ebe81611e8e565b946020939093013593505050565b6001600160e01b031981168114610d5b575f80fd5b5f60208284031215611ef1575f80fd5b8135611efc81611ecc565b9392505050565b5f60208284031215611f13575f80fd5b5035919050565b5f5b83811015611f34578181015183820152602001611f1c565b50505f910152565b5f8151808452611f53816020860160208601611f1a565b601f01601f19169290920160200192915050565b602081525f611efc6020830184611f3c565b5f805f805f60a08688031215611f8d575f80fd5b8535611f9881611e8e565b945060208601359350604086013592506060860135611fb681611e8e565b91506080860135611fc681611e8e565b809150509295509295909350565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561200a5761200a611fd4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561203857612038611fd4565b604052919050565b5f6001600160401b0382111561205857612058611fd4565b5060051b60200190565b5f82601f830112612071575f80fd5b8135602061208661208183612040565b612010565b8083825260208201915060208460051b8701019350868411156120a7575f80fd5b602086015b848110156120c357803583529183019183016120ac565b509695505050505050565b5f6001600160401b038211156120e6576120e6611fd4565b50601f01601f191660200190565b5f82601f830112612103575f80fd5b8135612111612081826120ce565b818152846020838601011115612125575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f60a08688031215612155575f80fd5b853561216081611e8e565b9450602086013561217081611e8e565b935060408601356001600160401b038082111561218b575f80fd5b61219789838a01612062565b945060608801359150808211156121ac575f80fd5b6121b889838a01612062565b935060808801359150808211156121cd575f80fd5b506121da888289016120f4565b9150509295509295909350565b5f80604083850312156121f8575f80fd5b82359150602083013561220a81611e8e565b809150509250929050565b5f8060408385031215612226575f80fd5b82356001600160401b038082111561223c575f80fd5b818501915085601f83011261224f575f80fd5b8135602061225f61208183612040565b82815260059290921b8401810191818101908984111561227d575f80fd5b948201945b838610156122a457853561229581611e8e565b82529482019490820190612282565b965050860135925050808211156122b9575f80fd5b506122c685828601612062565b9150509250929050565b5f815180845260208085019450602084015f5b838110156122ff578151875295820195908201906001016122e3565b509495945050505050565b602081525f611efc60208301846122d0565b5f805f6060848603121561232e575f80fd5b833561233981611e8e565b925060208401356001600160401b0380821115612354575f80fd5b61236087838801612062565b93506040860135915080821115612375575f80fd5b5061238286828701612062565b9150509250925092565b5f806040838503121561239d575f80fd5b82356001600160401b038111156123b2575f80fd5b6123be858286016120f4565b925050602083013561220a81611e8e565b5f602082840312156123df575f80fd5b8135611efc81611e8e565b5f80604083850312156123fb575f80fd5b823561240681611e8e565b91506020830135801515811461220a575f80fd5b5f6020828403121561242a575f80fd5b81356001600160401b0381111561243f575f80fd5b61244b848285016120f4565b949350505050565b5f8060408385031215612464575f80fd5b823561246f81611e8e565b9150602083013561220a81611e8e565b5f805f805f60a08688031215612493575f80fd5b853561249e81611e8e565b945060208601356124ae81611e8e565b9350604086013592506060860135915060808601356001600160401b038111156124d6575f80fd5b6121da888289016120f4565b5f805f606084860312156124f4575f80fd5b83356124ff81611e8e565b95602085013595506040909401359392505050565b600181811c9082168061252857607f821691505b60208210810361254657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602080838503121561255d575f80fd5b82516001600160401b0380821115612573575f80fd5b9084019060608287031215612586575f80fd5b61258e611fe8565b82518281111561259c575f80fd5b83019150601f820187136125ae575f80fd5b81516125bc612081826120ce565b81815288868386010111156125cf575f80fd5b6125de82878301888701611f1a565b825250828401519381019390935250604090810151908201529392505050565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820160018060a01b038089168452602088602086015287604086015260a0606086015282875180855260c0870191506020890194505f5b8181101561266a57855185168352948301949183019160010161264c565b5050858103608087015261267e8188611f3c565b9b9a5050505050505050505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176106e3576106e361268d565b818103818111156106e3576106e361268d565b601f821115610b0c57805f5260205f20601f840160051c810160208510156126f05750805b601f840160051c820191505b818110156112b0575f81556001016126fc565b81516001600160401b0381111561272857612728611fd4565b61273c816127368454612514565b846126cb565b602080601f83116001811461276f575f84156127585750858301515b5f19600386901b1c1916600185901b178555610aaf565b5f85815260208120601f198616915b8281101561279d5788860151825594840194600190910190840161277e565b50858210156127ba57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061280390830184611f3c565b979650505050505050565b5f6020828403121561281e575f80fd5b8151611efc81611ecc565b6001600160a01b0386811682528516602082015260a0604082018190525f90612854908301866122d0565b828103606084015261286681866122d0565b9050828103608084015261287a8185611f3c565b98975050505050505050565b808201808211156106e3576106e361268d565b604081525f6128ab60408301856122d0565b82810360208401526128bd81856122d0565b9594505050505056fe88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220705f2a39cbbda6054e9ea513adb54ebab3bfe8485e890c135b7b88701047a4c164736f6c63430008170033", - "nonce": "0x1e", + "input": "0x608060405234801561000f575f5ffd5b5061001e61002360201b60201c565b61019e565b5f61003261012160201b60201c565b9050805f0160089054906101000a900460ff161561007c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff161461011e5767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516101159190610185565b60405180910390a15b50565b5f5f61013161013a60201b60201c565b90508091505090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b5f67ffffffffffffffff82169050919050565b61017f81610163565b82525050565b5f6020820190506101985f830184610176565b92915050565b615285806101ab5f395ff3fe608060405260043610610231575f3560e01c80637eb802b91161012d578063c9f18ebd116100aa578063e985e9c51161006e578063e985e9c51461081e578063f242432a1461085a578063f2fde38b14610882578063f45caae3146108aa578063f5298aca146108d457610238565b8063c9f18ebd14610752578063d1b53b9c1461077a578063d547741f146107a4578063e30c3978146107cc578063e74f4e76146107f657610238565b8063a7fd40bf116100f1578063a7fd40bf1461067e578063ad77bc40146106a6578063b13bfa91146106d0578063bd85b039146106fa578063c5efaae81461073657610238565b80637eb802b91461059e5780638da5cb5b146105c657806391d14854146105f0578063a217fddf1461062c578063a22cb4651461065657610238565b806336568abe116101bb5780634f558e791161017f5780634f558e79146104e65780636b20c454146105225780636ebbcb591461054a578063715018a61461057257806379ba50971461058857610238565b806336568abe146103f6578063401d44821461041e578063463fd1af146104465780634b844a1d1461046e5780634e1273f4146104aa57610238565b8063116039ae11610202578063116039ae1461031857806318160ddd14610340578063248a9ca31461036a5780632eb2c2d6146103a65780632f2ff15d146103ce57610238565b80622311681461023c578062fdd58e1461026457806301ffc9a7146102a05780630e89341c146102dc57610238565b3661023857005b5f5ffd5b348015610247575f5ffd5b50610262600480360381019061025d9190613928565b6108fc565b005b34801561026f575f5ffd5b5061028a60048036038101906102859190613a2b565b610a6a565b6040516102979190613a78565b60405180910390f35b3480156102ab575f5ffd5b506102c660048036038101906102c19190613ae6565b610acd565b6040516102d39190613b2b565b60405180910390f35b3480156102e7575f5ffd5b5061030260048036038101906102fd9190613b44565b610ade565b60405161030f9190613bcf565b60405180910390f35b348015610323575f5ffd5b5061033e60048036038101906103399190613c2a565b610b7e565b005b34801561034b575f5ffd5b50610354610f09565b6040516103619190613a78565b60405180910390f35b348015610375575f5ffd5b50610390600480360381019061038b9190613cd4565b610f20565b60405161039d9190613d0e565b60405180910390f35b3480156103b1575f5ffd5b506103cc60048036038101906103c79190613de7565b610f4a565b005b3480156103d9575f5ffd5b506103f460048036038101906103ef9190613eb2565b610ff1565b005b348015610401575f5ffd5b5061041c60048036038101906104179190613eb2565b611013565b005b348015610429575f5ffd5b50610444600480360381019061043f9190613ef0565b61108e565b005b348015610451575f5ffd5b5061046c60048036038101906104679190613fcc565b6111de565b005b348015610479575f5ffd5b50610494600480360381019061048f9190613b44565b6113f9565b6040516104a19190613a78565b60405180910390f35b3480156104b5575f5ffd5b506104d060048036038101906104cb91906140f8565b611414565b6040516104dd9190614225565b60405180910390f35b3480156104f1575f5ffd5b5061050c60048036038101906105079190613b44565b61151e565b6040516105199190613b2b565b60405180910390f35b34801561052d575f5ffd5b5061054860048036038101906105439190614245565b611531565b005b348015610555575f5ffd5b50610570600480360381019061056b91906142cd565b6115dd565b005b34801561057d575f5ffd5b5061058661167f565b005b348015610593575f5ffd5b5061059c611692565b005b3480156105a9575f5ffd5b506105c460048036038101906105bf91906142cd565b611720565b005b3480156105d1575f5ffd5b506105da6117c1565b6040516105e79190614307565b60405180910390f35b3480156105fb575f5ffd5b5061061660048036038101906106119190613eb2565b6117f6565b6040516106239190613b2b565b60405180910390f35b348015610637575f5ffd5b50610640611867565b60405161064d9190613d0e565b60405180910390f35b348015610661575f5ffd5b5061067c6004803603810190610677919061434a565b61186d565b005b348015610689575f5ffd5b506106a4600480360381019061069f9190614388565b611883565b005b3480156106b1575f5ffd5b506106ba61189c565b6040516106c79190613a78565b60405180910390f35b3480156106db575f5ffd5b506106e46118a1565b6040516106f1919061442a565b60405180910390f35b348015610705575f5ffd5b50610720600480360381019061071b9190613b44565b6118c5565b60405161072d9190613a78565b60405180910390f35b610750600480360381019061074b9190613a2b565b6118ec565b005b34801561075d575f5ffd5b5061077860048036038101906107739190613b44565b6119a1565b005b348015610785575f5ffd5b5061078e611a8a565b60405161079b9190613a78565b60405180910390f35b3480156107af575f5ffd5b506107ca60048036038101906107c59190613eb2565b611a95565b005b3480156107d7575f5ffd5b506107e0611ab7565b6040516107ed9190614307565b60405180910390f35b348015610801575f5ffd5b5061081c60048036038101906108179190614490565b611aec565b005b348015610829575f5ffd5b50610844600480360381019061083f919061455d565b611c3c565b6040516108519190613b2b565b60405180910390f35b348015610865575f5ffd5b50610880600480360381019061087b919061459b565b611cd8565b005b34801561088d575f5ffd5b506108a860048036038101906108a391906142cd565b611d7f565b005b3480156108b5575f5ffd5b506108be611e38565b6040516108cb919061464e565b60405180910390f35b3480156108df575f5ffd5b506108fa60048036038101906108f59190614667565b611e5d565b005b60015f61090a336001610a6a565b9050808211156109535781816040517fcffb3e6900000000000000000000000000000000000000000000000000000000815260040161094a9291906146b7565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f8173ffffffffffffffffffffffffffffffffffffffff163b036109c5576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109d133600180611f09565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324856bc366016bcc41e9000087876040518463ffffffff1660e01b8152600401610a35929190614833565b5f604051808303818588803b158015610a4c575f5ffd5b505af1158015610a5e573d5f5f3e3d5ffd5b50505050505050505050565b5f5f610a74611fab565b9050805f015f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b5f610ad782611fd2565b9050919050565b60605f610ae9611fab565b9050806002018054610afa90614895565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2690614895565b8015610b715780601f10610b4857610100808354040283529160200191610b71565b820191905f5260205f20905b815481529060010190602001808311610b5457829003601f168201915b5050505050915050919050565b825f610b8b336001610a6a565b905080821115610bd45781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610bcb9291906146b7565b60405180910390fd5b865f8173ffffffffffffffffffffffffffffffffffffffff163b03610c25576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8890506001871015610c64576040517fea54cbb300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff16638c7a63ae8a6040518263ffffffff1660e01b8152600401610c9e9190613a78565b5f60405180830381865afa158015610cb8573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610ce091906149cc565b90505f815f01515103610d2a57886040517f505b9f4e000000000000000000000000000000000000000000000000000000008152600401610d219190613a78565b60405180910390fd5b610d363360018a611f09565b5f610d40896113f9565b90505f600167ffffffffffffffff811115610d5e57610d5d613722565b5b604051908082528060200260200182016040528015610d8c5781602001602082028036833780820191505090505b50905087815f81518110610da357610da2614a13565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f89604051602001610def9190614307565b60405160208183030381529060405290508473ffffffffffffffffffffffffffffffffffffffff1663359f1302845f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168f8f87876040518763ffffffff1660e01b8152600401610e62959493929190614af7565b5f604051808303818588803b158015610e79575f5ffd5b505af1158015610e8b573d5f5f3e3d5ffd5b50505050508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff168d7f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139928e8f88604051610ef293929190614b56565b60405180910390a450505050505050505050505050565b5f5f610f136120b3565b9050806001015491505090565b5f5f610f2a6120da565b9050805f015f8481526020019081526020015f2060010154915050919050565b5f610f53612101565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610f985750610f968682611c3c565b155b15610fdc5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610fd3929190614b8b565b60405180910390fd5b610fe98686868686612108565b505050505050565b610ffa82610f20565b611003816121fc565b61100d8383612210565b50505050565b61101b612101565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461107f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110898282612308565b505050565b5f5f1b61109a816121fc565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ff576040517f743358de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f4790508083111561114a5782816040517fce22477e0000000000000000000000000000000000000000000000000000000081526004016111419291906146b7565b60405180910390fd5b611173838573ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0856040516111d09190613a78565b60405180910390a350505050565b5f6111e76124c6565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff1614801561122f5750825b90505f60018367ffffffffffffffff1614801561126257505f3073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015611270575080155b156112a7576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156112f4576001855f0160086101000a81548160ff0219169083151502179055505b6112fd886124d9565b611306336124ed565b61130e612501565b61131a5f5f1b33612210565b505f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146113585761135787611720565b5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461139557611394866115dd565b5b83156113ef575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516113e69190614bfe565b60405180910390a15b5050505050505050565b5f8166016bcc41e9000061140d9190614c44565b9050919050565b6060815183511461146057815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016114579291906146b7565b60405180910390fd5b5f835167ffffffffffffffff81111561147c5761147b613722565b5b6040519080825280602002602001820160405280156114aa5781602001602082028036833780820191505090505b5090505f5f90505b8451811015611513576114e96114d1828761250b90919063ffffffff16565b6114e4838761251e90919063ffffffff16565b610a6a565b8282815181106114fc576114fb614a13565b5b6020026020010181815250508060010190506114b2565b508091505092915050565b5f5f611529836118c5565b119050919050565b611539612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561158257506115808361157b612101565b611c3c565b155b156115cd5761158f612101565b836040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016115c4929190614b8b565b60405180910390fd5b6115d8838383612531565b505050565b5f5f1b6115e9816121fc565b815f8173ffffffffffffffffffffffffffffffffffffffff163b0361163a576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6116876125c1565b6116905f612648565b565b5f61169b612101565b90508073ffffffffffffffffffffffffffffffffffffffff166116bc611ab7565b73ffffffffffffffffffffffffffffffffffffffff161461171457806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161170b9190614307565b60405180910390fd5b61171d81612648565b50565b5f5f1b61172c816121fc565b815f8173ffffffffffffffffffffffffffffffffffffffff163b0361177d576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b5f5f6117cb612685565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f6118006120da565b9050805f015f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f5f1b81565b61187f611878612101565b83836126ac565b5050565b5f5f1b61188f816121fc565b61189882612823565b5050565b600181565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6118cf6120b3565b9050805f015f8481526020019081526020015f2054915050919050565b5f6118f6826113f9565b90508034101561193f5780346040517f3644fa3b0000000000000000000000000000000000000000000000000000000081526004016119369291906146b7565b60405180910390fd5b61195a8360018460405180602001604052805f815250612844565b5f81346119679190614c85565b90505f81111561199b5761199a813373ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b5b50505050565b805f6119ae336001610a6a565b9050808211156119f75781816040517fcffb3e690000000000000000000000000000000000000000000000000000000081526004016119ee9291906146b7565b60405180910390fd5b5f611a01846113f9565b90505f47905081811015611a4e5781816040517fce22477e000000000000000000000000000000000000000000000000000000008152600401611a459291906146b7565b60405180910390fd5b611a5a33600187611f09565b611a83823373ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b5050505050565b66016bcc41e9000081565b611a9e82610f20565b611aa7816121fc565b611ab18383612308565b50505050565b5f5f611ac16128d9565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60015f611afa336001610a6a565b905080821115611b435781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401611b3a9291906146b7565b60405180910390fd5b895f8173ffffffffffffffffffffffffffffffffffffffff163b03611b94576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ba033600180611f09565b8a73ffffffffffffffffffffffffffffffffffffffff1663472e649066016bcc41e900008c8c8c8c8c8c8c6040518963ffffffff1660e01b8152600401611bed9796959493929190614d3a565b60206040518083038185885af1158015611c09573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c2e9190614dae565b505050505050505050505050565b5f5f611c46611fab565b9050806001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f611ce1612101565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611d265750611d248682611c3c565b155b15611d6a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611d61929190614b8b565b60405180910390fd5b611d778686868686612900565b505050505050565b611d876125c1565b5f611d906128d9565b905081815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16611df26117c1565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e65612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611eae5750611eac83611ea7612101565b611c3c565b155b15611ef957611ebb612101565b836040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611ef0929190614b8b565b60405180910390fd5b611f04838383611f09565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f79575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611f709190614307565b60405180910390fd5b5f5f611f858484612a06565b91509150611fa4855f848460405180602001604052805f815250612a36565b5050505050565b5f7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500905090565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061209c57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806120ac57506120ab82612ae2565b5b9050919050565b5f7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800905090565b5f7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612178575f6040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161216f9190614307565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036121e8575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016121df9190614307565b60405180910390fd5b6121f58585858585612a36565b5050505050565b61220d81612208612101565b612b5b565b50565b5f5f61221a6120da565b905061222684846117f6565b6122fd576001815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612299612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050612302565b5f9150505b92915050565b5f5f6123126120da565b905061231e84846117f6565b156123f5575f815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612391612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019150506123fa565b5f9150505b92915050565b804710156124475747816040517fcf47918100000000000000000000000000000000000000000000000000000000815260040161243e9291906146b7565b60405180910390fd5b5f5f8373ffffffffffffffffffffffffffffffffffffffff168360405161246d90614e06565b5f6040518083038185875af1925050503d805f81146124a7576040519150601f19603f3d011682016040523d82523d5f602084013e6124ac565b606091505b5091509150816124c0576124bf81612bac565b5b50505050565b5f5f6124d0612bf0565b90508091505090565b6124e1612c19565b6124ea81612c59565b50565b6124f5612c19565b6124fe81612c6d565b50565b612509612c19565b565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125a1575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016125989190614307565b60405180910390fd5b6125bc835f848460405180602001604052805f815250612a36565b505050565b6125c9612101565b73ffffffffffffffffffffffffffffffffffffffff166125e76117c1565b73ffffffffffffffffffffffffffffffffffffffff16146126465761260a612101565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161263d9190614307565b60405180910390fd5b565b5f6126516128d9565b9050805f015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561268182612cf1565b5050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f6126b5611fab565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612727575f6040517fced3e10000000000000000000000000000000000000000000000000000000000815260040161271e9190614307565b60405180910390fd5b81816001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31846040516128159190613b2b565b60405180910390a350505050565b5f61282c611fab565b90508181600201908161283f9190614fb1565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036128b4575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016128ab9190614307565b60405180910390fd5b5f5f6128c08585612a06565b915091506128d15f87848487612a36565b505050505050565b5f7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612970575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016129679190614307565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036129e0575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016129d79190614307565b60405180910390fd5b5f5f6129ec8585612a06565b915091506129fd8787848487612a36565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b612a4285858585612dc2565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612adb575f612a7e612101565b90506001845103612aca575f612a9d5f8661251e90919063ffffffff16565b90505f612ab35f8661251e90919063ffffffff16565b9050612ac3838989858589612dd4565b5050612ad9565b612ad8818787878787612f83565b5b505b5050505050565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612b545750612b5382613132565b5b9050919050565b612b6582826117f6565b612ba85780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612b9f929190615080565b60405180910390fd5b5050565b5f81511115612bbe5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b612c2161319b565b612c57576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b612c61612c19565b612c6a81612823565b50565b612c75612c19565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ce5575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612cdc9190614307565b60405180910390fd5b612cee81612648565b50565b5f612cfa612685565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b612dce848484846131b9565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612f7b578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612e349594939291906150a7565b6020604051808303815f875af1925050508015612e6f57506040513d601f19601f82011682018060405250810190612e6c9190615113565b60015b612ef0573d805f8114612e9d576040519150601f19603f3d011682016040523d82523d5f602084013e612ea2565b606091505b505f815103612ee857846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612edf9190614307565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612f7957846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612f709190614307565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561312a578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612fe395949392919061513e565b6020604051808303815f875af192505050801561301e57506040513d601f19601f8201168201806040525081019061301b9190615113565b60015b61309f573d805f811461304c576040519150601f19603f3d011682016040523d82523d5f602084013e613051565b606091505b505f81510361309757846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161308e9190614307565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461312857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161311f9190614307565b60405180910390fd5b505b505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f6131a46124c6565b5f0160089054906101000a900460ff16905090565b5f6131c26120b3565b90506131d085858585613354565b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361329c575f5f90505f5f90505b845181101561327f575f613229828661251e90919063ffffffff16565b905080845f015f613243858a61251e90919063ffffffff16565b81526020019081526020015f205f82825461325e91906151a4565b92505081905550808361327191906151a4565b92505080600101905061320c565b5080826001015f82825461329391906151a4565b92505081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361334d575f5f90505f5f90505b8451811015613339575f6132f5828661251e90919063ffffffff16565b905080845f015f61330f858a61251e90919063ffffffff16565b81526020019081526020015f205f82825403925050819055508083019250508060010190506132d8565b5080826001015f8282540392505081905550505b5050505050565b5f61335d611fab565b905081518351146133a957825182516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016133a09291906146b7565b60405180910390fd5b5f6133b2612101565b90505f5f90505b84518110156135b7575f6133d6828761251e90919063ffffffff16565b90505f6133ec838761251e90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614613513575f855f015f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156134bd57898183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016134b494939291906151d7565b60405180910390fd5b818103865f015f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146135aa5780855f015f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546135a291906151a4565b925050819055505b50508060010190506133b9565b506001845103613672575f6135d55f8661251e90919063ffffffff16565b90505f6135eb5f8661251e90919063ffffffff16565b90508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516136639291906146b7565b60405180910390a450506136f1565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516136e892919061521a565b60405180910390a45b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61375882613712565b810181811067ffffffffffffffff8211171561377757613776613722565b5b80604052505050565b5f6137896136f9565b9050613795828261374f565b919050565b5f67ffffffffffffffff8211156137b4576137b3613722565b5b6137bd82613712565b9050602081019050919050565b828183375f83830152505050565b5f6137ea6137e58461379a565b613780565b9050828152602081018484840111156138065761380561370e565b5b6138118482856137ca565b509392505050565b5f82601f83011261382d5761382c61370a565b5b813561383d8482602086016137d8565b91505092915050565b5f67ffffffffffffffff8211156138605761385f613722565b5b602082029050602081019050919050565b5f5ffd5b5f61388761388284613846565b613780565b905080838252602082019050602084028301858111156138aa576138a9613871565b5b835b818110156138f157803567ffffffffffffffff8111156138cf576138ce61370a565b5b8086016138dc8982613819565b855260208501945050506020810190506138ac565b5050509392505050565b5f82601f83011261390f5761390e61370a565b5b813561391f848260208601613875565b91505092915050565b5f5f6040838503121561393e5761393d613702565b5b5f83013567ffffffffffffffff81111561395b5761395a613706565b5b61396785828601613819565b925050602083013567ffffffffffffffff81111561398857613987613706565b5b613994858286016138fb565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6139c78261399e565b9050919050565b6139d7816139bd565b81146139e1575f5ffd5b50565b5f813590506139f2816139ce565b92915050565b5f819050919050565b613a0a816139f8565b8114613a14575f5ffd5b50565b5f81359050613a2581613a01565b92915050565b5f5f60408385031215613a4157613a40613702565b5b5f613a4e858286016139e4565b9250506020613a5f85828601613a17565b9150509250929050565b613a72816139f8565b82525050565b5f602082019050613a8b5f830184613a69565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613ac581613a91565b8114613acf575f5ffd5b50565b5f81359050613ae081613abc565b92915050565b5f60208284031215613afb57613afa613702565b5b5f613b0884828501613ad2565b91505092915050565b5f8115159050919050565b613b2581613b11565b82525050565b5f602082019050613b3e5f830184613b1c565b92915050565b5f60208284031215613b5957613b58613702565b5b5f613b6684828501613a17565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f613ba182613b6f565b613bab8185613b79565b9350613bbb818560208601613b89565b613bc481613712565b840191505092915050565b5f6020820190508181035f830152613be78184613b97565b905092915050565b5f613bf98261399e565b9050919050565b613c0981613bef565b8114613c13575f5ffd5b50565b5f81359050613c2481613c00565b92915050565b5f5f5f5f5f60a08688031215613c4357613c42613702565b5b5f613c50888289016139e4565b9550506020613c6188828901613a17565b9450506040613c7288828901613a17565b9350506060613c83888289016139e4565b9250506080613c9488828901613c16565b9150509295509295909350565b5f819050919050565b613cb381613ca1565b8114613cbd575f5ffd5b50565b5f81359050613cce81613caa565b92915050565b5f60208284031215613ce957613ce8613702565b5b5f613cf684828501613cc0565b91505092915050565b613d0881613ca1565b82525050565b5f602082019050613d215f830184613cff565b92915050565b5f67ffffffffffffffff821115613d4157613d40613722565b5b602082029050602081019050919050565b5f613d64613d5f84613d27565b613780565b90508083825260208201905060208402830185811115613d8757613d86613871565b5b835b81811015613db05780613d9c8882613a17565b845260208401935050602081019050613d89565b5050509392505050565b5f82601f830112613dce57613dcd61370a565b5b8135613dde848260208601613d52565b91505092915050565b5f5f5f5f5f60a08688031215613e0057613dff613702565b5b5f613e0d888289016139e4565b9550506020613e1e888289016139e4565b945050604086013567ffffffffffffffff811115613e3f57613e3e613706565b5b613e4b88828901613dba565b935050606086013567ffffffffffffffff811115613e6c57613e6b613706565b5b613e7888828901613dba565b925050608086013567ffffffffffffffff811115613e9957613e98613706565b5b613ea588828901613819565b9150509295509295909350565b5f5f60408385031215613ec857613ec7613702565b5b5f613ed585828601613cc0565b9250506020613ee6858286016139e4565b9150509250929050565b5f5f60408385031215613f0657613f05613702565b5b5f613f1385828601613c16565b9250506020613f2485828601613a17565b9150509250929050565b5f67ffffffffffffffff821115613f4857613f47613722565b5b613f5182613712565b9050602081019050919050565b5f613f70613f6b84613f2e565b613780565b905082815260208101848484011115613f8c57613f8b61370e565b5b613f978482856137ca565b509392505050565b5f82601f830112613fb357613fb261370a565b5b8135613fc3848260208601613f5e565b91505092915050565b5f5f5f60608486031215613fe357613fe2613702565b5b5f84013567ffffffffffffffff81111561400057613fff613706565b5b61400c86828701613f9f565b935050602061401d868287016139e4565b925050604061402e868287016139e4565b9150509250925092565b5f67ffffffffffffffff82111561405257614051613722565b5b602082029050602081019050919050565b5f61407561407084614038565b613780565b9050808382526020820190506020840283018581111561409857614097613871565b5b835b818110156140c157806140ad88826139e4565b84526020840193505060208101905061409a565b5050509392505050565b5f82601f8301126140df576140de61370a565b5b81356140ef848260208601614063565b91505092915050565b5f5f6040838503121561410e5761410d613702565b5b5f83013567ffffffffffffffff81111561412b5761412a613706565b5b614137858286016140cb565b925050602083013567ffffffffffffffff81111561415857614157613706565b5b61416485828601613dba565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141a0816139f8565b82525050565b5f6141b18383614197565b60208301905092915050565b5f602082019050919050565b5f6141d38261416e565b6141dd8185614178565b93506141e883614188565b805f5b838110156142185781516141ff88826141a6565b975061420a836141bd565b9250506001810190506141eb565b5085935050505092915050565b5f6020820190508181035f83015261423d81846141c9565b905092915050565b5f5f5f6060848603121561425c5761425b613702565b5b5f614269868287016139e4565b935050602084013567ffffffffffffffff81111561428a57614289613706565b5b61429686828701613dba565b925050604084013567ffffffffffffffff8111156142b7576142b6613706565b5b6142c386828701613dba565b9150509250925092565b5f602082840312156142e2576142e1613702565b5b5f6142ef848285016139e4565b91505092915050565b614301816139bd565b82525050565b5f60208201905061431a5f8301846142f8565b92915050565b61432981613b11565b8114614333575f5ffd5b50565b5f8135905061434481614320565b92915050565b5f5f604083850312156143605761435f613702565b5b5f61436d858286016139e4565b925050602061437e85828601614336565b9150509250929050565b5f6020828403121561439d5761439c613702565b5b5f82013567ffffffffffffffff8111156143ba576143b9613706565b5b6143c684828501613f9f565b91505092915050565b5f819050919050565b5f6143f26143ed6143e88461399e565b6143cf565b61399e565b9050919050565b5f614403826143d8565b9050919050565b5f614414826143f9565b9050919050565b6144248161440a565b82525050565b5f60208201905061443d5f83018461441b565b92915050565b6002811061444f575f5ffd5b50565b5f8135905061446081614443565b92915050565b61446f8161399e565b8114614479575f5ffd5b50565b5f8135905061448a81614466565b92915050565b5f5f5f5f5f5f5f5f610100898b0312156144ad576144ac613702565b5b5f6144ba8b828c016139e4565b98505060206144cb8b828c016139e4565b97505060406144dc8b828c016139e4565b96505060606144ed8b828c016139e4565b955050608089013567ffffffffffffffff81111561450e5761450d613706565b5b61451a8b828c01613f9f565b94505060a061452b8b828c01614452565b93505060c061453c8b828c01613a17565b92505060e061454d8b828c0161447c565b9150509295985092959890939650565b5f5f6040838503121561457357614572613702565b5b5f614580858286016139e4565b9250506020614591858286016139e4565b9150509250929050565b5f5f5f5f5f60a086880312156145b4576145b3613702565b5b5f6145c1888289016139e4565b95505060206145d2888289016139e4565b94505060406145e388828901613a17565b93505060606145f488828901613a17565b925050608086013567ffffffffffffffff81111561461557614614613706565b5b61462188828901613819565b9150509295509295909350565b5f614638826143f9565b9050919050565b6146488161462e565b82525050565b5f6020820190506146615f83018461463f565b92915050565b5f5f5f6060848603121561467e5761467d613702565b5b5f61468b868287016139e4565b935050602061469c86828701613a17565b92505060406146ad86828701613a17565b9150509250925092565b5f6040820190506146ca5f830185613a69565b6146d76020830184613a69565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f614702826146de565b61470c81856146e8565b935061471c818560208601613b89565b61472581613712565b840191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f614773826146de565b61477d8185614759565b935061478d818560208601613b89565b61479681613712565b840191505092915050565b5f6147ac8383614769565b905092915050565b5f602082019050919050565b5f6147ca82614730565b6147d4818561473a565b9350836020820285016147e68561474a565b805f5b85811015614821578484038952815161480285826147a1565b945061480d836147b4565b925060208a019950506001810190506147e9565b50829750879550505050505092915050565b5f6040820190508181035f83015261484b81856146f8565b9050818103602083015261485f81846147c0565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806148ac57607f821691505b6020821081036148bf576148be614868565b5b50919050565b5f5ffd5b5f5ffd5b5f6148df6148da84613f2e565b613780565b9050828152602081018484840111156148fb576148fa61370e565b5b614906848285613b89565b509392505050565b5f82601f8301126149225761492161370a565b5b81516149328482602086016148cd565b91505092915050565b5f8151905061494981613a01565b92915050565b5f60608284031215614964576149636148c5565b5b61496e6060613780565b90505f82015167ffffffffffffffff81111561498d5761498c6148c9565b5b6149998482850161490e565b5f8301525060206149ac8482850161493b565b60208301525060406149c08482850161493b565b60408301525092915050565b5f602082840312156149e1576149e0613702565b5b5f82015167ffffffffffffffff8111156149fe576149fd613706565b5b614a0a8482850161494f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614a72816139bd565b82525050565b5f614a838383614a69565b60208301905092915050565b5f602082019050919050565b5f614aa582614a40565b614aaf8185614a4a565b9350614aba83614a5a565b805f5b83811015614aea578151614ad18882614a78565b9750614adc83614a8f565b925050600181019050614abd565b5085935050505092915050565b5f60a082019050614b0a5f83018861441b565b614b176020830187613a69565b614b246040830186613a69565b8181036060830152614b368185614a9b565b90508181036080830152614b4a81846146f8565b90509695505050505050565b5f606082019050614b695f830186613a69565b614b766020830185613a69565b614b836040830184613a69565b949350505050565b5f604082019050614b9e5f8301856142f8565b614bab60208301846142f8565b9392505050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f614be8614be3614bde84614bb2565b6143cf565b614bbb565b9050919050565b614bf881614bce565b82525050565b5f602082019050614c115f830184614bef565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614c4e826139f8565b9150614c59836139f8565b9250828202614c67816139f8565b91508282048414831517614c7e57614c7d614c17565b5b5092915050565b5f614c8f826139f8565b9150614c9a836139f8565b9250828203905081811115614cb257614cb1614c17565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110614cf657614cf5614cb8565b5b50565b5f819050614d0682614ce5565b919050565b5f614d1582614cf9565b9050919050565b614d2581614d0b565b82525050565b614d348161399e565b82525050565b5f60e082019050614d4d5f83018a6142f8565b614d5a60208301896142f8565b614d6760408301886142f8565b8181036060830152614d798187613b97565b9050614d886080830186614d1c565b614d9560a0830185613a69565b614da260c0830184614d2b565b98975050505050505050565b5f60208284031215614dc357614dc2613702565b5b5f614dd08482850161493b565b91505092915050565b5f81905092915050565b50565b5f614df15f83614dd9565b9150614dfc82614de3565b5f82019050919050565b5f614e1082614de6565b9150819050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614e767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614e3b565b614e808683614e3b565b95508019841693508086168417925050509392505050565b5f614eb2614ead614ea8846139f8565b6143cf565b6139f8565b9050919050565b5f819050919050565b614ecb83614e98565b614edf614ed782614eb9565b848454614e47565b825550505050565b5f5f905090565b614ef6614ee7565b614f01818484614ec2565b505050565b5b81811015614f2457614f195f82614eee565b600181019050614f07565b5050565b601f821115614f6957614f3a81614e1a565b614f4384614e2c565b81016020851015614f52578190505b614f66614f5e85614e2c565b830182614f06565b50505b505050565b5f82821c905092915050565b5f614f895f1984600802614f6e565b1980831691505092915050565b5f614fa18383614f7a565b9150826002028217905092915050565b614fba82613b6f565b67ffffffffffffffff811115614fd357614fd2613722565b5b614fdd8254614895565b614fe8828285614f28565b5f60209050601f831160018114615019575f8415615007578287015190505b6150118582614f96565b865550615078565b601f19841661502786614e1a565b5f5b8281101561504e57848901518255600182019150602085019450602081019050615029565b8683101561506b5784890151615067601f891682614f7a565b8355505b6001600288020188555050505b505050505050565b5f6040820190506150935f8301856142f8565b6150a06020830184613cff565b9392505050565b5f60a0820190506150ba5f8301886142f8565b6150c760208301876142f8565b6150d46040830186613a69565b6150e16060830185613a69565b81810360808301526150f381846146f8565b90509695505050505050565b5f8151905061510d81613abc565b92915050565b5f6020828403121561512857615127613702565b5b5f615135848285016150ff565b91505092915050565b5f60a0820190506151515f8301886142f8565b61515e60208301876142f8565b818103604083015261517081866141c9565b9050818103606083015261518481856141c9565b9050818103608083015261519881846146f8565b90509695505050505050565b5f6151ae826139f8565b91506151b9836139f8565b92508282019050808211156151d1576151d0614c17565b5b92915050565b5f6080820190506151ea5f8301876142f8565b6151f76020830186613a69565b6152046040830185613a69565b6152116060830184613a69565b95945050505050565b5f6040820190508181035f83015261523281856141c9565b9050818103602083015261524681846141c9565b9050939250505056fea26469706673582212202c607fe090de5b404fc5c3a5562b19ffe9d191a5fb90cec284cb58685f24247864736f6c634300081c0033", + "nonce": "0x2b", "chainId": "0x14a34" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", - "transactionType": "CREATE", - "contractName": "ProxyAdmin", - "contractAddress": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", - "function": null, - "arguments": [ - "0x3c10FAED26a6bb341322d1BAaf2c6ecf5B957D61" - ], - "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0x60734", - "value": "0x0", - "input": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c634300081700330000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "nonce": "0x1f", - "chainId": "0x14a34" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", + "hash": "0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2", "transactionType": "CREATE", "contractName": "TransparentUpgradeableProxy", - "contractAddress": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "contractAddress": "0xb3dd782fce60bcfbbef1ead56ef3a24a9c330a38", "function": null, "arguments": [ - "0x1a9507B4404854B48164B209bFd0d4790B609762", - "0x888FB1aa6EeC47D2B5db8dBcE68d00f294F95f08", - "0x7ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f00000000000000000000000000000000000000000000000000" + "0x29c6F2022b97bf8503A64025Dd4fafEa5251756C", + "0xaff4BE6F091274421f0Bf5a2F74eC368a2c017E8", + "0x463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae000000000000000000000000000000000000000000000000000000000000003061723a2f2f6f336e69366448543276316664613836313058676a58782d336a4775426234622d2d307066624f78726d7700000000000000000000000000000000" ], "transaction": { - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "gas": "0xeebd7", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x18c753", "value": "0x0", - "input": "0x60a060405260405162000e5038038062000e508339810160408190526200002691620003bc565b828162000034828262000099565b50508160405162000045906200035a565b6001600160a01b039091168152602001604051809103905ff0801580156200006f573d5f803e3d5ffd5b506001600160a01b0316608052620000906200008a60805190565b620000fe565b505050620004b3565b620000a4826200016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115620000f057620000eb8282620001ee565b505050565b620000fa62000267565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200013f5f8051602062000e30833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200016c8162000289565b50565b806001600160a01b03163b5f03620001aa57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b60605f80846001600160a01b0316846040516200020c919062000496565b5f60405180830381855af49150503d805f811462000246576040519150601f19603f3d011682016040523d82523d5f602084013e6200024b565b606091505b5090925090506200025e858383620002ca565b95945050505050565b3415620002875760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116620002b457604051633173bdd160e11b81525f6004820152602401620001a1565b805f8051602062000e30833981519152620001cd565b606082620002e357620002dd8262000330565b62000329565b8151158015620002fb57506001600160a01b0384163b155b156200032657604051639996b31560e01b81526001600160a01b0385166004820152602401620001a1565b50805b9392505050565b805115620003415780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104fc806200093483390190565b80516001600160a01b03811681146200037f575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003b45781810151838201526020016200039a565b50505f910152565b5f805f60608486031215620003cf575f80fd5b620003da8462000368565b9250620003ea6020850162000368565b60408501519092506001600160401b038082111562000407575f80fd5b818601915086601f8301126200041b575f80fd5b81518181111562000430576200043062000384565b604051601f8201601f19908116603f011681019083821181831017156200045b576200045b62000384565b8160405282815289602084870101111562000474575f80fd5b6200048783602083016020880162000398565b80955050505050509250925092565b5f8251620004a981846020870162000398565b9190910192915050565b608051610469620004cb5f395f601001526104695ff3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361007a575f356001600160e01b03191663278f794360e11b14610070576040516334ad5dbb60e21b815260040160405180910390fd5b610078610082565b565b6100786100b0565b5f806100913660048184610303565b81019061009e919061033e565b915091506100ac82826100c0565b5050565b6100786100bb61011a565b610151565b6100c98261016f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156101125761010d82826101ea565b505050565b6100ac61025c565b5f61014c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e80801561016b573d5ff35b3d5ffd5b806001600160a01b03163b5f036101a957604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516102069190610407565b5f60405180830381855af49150503d805f811461023e576040519150601f19603f3d011682016040523d82523d5f602084013e610243565b606091505b509150915061025385838361027b565b95945050505050565b34156100785760405163b398979f60e01b815260040160405180910390fd5b6060826102905761028b826102da565b6102d3565b81511580156102a757506001600160a01b0384163b155b156102d057604051639996b31560e01b81526001600160a01b03851660048201526024016101a0565b50805b9392505050565b8051156102ea5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b5f8085851115610311575f80fd5b8386111561031d575f80fd5b5050820193919092039150565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121561034f575f80fd5b82356001600160a01b0381168114610365575f80fd5b9150602083013567ffffffffffffffff80821115610381575f80fd5b818501915085601f830112610394575f80fd5b8135818111156103a6576103a661032a565b604051601f8201601f19908116603f011681019083821181831017156103ce576103ce61032a565b816040528281528860208487010111156103e6575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f82515f5b81811015610426576020818601810151858301520161040c565b505f92019182525091905056fea264697066735822122011de57fd4b44521ee974555595699df7e8ef5536966300e3722e17cc1200174664736f6c63430008170033608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61030000000000000000000000001a9507b4404854b48164b209bfd0d4790b609762000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000847ab4339d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x20", + "input": "0x60a06040526040516119d43803806119d483398181016040528101906100259190610708565b828161003782826100c160201b60201c565b50508160405161004690610554565b6100509190610783565b604051809103905ff080158015610069573d5f5f3e3d5ffd5b5073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506100b96100ae61014560201b60201c565b61014e60201b60201c565b50505061081d565b6100d0826101a660201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101325761012c828261027560201b60201c565b50610141565b6101406102fb60201b60201c565b5b5050565b5f608051905090565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61017d61033760201b60201c565b8260405161018c92919061079c565b60405180910390a16101a38161039060201b60201c565b50565b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361020157806040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526004016101f89190610783565b60405180910390fd5b806102337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff168460405161029e9190610807565b5f60405180830381855af49150503d805f81146102d6576040519150601f19603f3d011682016040523d82523d5f602084013e6102db565b606091505b50915091506102f185838361047d60201b60201c565b9250505092915050565b5f341115610335576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103697fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610400575f6040517f62e77ba20000000000000000000000000000000000000000000000000000000081526004016103f79190610783565b60405180910390fd5b806104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035f1b61047460201b60201c565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f819050919050565b606082610498576104938261051060201b60201c565b610508565b5f82511480156104be57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561050057836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104f79190610783565b60405180910390fd5b819050610509565b5b9392505050565b5f815111156105225780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109c68061100e83390190565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61059b82610572565b9050919050565b6105ab81610591565b81146105b5575f5ffd5b50565b5f815190506105c6816105a2565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61061a826105d4565b810181811067ffffffffffffffff82111715610639576106386105e4565b5b80604052505050565b5f61064b610561565b90506106578282610611565b919050565b5f67ffffffffffffffff821115610676576106756105e4565b5b61067f826105d4565b9050602081019050919050565b8281835e5f83830152505050565b5f6106ac6106a78461065c565b610642565b9050828152602081018484840111156106c8576106c76105d0565b5b6106d384828561068c565b509392505050565b5f82601f8301126106ef576106ee6105cc565b5b81516106ff84826020860161069a565b91505092915050565b5f5f5f6060848603121561071f5761071e61056a565b5b5f61072c868287016105b8565b935050602061073d868287016105b8565b925050604084015167ffffffffffffffff81111561075e5761075d61056e565b5b61076a868287016106db565b9150509250925092565b61077d81610591565b82525050565b5f6020820190506107965f830184610774565b92915050565b5f6040820190506107af5f830185610774565b6107bc6020830184610774565b9392505050565b5f81519050919050565b5f81905092915050565b5f6107e1826107c3565b6107eb81856107cd565b93506107fb81856020860161068c565b80840191505092915050565b5f61081282846107d7565b915081905092915050565b6080516107d96108355f395f61010401526107d95ff3fe608060405261000c61000e565b005b610016610101565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036100f657634f1ef28660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19165f357fffffffff00000000000000000000000000000000000000000000000000000000167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146100e9576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100f1610128565b6100ff565b6100fe61015c565b5b565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b5f5f5f36600490809261013d939291906104d0565b81019061014a91906106a8565b91509150610158828261016e565b5050565b61016c6101676101e0565b6101ee565b565b6101778261020d565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f815111156101d3576101cd82826102d6565b506101dc565b6101db610356565b5b5050565b5f6101e9610392565b905090565b365f5f375f5f365f845af43d5f5f3e805f8114610209573d5ff35b3d5ffd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361026857806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161025f9190610722565b60405180910390fd5b806102947f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f5f8473ffffffffffffffffffffffffffffffffffffffff16846040516102ff919061078d565b5f60405180830381855af49150503d805f8114610337576040519150601f19603f3d011682016040523d82523d5f602084013e61033c565b606091505b509150915061034c8583836103ee565b9250505092915050565b5f341115610390576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6103be7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6103e5565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b606082610403576103fe8261047b565b610473565b5f825114801561042957505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561046b57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016104629190610722565b60405180910390fd5b819050610474565b5b9392505050565b5f8151111561048d5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f604051905090565b5f5ffd5b5f5ffd5b5f5f858511156104e3576104e26104c8565b5b838611156104f4576104f36104cc565b5b6001850283019150848603905094509492505050565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61053b82610512565b9050919050565b61054b81610531565b8114610555575f5ffd5b50565b5f8135905061056681610542565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6105ba82610574565b810181811067ffffffffffffffff821117156105d9576105d8610584565b5b80604052505050565b5f6105eb6104bf565b90506105f782826105b1565b919050565b5f67ffffffffffffffff82111561061657610615610584565b5b61061f82610574565b9050602081019050919050565b828183375f83830152505050565b5f61064c610647846105fc565b6105e2565b90508281526020810184848401111561066857610667610570565b5b61067384828561062c565b509392505050565b5f82601f83011261068f5761068e61056c565b5b813561069f84826020860161063a565b91505092915050565b5f5f604083850312156106be576106bd61050a565b5b5f6106cb85828601610558565b925050602083013567ffffffffffffffff8111156106ec576106eb61050e565b5b6106f88582860161067b565b9150509250929050565b5f61070c82610512565b9050919050565b61071c81610702565b82525050565b5f6020820190506107355f830184610713565b92915050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f6107678261073b565b6107718185610745565b935061078181856020860161074f565b80840191505092915050565b5f610798828461075d565b91508190509291505056fea2646970667358221220ccc9529bc6fbbf8f3b86b4a8c5192f0598aa3267a8c6404d4fb67afc4bbc1a5d64736f6c634300081c0033608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c003300000000000000000000000029c6f2022b97bf8503a64025dd4fafea5251756c000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4463fd1af0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae000000000000000000000000d34872be0cdb6b09d45fca067b07f04a1a9ae1ae000000000000000000000000000000000000000000000000000000000000003061723a2f2f6f336e69366448543276316664613836313058676a58782d336a4775426234622d2d307066624f78726d770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2c", "chainId": "0x14a34" }, "additionalContracts": [ { "transactionType": "CREATE", - "address": "0xa1c729ca727eb3bea8b48ea92a2be0c86ab529b4", - "initCode": "0x608060405234801561000f575f80fd5b506040516104fc3803806104fc83398101604081905261002e916100bb565b806001600160a01b03811661005c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100658161006c565b50506100e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100cb575f80fd5b81516001600160a01b03811681146100e1575f80fd5b9392505050565b610407806100f55f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008e578063ad3cb1cc146100a1578063f2fde38b146100de575b5f80fd5b348015610058575f80fd5b506100616100fd565b005b34801561006e575f80fd5b505f546040516001600160a01b0390911681526020015b60405180910390f35b61006161009c366004610260565b610110565b3480156100ac575f80fd5b506100d1604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516100859190610372565b3480156100e9575f80fd5b506100616100f836600461038b565b61017b565b6101056101bd565b61010e5f6101e9565b565b6101186101bd565b60405163278f794360e11b81526001600160a01b03841690634f1ef28690349061014890869086906004016103a6565b5f604051808303818588803b15801561015f575f80fd5b505af1158015610171573d5f803e3d5ffd5b5050505050505050565b6101836101bd565b6001600160a01b0381166101b157604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101ba816101e9565b50565b5f546001600160a01b0316331461010e5760405163118cdaa760e01b81523360048201526024016101a8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146101ba575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f805f60608486031215610272575f80fd5b833561027d81610238565b9250602084013561028d81610238565b9150604084013567ffffffffffffffff808211156102a9575f80fd5b818601915086601f8301126102bc575f80fd5b8135818111156102ce576102ce61024c565b604051601f8201601f19908116603f011681019083821181831017156102f6576102f661024c565b8160405282815289602084870101111561030e575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f81518084525f5b8181101561035357602081850181015186830182015201610337565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610384602083018461032f565b9392505050565b5f6020828403121561039b575f80fd5b813561038481610238565b6001600160a01b03831681526040602082018190525f906103c99083018461032f565b94935050505056fea264697066735822122007de15b0105c29549d149c18de22e78591a193e6e1f95277a6a00e6b6f51026d64736f6c63430008170033000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08" + "address": "0x57c2cd477300e7ec80974b28fa55e34589627cb5", + "initCode": "0x608060405234801561000f575f5ffd5b506040516109c63803806109c6833981810160405281019061003191906101d7565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100999190610211565b60405180910390fd5b6100b1816100b860201b60201c565b505061022a565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a68261017d565b9050919050565b6101b68161019c565b81146101c0575f5ffd5b50565b5f815190506101d1816101ad565b92915050565b5f602082840312156101ec576101eb610179565b5b5f6101f9848285016101c3565b91505092915050565b61020b8161019c565b82525050565b5f6020820190506102245f830184610202565b92915050565b61078f806102375f395ff3fe608060405260043610610049575f3560e01c8063715018a61461004d5780638da5cb5b146100635780639623609d1461008d578063ad3cb1cc146100a9578063f2fde38b146100d3575b5f5ffd5b348015610058575f5ffd5b506100616100fb565b005b34801561006e575f5ffd5b5061007761010e565b60405161008491906103f7565b60405180910390f35b6100a760048036038101906100a291906105c2565b610135565b005b3480156100b4575f5ffd5b506100bd6101ac565b6040516100ca919061068e565b60405180910390f35b3480156100de575f5ffd5b506100f960048036038101906100f491906106ae565b6101e5565b005b610103610269565b61010c5f6102f0565b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61013d610269565b8273ffffffffffffffffffffffffffffffffffffffff16634f1ef2863484846040518463ffffffff1660e01b815260040161017992919061072b565b5f604051808303818588803b158015610190575f5ffd5b505af11580156101a2573d5f5f3e3d5ffd5b5050505050505050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610269565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361025d575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161025491906103f7565b60405180910390fd5b610266816102f0565b50565b6102716103b1565b73ffffffffffffffffffffffffffffffffffffffff1661028f61010e565b73ffffffffffffffffffffffffffffffffffffffff16146102ee576102b26103b1565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016102e591906103f7565b60405180910390fd5b565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103e1826103b8565b9050919050565b6103f1816103d7565b82525050565b5f60208201905061040a5f8301846103e8565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f61042b826103d7565b9050919050565b61043b81610421565b8114610445575f5ffd5b50565b5f8135905061045681610432565b92915050565b610465816103d7565b811461046f575f5ffd5b50565b5f813590506104808161045c565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6104d48261048e565b810181811067ffffffffffffffff821117156104f3576104f261049e565b5b80604052505050565b5f610505610410565b905061051182826104cb565b919050565b5f67ffffffffffffffff8211156105305761052f61049e565b5b6105398261048e565b9050602081019050919050565b828183375f83830152505050565b5f61056661056184610516565b6104fc565b9050828152602081018484840111156105825761058161048a565b5b61058d848285610546565b509392505050565b5f82601f8301126105a9576105a8610486565b5b81356105b9848260208601610554565b91505092915050565b5f5f5f606084860312156105d9576105d8610419565b5b5f6105e686828701610448565b93505060206105f786828701610472565b925050604084013567ffffffffffffffff8111156106185761061761041d565b5b61062486828701610595565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6106608261062e565b61066a8185610638565b935061067a818560208601610648565b6106838161048e565b840191505092915050565b5f6020820190508181035f8301526106a68184610656565b905092915050565b5f602082840312156106c3576106c2610419565b5b5f6106d084828501610472565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6106fd826106d9565b61070781856106e3565b9350610717818560208601610648565b6107208161048e565b840191505092915050565b5f60408201905061073e5f8301856103e8565b818103602083015261075081846106f3565b9050939250505056fea2646970667358221220213c66bd52fb523987e106c64b1df6ff0b51013eb07d714cab9458dabd9030a064736f6c634300081c0033000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" } ], "isFixedGasLimit": false @@ -70,186 +50,148 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x284809", + "cumulativeGasUsed": "0x858d64", "logs": [ { - "address": "0x1a9507b4404854b48164b209bfd0d4790b609762", + "address": "0x29c6f2022b97bf8503a64025dd4fafea5251756c", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", - "transactionIndex": "0x6", - "logIndex": "0x5", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080002000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0ec942eec9f902d267f6a0ed5d6c58b1c447fec08893bb0f7b1fca9743d4556c", - "transactionIndex": "0x6", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "gasUsed": "0x240ca3", - "effectiveGasPrice": "0xba11f", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "to": null, - "contractAddress": "0x1a9507b4404854b48164b209bfd0d4790b609762", - "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x1", - "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0xff0f73bb7a", - "l1GasPrice": "0x2689e7ebd", - "l1GasUsed": "0x177b2" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x2ceb1e", - "logs": [ - { - "address": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" - ], - "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", - "transactionIndex": "0x7", - "logIndex": "0x6", + "blockHash": "0x791bbcd432252ae414c4d69a8bd3ead04788e92c7ebfe4051d802a5e1b0ad807", + "blockNumber": "0x1c7feb4", + "transactionHash": "0x396b891ad4ba8a3095f6e278a47dd5ed97d8aa277f676fe9bc27dd71a0182ef7", + "transactionIndex": "0xf", + "logIndex": "0x90", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000010000000000000000000000000000020000000000004000000000000000000000000000400000000000000000000000020", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x2d169a576434cf914e76c20f0b4dceb6a54b6ac4da0843f31b12e17819de55e5", - "transactionIndex": "0x7", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "gasUsed": "0x4a315", - "effectiveGasPrice": "0xba11f", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "transactionHash": "0x396b891ad4ba8a3095f6e278a47dd5ed97d8aa277f676fe9bc27dd71a0182ef7", + "transactionIndex": "0xf", + "blockHash": "0x791bbcd432252ae414c4d69a8bd3ead04788e92c7ebfe4051d802a5e1b0ad807", + "blockNumber": "0x1c7feb4", + "gasUsed": "0x46b4a2", + "effectiveGasPrice": "0xf4279", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", "to": null, - "contractAddress": "0x888fb1aa6eec47d2b5db8dbce68d00f294f95f08", + "contractAddress": "0x29c6f2022b97bf8503a64025dd4fafea5251756c", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x1", + "l1BlobBaseFee": "0x111cb2c33", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0x25f2266254", - "l1GasPrice": "0x2689e7ebd", - "l1GasUsed": "0x37e4" + "l1Fee": "0x19566bb74995", + "l1GasPrice": "0x63ef7ef", + "l1GasUsed": "0x23e1a" }, { "status": "0x1", - "cumulativeGasUsed": "0x386575", + "cumulativeGasUsed": "0x989cdf", "logs": [ { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xb3dd782fce60bcfbbef1ead56ef3a24a9c330a38", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000001a9507b4404854b48164b209bfd0d4790b609762" + "0x00000000000000000000000029c6f2022b97bf8503a64025dd4fafea5251756c" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0x7", + "blockHash": "0x791bbcd432252ae414c4d69a8bd3ead04788e92c7ebfe4051d802a5e1b0ad807", + "blockNumber": "0x1c7feb4", + "transactionHash": "0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2", + "transactionIndex": "0x10", + "logIndex": "0x91", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xb3dd782fce60bcfbbef1ead56ef3a24a9c330a38", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0x8", + "blockHash": "0x791bbcd432252ae414c4d69a8bd3ead04788e92c7ebfe4051d802a5e1b0ad807", + "blockNumber": "0x1c7feb4", + "transactionHash": "0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2", + "transactionIndex": "0x10", + "logIndex": "0x92", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xb3dd782fce60bcfbbef1ead56ef3a24a9c330a38", "topics": [ "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61", - "0x0000000000000000000000003c10faed26a6bb341322d1baaf2c6ecf5b957d61" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8", + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0x9", + "blockHash": "0x791bbcd432252ae414c4d69a8bd3ead04788e92c7ebfe4051d802a5e1b0ad807", + "blockNumber": "0x1c7feb4", + "transactionHash": "0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2", + "transactionIndex": "0x10", + "logIndex": "0x93", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xb3dd782fce60bcfbbef1ead56ef3a24a9c330a38", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0xa", + "blockHash": "0x791bbcd432252ae414c4d69a8bd3ead04788e92c7ebfe4051d802a5e1b0ad807", + "blockNumber": "0x1c7feb4", + "transactionHash": "0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2", + "transactionIndex": "0x10", + "logIndex": "0x94", "removed": false }, { - "address": "0xa1c729ca727eb3bea8b48ea92a2be0c86ab529b4", + "address": "0x57c2cd477300e7ec80974b28fa55e34589627cb5", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000888fb1aa6eec47d2b5db8dbce68d00f294f95f08" + "0x000000000000000000000000aff4be6f091274421f0bf5a2f74ec368a2c017e8" ], "data": "0x", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0xb", + "blockHash": "0x791bbcd432252ae414c4d69a8bd3ead04788e92c7ebfe4051d802a5e1b0ad807", + "blockNumber": "0x1c7feb4", + "transactionHash": "0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2", + "transactionIndex": "0x10", + "logIndex": "0x95", "removed": false }, { - "address": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "address": "0xb3dd782fce60bcfbbef1ead56ef3a24a9c330a38", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1c729ca727eb3bea8b48ea92a2be0c86ab529b4", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "logIndex": "0xc", + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000057c2cd477300e7ec80974b28fa55e34589627cb5", + "blockHash": "0x791bbcd432252ae414c4d69a8bd3ead04788e92c7ebfe4051d802a5e1b0ad807", + "blockNumber": "0x1c7feb4", + "transactionHash": "0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2", + "transactionIndex": "0x10", + "logIndex": "0x96", "removed": false } ], - "logsBloom": "0x00000004000000000000000004000000400000000000000000800480000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000004010000000020008000000000000000800000000800000000000000000000000400000000000000000000800000000000000000000000084000000100000800000000000000000000000000000000000000000000000000000001000000000000000000021000000000000000000000090000000000404000100000000000020000000004000000000000000400000000000000000000000000000000000000040", + "logsBloom": "0x00000004000000000000000000000000400000000000000000800000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000002000001000000000000000000000000001000000000020000000000000000000800000000800000000000000000000000400000000400000000000800000000000000000000000080000000000000800000000000001000000000000000000000000000000800000012001000000000000000000020000000100000000000000000000000000404000100000000000020000004000000000000000000000000000000100000000000000000000000000000", "type": "0x2", - "transactionHash": "0xdd3fa126108b33ffa1eb8fa2abc033dba249de1077fb5af7ef08725a9b958e18", - "transactionIndex": "0x8", - "blockHash": "0x5a2c7842d7bad974945b9ca5bb9ba9a98fa38492d565276be2eff0fff85b8f61", - "blockNumber": "0x17c239e", - "gasUsed": "0xb7a57", - "effectiveGasPrice": "0xba11f", - "from": "0x3c10faed26a6bb341322d1baaf2c6ecf5b957d61", + "transactionHash": "0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2", + "transactionIndex": "0x10", + "blockHash": "0x791bbcd432252ae414c4d69a8bd3ead04788e92c7ebfe4051d802a5e1b0ad807", + "blockNumber": "0x1c7feb4", + "gasUsed": "0x130f7b", + "effectiveGasPrice": "0xf4279", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", "to": null, - "contractAddress": "0xbe5f264c6413ec0cf3ffe6169a320aeec721d0a1", + "contractAddress": "0xb3dd782fce60bcfbbef1ead56ef3a24a9c330a38", "l1BaseFeeScalar": "0x44d", - "l1BlobBaseFee": "0x1", + "l1BlobBaseFee": "0x111cb2c33", "l1BlobBaseFeeScalar": "0xa118b", - "l1Fee": "0x5ce3d8476c", - "l1GasPrice": "0x2689e7ebd", - "l1GasUsed": "0x88d3" + "l1Fee": "0x860d95d384d", + "l1GasPrice": "0x63ef7ef", + "l1GasUsed": "0xbdd6" } ], "libraries": [], @@ -257,10 +199,10 @@ "returns": { "0": { "internal_type": "struct DeployCredits.DeploymentResult", - "value": "(0x1a9507B4404854B48164B209bFd0d4790B609762, 0xBe5F264C6413ec0cf3FFe6169A320AeEc721d0A1, 0x888FB1aa6EeC47D2B5db8dBcE68d00f294F95f08)" + "value": "(0x29c6F2022b97bf8503A64025Dd4fafEa5251756C, 0xB3dd782FCe60BCFBBEF1eaD56eF3a24a9c330A38)" } }, - "timestamp": 1745593951, + "timestamp": 1755536483, "chain": 84532, - "commit": "edb476b" + "commit": "49b6a80" } \ No newline at end of file From c05f82b5bfc79fc6ac244d940c6a43ef90d90c96 Mon Sep 17 00:00:00 2001 From: Sweets Sweetman Date: Mon, 18 Aug 2025 12:06:18 -0500 Subject: [PATCH 28/28] Upgrade script execution on baseSepolia. --- .env.example | 4 +- README.md | 2 +- broadcast/Upgrade.s.sol/84532/run-latest.json | 133 ++++++++++++++++++ 3 files changed, 136 insertions(+), 3 deletions(-) create mode 100644 broadcast/Upgrade.s.sol/84532/run-latest.json diff --git a/.env.example b/.env.example index 4545e9c..1d44fee 100644 --- a/.env.example +++ b/.env.example @@ -27,10 +27,10 @@ DOPPLER_UNIVERSAL_ROUTER= # Upgrade Script ENV variables -# Base Sepolia: 0x1660939de5E468514859E04fBfDC8a98d8e0Cf1E +# Base Sepolia: 0xB3dd782FCe60BCFBBEF1eaD56eF3a24a9c330A38 # Base Mainnet: ??? CREDITS_PROXY_ADDRESS= -# Base Sepolia: 0x2c62591c601e467cb58e3fa5483f2b0c1483fca4 +# Base Sepolia: 0x57c2cd477300e7ec80974b28fa55e34589627cb5 # Base Mainnet: ??? CREDITS_PROXY_ADMIN= diff --git a/README.md b/README.md index 6731a7c..6c7317d 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ The COOP Credits Protocol implements a flexible and upgradeable ERC1155 token sy | Contract | Address | Transaction | | -------------- | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| Implementation | `0x29c6F2022b97bf8503A64025Dd4fafEa5251756C` | [View](https://sepolia.basescan.org/tx/0x396b891ad4ba8a3095f6e278a47dd5ed97d8aa277f676fe9bc27dd71a0182ef7) | +| Implementation | `0xf079fF3347FfAEF71AD06953C229F9D5810fca28` | [View](https://sepolia.basescan.org/tx/0x9856a53ad430c54bbc703a875c96cd01f7961d1a8eefcc0d5e9a69cc7a4fd21c) | | Proxy Admin | `0x57c2cd477300e7ec80974b28fa55e34589627cb5` | [View](https://sepolia.basescan.org/tx/0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2) | | Proxy | `0xB3dd782FCe60BCFBBEF1eaD56eF3a24a9c330A38` | [View](https://sepolia.basescan.org/tx/0x0af45e99179008d5efe33378867b2daa76cc2345b4e0d9011d12b305b165b3f2) | diff --git a/broadcast/Upgrade.s.sol/84532/run-latest.json b/broadcast/Upgrade.s.sol/84532/run-latest.json new file mode 100644 index 0000000..34a8c8b --- /dev/null +++ b/broadcast/Upgrade.s.sol/84532/run-latest.json @@ -0,0 +1,133 @@ +{ + "transactions": [ + { + "hash": "0x9856a53ad430c54bbc703a875c96cd01f7961d1a8eefcc0d5e9a69cc7a4fd21c", + "transactionType": "CREATE", + "contractName": "Credits1155", + "contractAddress": "0xf079ff3347ffaef71ad06953c229f9d5810fca28", + "function": null, + "arguments": null, + "transaction": { + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "gas": "0x5bead2", + "value": "0x0", + "input": "0x608060405234801561000f575f5ffd5b5061001e61002360201b60201c565b61019e565b5f61003261012160201b60201c565b9050805f0160089054906101000a900460ff161561007c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff161461011e5767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff6040516101159190610185565b60405180910390a15b50565b5f5f61013161013a60201b60201c565b90508091505090565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b5f67ffffffffffffffff82169050919050565b61017f81610163565b82525050565b5f6020820190506101985f830184610176565b92915050565b615285806101ab5f395ff3fe608060405260043610610231575f3560e01c80637eb802b91161012d578063c9f18ebd116100aa578063e985e9c51161006e578063e985e9c51461081e578063f242432a1461085a578063f2fde38b14610882578063f45caae3146108aa578063f5298aca146108d457610238565b8063c9f18ebd14610752578063d1b53b9c1461077a578063d547741f146107a4578063e30c3978146107cc578063e74f4e76146107f657610238565b8063a7fd40bf116100f1578063a7fd40bf1461067e578063ad77bc40146106a6578063b13bfa91146106d0578063bd85b039146106fa578063c5efaae81461073657610238565b80637eb802b91461059e5780638da5cb5b146105c657806391d14854146105f0578063a217fddf1461062c578063a22cb4651461065657610238565b806336568abe116101bb5780634f558e791161017f5780634f558e79146104e65780636b20c454146105225780636ebbcb591461054a578063715018a61461057257806379ba50971461058857610238565b806336568abe146103f6578063401d44821461041e578063463fd1af146104465780634b844a1d1461046e5780634e1273f4146104aa57610238565b8063116039ae11610202578063116039ae1461031857806318160ddd14610340578063248a9ca31461036a5780632eb2c2d6146103a65780632f2ff15d146103ce57610238565b80622311681461023c578062fdd58e1461026457806301ffc9a7146102a05780630e89341c146102dc57610238565b3661023857005b5f5ffd5b348015610247575f5ffd5b50610262600480360381019061025d9190613928565b6108fc565b005b34801561026f575f5ffd5b5061028a60048036038101906102859190613a2b565b610a6a565b6040516102979190613a78565b60405180910390f35b3480156102ab575f5ffd5b506102c660048036038101906102c19190613ae6565b610acd565b6040516102d39190613b2b565b60405180910390f35b3480156102e7575f5ffd5b5061030260048036038101906102fd9190613b44565b610ade565b60405161030f9190613bcf565b60405180910390f35b348015610323575f5ffd5b5061033e60048036038101906103399190613c2a565b610b7e565b005b34801561034b575f5ffd5b50610354610f09565b6040516103619190613a78565b60405180910390f35b348015610375575f5ffd5b50610390600480360381019061038b9190613cd4565b610f20565b60405161039d9190613d0e565b60405180910390f35b3480156103b1575f5ffd5b506103cc60048036038101906103c79190613de7565b610f4a565b005b3480156103d9575f5ffd5b506103f460048036038101906103ef9190613eb2565b610ff1565b005b348015610401575f5ffd5b5061041c60048036038101906104179190613eb2565b611013565b005b348015610429575f5ffd5b50610444600480360381019061043f9190613ef0565b61108e565b005b348015610451575f5ffd5b5061046c60048036038101906104679190613fcc565b6111de565b005b348015610479575f5ffd5b50610494600480360381019061048f9190613b44565b6113f9565b6040516104a19190613a78565b60405180910390f35b3480156104b5575f5ffd5b506104d060048036038101906104cb91906140f8565b611414565b6040516104dd9190614225565b60405180910390f35b3480156104f1575f5ffd5b5061050c60048036038101906105079190613b44565b61151e565b6040516105199190613b2b565b60405180910390f35b34801561052d575f5ffd5b5061054860048036038101906105439190614245565b611531565b005b348015610555575f5ffd5b50610570600480360381019061056b91906142cd565b6115dd565b005b34801561057d575f5ffd5b5061058661167f565b005b348015610593575f5ffd5b5061059c611692565b005b3480156105a9575f5ffd5b506105c460048036038101906105bf91906142cd565b611720565b005b3480156105d1575f5ffd5b506105da6117c1565b6040516105e79190614307565b60405180910390f35b3480156105fb575f5ffd5b5061061660048036038101906106119190613eb2565b6117f6565b6040516106239190613b2b565b60405180910390f35b348015610637575f5ffd5b50610640611867565b60405161064d9190613d0e565b60405180910390f35b348015610661575f5ffd5b5061067c6004803603810190610677919061434a565b61186d565b005b348015610689575f5ffd5b506106a4600480360381019061069f9190614388565b611883565b005b3480156106b1575f5ffd5b506106ba61189c565b6040516106c79190613a78565b60405180910390f35b3480156106db575f5ffd5b506106e46118a1565b6040516106f1919061442a565b60405180910390f35b348015610705575f5ffd5b50610720600480360381019061071b9190613b44565b6118c5565b60405161072d9190613a78565b60405180910390f35b610750600480360381019061074b9190613a2b565b6118ec565b005b34801561075d575f5ffd5b5061077860048036038101906107739190613b44565b6119a1565b005b348015610785575f5ffd5b5061078e611a8a565b60405161079b9190613a78565b60405180910390f35b3480156107af575f5ffd5b506107ca60048036038101906107c59190613eb2565b611a95565b005b3480156107d7575f5ffd5b506107e0611ab7565b6040516107ed9190614307565b60405180910390f35b348015610801575f5ffd5b5061081c60048036038101906108179190614490565b611aec565b005b348015610829575f5ffd5b50610844600480360381019061083f919061455d565b611c3c565b6040516108519190613b2b565b60405180910390f35b348015610865575f5ffd5b50610880600480360381019061087b919061459b565b611cd8565b005b34801561088d575f5ffd5b506108a860048036038101906108a391906142cd565b611d7f565b005b3480156108b5575f5ffd5b506108be611e38565b6040516108cb919061464e565b60405180910390f35b3480156108df575f5ffd5b506108fa60048036038101906108f59190614667565b611e5d565b005b60015f61090a336001610a6a565b9050808211156109535781816040517fcffb3e6900000000000000000000000000000000000000000000000000000000815260040161094a9291906146b7565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f8173ffffffffffffffffffffffffffffffffffffffff163b036109c5576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109d133600180611f09565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324856bc366016bcc41e9000087876040518463ffffffff1660e01b8152600401610a35929190614833565b5f604051808303818588803b158015610a4c575f5ffd5b505af1158015610a5e573d5f5f3e3d5ffd5b50505050505050505050565b5f5f610a74611fab565b9050805f015f8481526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b5f610ad782611fd2565b9050919050565b60605f610ae9611fab565b9050806002018054610afa90614895565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2690614895565b8015610b715780601f10610b4857610100808354040283529160200191610b71565b820191905f5260205f20905b815481529060010190602001808311610b5457829003601f168201915b5050505050915050919050565b825f610b8b336001610a6a565b905080821115610bd45781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401610bcb9291906146b7565b60405180910390fd5b865f8173ffffffffffffffffffffffffffffffffffffffff163b03610c25576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8890506001871015610c64576040517fea54cbb300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff16638c7a63ae8a6040518263ffffffff1660e01b8152600401610c9e9190613a78565b5f60405180830381865afa158015610cb8573d5f5f3e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190610ce091906149cc565b90505f815f01515103610d2a57886040517f505b9f4e000000000000000000000000000000000000000000000000000000008152600401610d219190613a78565b60405180910390fd5b610d363360018a611f09565b5f610d40896113f9565b90505f600167ffffffffffffffff811115610d5e57610d5d613722565b5b604051908082528060200260200182016040528015610d8c5781602001602082028036833780820191505090505b50905087815f81518110610da357610da2614a13565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f89604051602001610def9190614307565b60405160208183030381529060405290508473ffffffffffffffffffffffffffffffffffffffff1663359f1302845f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168f8f87876040518763ffffffff1660e01b8152600401610e62959493929190614af7565b5f604051808303818588803b158015610e79575f5ffd5b505af1158015610e8b573d5f5f3e3d5ffd5b50505050508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff168d7f0be475f768b363c261073a92dfdacd93dc1e02f74c673c04add7611e10a139928e8f88604051610ef293929190614b56565b60405180910390a450505050505050505050505050565b5f5f610f136120b3565b9050806001015491505090565b5f5f610f2a6120da565b9050805f015f8481526020019081526020015f2060010154915050919050565b5f610f53612101565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610f985750610f968682611c3c565b155b15610fdc5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610fd3929190614b8b565b60405180910390fd5b610fe98686868686612108565b505050505050565b610ffa82610f20565b611003816121fc565b61100d8383612210565b50505050565b61101b612101565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461107f576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110898282612308565b505050565b5f5f1b61109a816121fc565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ff576040517f743358de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f4790508083111561114a5782816040517fce22477e0000000000000000000000000000000000000000000000000000000081526004016111419291906146b7565b60405180910390fd5b611173838573ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8b192dc173e314b16d9067e45c2afbdcdc1713fc4fe1a95aff9076249648abc0856040516111d09190613a78565b60405180910390a350505050565b5f6111e76124c6565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f5f8267ffffffffffffffff1614801561122f5750825b90505f60018367ffffffffffffffff1614801561126257505f3073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015611270575080155b156112a7576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083156112f4576001855f0160086101000a81548160ff0219169083151502179055505b6112fd886124d9565b611306336124ed565b61130e612501565b61131a5f5f1b33612210565b505f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146113585761135787611720565b5b5f73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161461139557611394866115dd565b5b83156113ef575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260016040516113e69190614bfe565b60405180910390a15b5050505050505050565b5f8166016bcc41e9000061140d9190614c44565b9050919050565b6060815183511461146057815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016114579291906146b7565b60405180910390fd5b5f835167ffffffffffffffff81111561147c5761147b613722565b5b6040519080825280602002602001820160405280156114aa5781602001602082028036833780820191505090505b5090505f5f90505b8451811015611513576114e96114d1828761250b90919063ffffffff16565b6114e4838761251e90919063ffffffff16565b610a6a565b8282815181106114fc576114fb614a13565b5b6020026020010181815250508060010190506114b2565b508091505092915050565b5f5f611529836118c5565b119050919050565b611539612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561158257506115808361157b612101565b611c3c565b155b156115cd5761158f612101565b836040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016115c4929190614b8b565b60405180910390fd5b6115d8838383612531565b505050565b5f5f1b6115e9816121fc565b815f8173ffffffffffffffffffffffffffffffffffffffff163b0361163a576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6116876125c1565b6116905f612648565b565b5f61169b612101565b90508073ffffffffffffffffffffffffffffffffffffffff166116bc611ab7565b73ffffffffffffffffffffffffffffffffffffffff161461171457806040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161170b9190614307565b60405180910390fd5b61171d81612648565b50565b5f5f1b61172c816121fc565b815f8173ffffffffffffffffffffffffffffffffffffffff163b0361177d576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b5f5f6117cb612685565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b5f5f6118006120da565b9050805f015f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f5f1b81565b61187f611878612101565b83836126ac565b5050565b5f5f1b61188f816121fc565b61189882612823565b5050565b600181565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f6118cf6120b3565b9050805f015f8481526020019081526020015f2054915050919050565b5f6118f6826113f9565b90508034101561193f5780346040517f3644fa3b0000000000000000000000000000000000000000000000000000000081526004016119369291906146b7565b60405180910390fd5b61195a8360018460405180602001604052805f815250612844565b5f81346119679190614c85565b90505f81111561199b5761199a813373ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b5b50505050565b805f6119ae336001610a6a565b9050808211156119f75781816040517fcffb3e690000000000000000000000000000000000000000000000000000000081526004016119ee9291906146b7565b60405180910390fd5b5f611a01846113f9565b90505f47905081811015611a4e5781816040517fce22477e000000000000000000000000000000000000000000000000000000008152600401611a459291906146b7565b60405180910390fd5b611a5a33600187611f09565b611a83823373ffffffffffffffffffffffffffffffffffffffff1661240090919063ffffffff16565b5050505050565b66016bcc41e9000081565b611a9e82610f20565b611aa7816121fc565b611ab18383612308565b50505050565b5f5f611ac16128d9565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b60015f611afa336001610a6a565b905080821115611b435781816040517fcffb3e69000000000000000000000000000000000000000000000000000000008152600401611b3a9291906146b7565b60405180910390fd5b895f8173ffffffffffffffffffffffffffffffffffffffff163b03611b94576040517f7c0fa50a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611ba033600180611f09565b8a73ffffffffffffffffffffffffffffffffffffffff1663472e649066016bcc41e900008c8c8c8c8c8c8c6040518963ffffffff1660e01b8152600401611bed9796959493929190614d3a565b60206040518083038185885af1158015611c09573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c2e9190614dae565b505050505050505050505050565b5f5f611c46611fab565b9050806001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b5f611ce1612101565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015611d265750611d248682611c3c565b155b15611d6a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611d61929190614b8b565b60405180910390fd5b611d778686868686612900565b505050505050565b611d876125c1565b5f611d906128d9565b905081815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16611df26117c1565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e65612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611eae5750611eac83611ea7612101565b611c3c565b155b15611ef957611ebb612101565b836040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611ef0929190614b8b565b60405180910390fd5b611f04838383611f09565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f79575f6040517f01a83514000000000000000000000000000000000000000000000000000000008152600401611f709190614307565b60405180910390fd5b5f5f611f858484612a06565b91509150611fa4855f848460405180602001604052805f815250612a36565b5050505050565b5f7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500905090565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061209c57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806120ac57506120ab82612ae2565b5b9050919050565b5f7f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e2800905090565b5f7f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612178575f6040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161216f9190614307565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036121e8575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016121df9190614307565b60405180910390fd5b6121f58585858585612a36565b5050505050565b61220d81612208612101565b612b5b565b50565b5f5f61221a6120da565b905061222684846117f6565b6122fd576001815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612299612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050612302565b5f9150505b92915050565b5f5f6123126120da565b905061231e84846117f6565b156123f5575f815f015f8681526020019081526020015f205f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550612391612101565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16857ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019150506123fa565b5f9150505b92915050565b804710156124475747816040517fcf47918100000000000000000000000000000000000000000000000000000000815260040161243e9291906146b7565b60405180910390fd5b5f5f8373ffffffffffffffffffffffffffffffffffffffff168360405161246d90614e06565b5f6040518083038185875af1925050503d805f81146124a7576040519150601f19603f3d011682016040523d82523d5f602084013e6124ac565b606091505b5091509150816124c0576124bf81612bac565b5b50505050565b5f5f6124d0612bf0565b90508091505090565b6124e1612c19565b6124ea81612c59565b50565b6124f5612c19565b6124fe81612c6d565b50565b612509612c19565b565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125a1575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016125989190614307565b60405180910390fd5b6125bc835f848460405180602001604052805f815250612a36565b505050565b6125c9612101565b73ffffffffffffffffffffffffffffffffffffffff166125e76117c1565b73ffffffffffffffffffffffffffffffffffffffff16146126465761260a612101565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161263d9190614307565b60405180910390fd5b565b5f6126516128d9565b9050805f015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561268182612cf1565b5050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f6126b5611fab565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612727575f6040517fced3e10000000000000000000000000000000000000000000000000000000000815260040161271e9190614307565b60405180910390fd5b81816001015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31846040516128159190613b2b565b60405180910390a350505050565b5f61282c611fab565b90508181600201908161283f9190614fb1565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036128b4575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016128ab9190614307565b60405180910390fd5b5f5f6128c08585612a06565b915091506128d15f87848487612a36565b505050505050565b5f7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612970575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016129679190614307565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036129e0575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016129d79190614307565b60405180910390fd5b5f5f6129ec8585612a06565b915091506129fd8787848487612a36565b50505050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b612a4285858585612dc2565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612adb575f612a7e612101565b90506001845103612aca575f612a9d5f8661251e90919063ffffffff16565b90505f612ab35f8661251e90919063ffffffff16565b9050612ac3838989858589612dd4565b5050612ad9565b612ad8818787878787612f83565b5b505b5050505050565b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612b545750612b5382613132565b5b9050919050565b612b6582826117f6565b612ba85780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401612b9f929190615080565b60405180910390fd5b5050565b5f81511115612bbe5780518082602001fd5b6040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005f1b905090565b612c2161319b565b612c57576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b612c61612c19565b612c6a81612823565b50565b612c75612c19565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612ce5575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401612cdc9190614307565b60405180910390fd5b612cee81612648565b50565b5f612cfa612685565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b612dce848484846131b9565b50505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115612f7b578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401612e349594939291906150a7565b6020604051808303815f875af1925050508015612e6f57506040513d601f19601f82011682018060405250810190612e6c9190615113565b60015b612ef0573d805f8114612e9d576040519150601f19603f3d011682016040523d82523d5f602084013e612ea2565b606091505b505f815103612ee857846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612edf9190614307565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612f7957846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401612f709190614307565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b111561312a578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401612fe395949392919061513e565b6020604051808303815f875af192505050801561301e57506040513d601f19601f8201168201806040525081019061301b9190615113565b60015b61309f573d805f811461304c576040519150601f19603f3d011682016040523d82523d5f602084013e613051565b606091505b505f81510361309757846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161308e9190614307565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461312857846040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161311f9190614307565b60405180910390fd5b505b505050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f6131a46124c6565b5f0160089054906101000a900460ff16905090565b5f6131c26120b3565b90506131d085858585613354565b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361329c575f5f90505f5f90505b845181101561327f575f613229828661251e90919063ffffffff16565b905080845f015f613243858a61251e90919063ffffffff16565b81526020019081526020015f205f82825461325e91906151a4565b92505081905550808361327191906151a4565b92505080600101905061320c565b5080826001015f82825461329391906151a4565b92505081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361334d575f5f90505f5f90505b8451811015613339575f6132f5828661251e90919063ffffffff16565b905080845f015f61330f858a61251e90919063ffffffff16565b81526020019081526020015f205f82825403925050819055508083019250508060010190506132d8565b5080826001015f8282540392505081905550505b5050505050565b5f61335d611fab565b905081518351146133a957825182516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016133a09291906146b7565b60405180910390fd5b5f6133b2612101565b90505f5f90505b84518110156135b7575f6133d6828761251e90919063ffffffff16565b90505f6133ec838761251e90919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614613513575f855f015f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156134bd57898183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016134b494939291906151d7565b60405180910390fd5b818103865f015f8581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146135aa5780855f015f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546135a291906151a4565b925050819055505b50508060010190506133b9565b506001845103613672575f6135d55f8661251e90919063ffffffff16565b90505f6135eb5f8661251e90919063ffffffff16565b90508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516136639291906146b7565b60405180910390a450506136f1565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516136e892919061521a565b60405180910390a45b505050505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61375882613712565b810181811067ffffffffffffffff8211171561377757613776613722565b5b80604052505050565b5f6137896136f9565b9050613795828261374f565b919050565b5f67ffffffffffffffff8211156137b4576137b3613722565b5b6137bd82613712565b9050602081019050919050565b828183375f83830152505050565b5f6137ea6137e58461379a565b613780565b9050828152602081018484840111156138065761380561370e565b5b6138118482856137ca565b509392505050565b5f82601f83011261382d5761382c61370a565b5b813561383d8482602086016137d8565b91505092915050565b5f67ffffffffffffffff8211156138605761385f613722565b5b602082029050602081019050919050565b5f5ffd5b5f61388761388284613846565b613780565b905080838252602082019050602084028301858111156138aa576138a9613871565b5b835b818110156138f157803567ffffffffffffffff8111156138cf576138ce61370a565b5b8086016138dc8982613819565b855260208501945050506020810190506138ac565b5050509392505050565b5f82601f83011261390f5761390e61370a565b5b813561391f848260208601613875565b91505092915050565b5f5f6040838503121561393e5761393d613702565b5b5f83013567ffffffffffffffff81111561395b5761395a613706565b5b61396785828601613819565b925050602083013567ffffffffffffffff81111561398857613987613706565b5b613994858286016138fb565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6139c78261399e565b9050919050565b6139d7816139bd565b81146139e1575f5ffd5b50565b5f813590506139f2816139ce565b92915050565b5f819050919050565b613a0a816139f8565b8114613a14575f5ffd5b50565b5f81359050613a2581613a01565b92915050565b5f5f60408385031215613a4157613a40613702565b5b5f613a4e858286016139e4565b9250506020613a5f85828601613a17565b9150509250929050565b613a72816139f8565b82525050565b5f602082019050613a8b5f830184613a69565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613ac581613a91565b8114613acf575f5ffd5b50565b5f81359050613ae081613abc565b92915050565b5f60208284031215613afb57613afa613702565b5b5f613b0884828501613ad2565b91505092915050565b5f8115159050919050565b613b2581613b11565b82525050565b5f602082019050613b3e5f830184613b1c565b92915050565b5f60208284031215613b5957613b58613702565b5b5f613b6684828501613a17565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f613ba182613b6f565b613bab8185613b79565b9350613bbb818560208601613b89565b613bc481613712565b840191505092915050565b5f6020820190508181035f830152613be78184613b97565b905092915050565b5f613bf98261399e565b9050919050565b613c0981613bef565b8114613c13575f5ffd5b50565b5f81359050613c2481613c00565b92915050565b5f5f5f5f5f60a08688031215613c4357613c42613702565b5b5f613c50888289016139e4565b9550506020613c6188828901613a17565b9450506040613c7288828901613a17565b9350506060613c83888289016139e4565b9250506080613c9488828901613c16565b9150509295509295909350565b5f819050919050565b613cb381613ca1565b8114613cbd575f5ffd5b50565b5f81359050613cce81613caa565b92915050565b5f60208284031215613ce957613ce8613702565b5b5f613cf684828501613cc0565b91505092915050565b613d0881613ca1565b82525050565b5f602082019050613d215f830184613cff565b92915050565b5f67ffffffffffffffff821115613d4157613d40613722565b5b602082029050602081019050919050565b5f613d64613d5f84613d27565b613780565b90508083825260208201905060208402830185811115613d8757613d86613871565b5b835b81811015613db05780613d9c8882613a17565b845260208401935050602081019050613d89565b5050509392505050565b5f82601f830112613dce57613dcd61370a565b5b8135613dde848260208601613d52565b91505092915050565b5f5f5f5f5f60a08688031215613e0057613dff613702565b5b5f613e0d888289016139e4565b9550506020613e1e888289016139e4565b945050604086013567ffffffffffffffff811115613e3f57613e3e613706565b5b613e4b88828901613dba565b935050606086013567ffffffffffffffff811115613e6c57613e6b613706565b5b613e7888828901613dba565b925050608086013567ffffffffffffffff811115613e9957613e98613706565b5b613ea588828901613819565b9150509295509295909350565b5f5f60408385031215613ec857613ec7613702565b5b5f613ed585828601613cc0565b9250506020613ee6858286016139e4565b9150509250929050565b5f5f60408385031215613f0657613f05613702565b5b5f613f1385828601613c16565b9250506020613f2485828601613a17565b9150509250929050565b5f67ffffffffffffffff821115613f4857613f47613722565b5b613f5182613712565b9050602081019050919050565b5f613f70613f6b84613f2e565b613780565b905082815260208101848484011115613f8c57613f8b61370e565b5b613f978482856137ca565b509392505050565b5f82601f830112613fb357613fb261370a565b5b8135613fc3848260208601613f5e565b91505092915050565b5f5f5f60608486031215613fe357613fe2613702565b5b5f84013567ffffffffffffffff81111561400057613fff613706565b5b61400c86828701613f9f565b935050602061401d868287016139e4565b925050604061402e868287016139e4565b9150509250925092565b5f67ffffffffffffffff82111561405257614051613722565b5b602082029050602081019050919050565b5f61407561407084614038565b613780565b9050808382526020820190506020840283018581111561409857614097613871565b5b835b818110156140c157806140ad88826139e4565b84526020840193505060208101905061409a565b5050509392505050565b5f82601f8301126140df576140de61370a565b5b81356140ef848260208601614063565b91505092915050565b5f5f6040838503121561410e5761410d613702565b5b5f83013567ffffffffffffffff81111561412b5761412a613706565b5b614137858286016140cb565b925050602083013567ffffffffffffffff81111561415857614157613706565b5b61416485828601613dba565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6141a0816139f8565b82525050565b5f6141b18383614197565b60208301905092915050565b5f602082019050919050565b5f6141d38261416e565b6141dd8185614178565b93506141e883614188565b805f5b838110156142185781516141ff88826141a6565b975061420a836141bd565b9250506001810190506141eb565b5085935050505092915050565b5f6020820190508181035f83015261423d81846141c9565b905092915050565b5f5f5f6060848603121561425c5761425b613702565b5b5f614269868287016139e4565b935050602084013567ffffffffffffffff81111561428a57614289613706565b5b61429686828701613dba565b925050604084013567ffffffffffffffff8111156142b7576142b6613706565b5b6142c386828701613dba565b9150509250925092565b5f602082840312156142e2576142e1613702565b5b5f6142ef848285016139e4565b91505092915050565b614301816139bd565b82525050565b5f60208201905061431a5f8301846142f8565b92915050565b61432981613b11565b8114614333575f5ffd5b50565b5f8135905061434481614320565b92915050565b5f5f604083850312156143605761435f613702565b5b5f61436d858286016139e4565b925050602061437e85828601614336565b9150509250929050565b5f6020828403121561439d5761439c613702565b5b5f82013567ffffffffffffffff8111156143ba576143b9613706565b5b6143c684828501613f9f565b91505092915050565b5f819050919050565b5f6143f26143ed6143e88461399e565b6143cf565b61399e565b9050919050565b5f614403826143d8565b9050919050565b5f614414826143f9565b9050919050565b6144248161440a565b82525050565b5f60208201905061443d5f83018461441b565b92915050565b6002811061444f575f5ffd5b50565b5f8135905061446081614443565b92915050565b61446f8161399e565b8114614479575f5ffd5b50565b5f8135905061448a81614466565b92915050565b5f5f5f5f5f5f5f5f610100898b0312156144ad576144ac613702565b5b5f6144ba8b828c016139e4565b98505060206144cb8b828c016139e4565b97505060406144dc8b828c016139e4565b96505060606144ed8b828c016139e4565b955050608089013567ffffffffffffffff81111561450e5761450d613706565b5b61451a8b828c01613f9f565b94505060a061452b8b828c01614452565b93505060c061453c8b828c01613a17565b92505060e061454d8b828c0161447c565b9150509295985092959890939650565b5f5f6040838503121561457357614572613702565b5b5f614580858286016139e4565b9250506020614591858286016139e4565b9150509250929050565b5f5f5f5f5f60a086880312156145b4576145b3613702565b5b5f6145c1888289016139e4565b95505060206145d2888289016139e4565b94505060406145e388828901613a17565b93505060606145f488828901613a17565b925050608086013567ffffffffffffffff81111561461557614614613706565b5b61462188828901613819565b9150509295509295909350565b5f614638826143f9565b9050919050565b6146488161462e565b82525050565b5f6020820190506146615f83018461463f565b92915050565b5f5f5f6060848603121561467e5761467d613702565b5b5f61468b868287016139e4565b935050602061469c86828701613a17565b92505060406146ad86828701613a17565b9150509250925092565b5f6040820190506146ca5f830185613a69565b6146d76020830184613a69565b9392505050565b5f81519050919050565b5f82825260208201905092915050565b5f614702826146de565b61470c81856146e8565b935061471c818560208601613b89565b61472581613712565b840191505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f614773826146de565b61477d8185614759565b935061478d818560208601613b89565b61479681613712565b840191505092915050565b5f6147ac8383614769565b905092915050565b5f602082019050919050565b5f6147ca82614730565b6147d4818561473a565b9350836020820285016147e68561474a565b805f5b85811015614821578484038952815161480285826147a1565b945061480d836147b4565b925060208a019950506001810190506147e9565b50829750879550505050505092915050565b5f6040820190508181035f83015261484b81856146f8565b9050818103602083015261485f81846147c0565b90509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806148ac57607f821691505b6020821081036148bf576148be614868565b5b50919050565b5f5ffd5b5f5ffd5b5f6148df6148da84613f2e565b613780565b9050828152602081018484840111156148fb576148fa61370e565b5b614906848285613b89565b509392505050565b5f82601f8301126149225761492161370a565b5b81516149328482602086016148cd565b91505092915050565b5f8151905061494981613a01565b92915050565b5f60608284031215614964576149636148c5565b5b61496e6060613780565b90505f82015167ffffffffffffffff81111561498d5761498c6148c9565b5b6149998482850161490e565b5f8301525060206149ac8482850161493b565b60208301525060406149c08482850161493b565b60408301525092915050565b5f602082840312156149e1576149e0613702565b5b5f82015167ffffffffffffffff8111156149fe576149fd613706565b5b614a0a8482850161494f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614a72816139bd565b82525050565b5f614a838383614a69565b60208301905092915050565b5f602082019050919050565b5f614aa582614a40565b614aaf8185614a4a565b9350614aba83614a5a565b805f5b83811015614aea578151614ad18882614a78565b9750614adc83614a8f565b925050600181019050614abd565b5085935050505092915050565b5f60a082019050614b0a5f83018861441b565b614b176020830187613a69565b614b246040830186613a69565b8181036060830152614b368185614a9b565b90508181036080830152614b4a81846146f8565b90509695505050505050565b5f606082019050614b695f830186613a69565b614b766020830185613a69565b614b836040830184613a69565b949350505050565b5f604082019050614b9e5f8301856142f8565b614bab60208301846142f8565b9392505050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f614be8614be3614bde84614bb2565b6143cf565b614bbb565b9050919050565b614bf881614bce565b82525050565b5f602082019050614c115f830184614bef565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614c4e826139f8565b9150614c59836139f8565b9250828202614c67816139f8565b91508282048414831517614c7e57614c7d614c17565b5b5092915050565b5f614c8f826139f8565b9150614c9a836139f8565b9250828203905081811115614cb257614cb1614c17565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60028110614cf657614cf5614cb8565b5b50565b5f819050614d0682614ce5565b919050565b5f614d1582614cf9565b9050919050565b614d2581614d0b565b82525050565b614d348161399e565b82525050565b5f60e082019050614d4d5f83018a6142f8565b614d5a60208301896142f8565b614d6760408301886142f8565b8181036060830152614d798187613b97565b9050614d886080830186614d1c565b614d9560a0830185613a69565b614da260c0830184614d2b565b98975050505050505050565b5f60208284031215614dc357614dc2613702565b5b5f614dd08482850161493b565b91505092915050565b5f81905092915050565b50565b5f614df15f83614dd9565b9150614dfc82614de3565b5f82019050919050565b5f614e1082614de6565b9150819050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302614e767fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614e3b565b614e808683614e3b565b95508019841693508086168417925050509392505050565b5f614eb2614ead614ea8846139f8565b6143cf565b6139f8565b9050919050565b5f819050919050565b614ecb83614e98565b614edf614ed782614eb9565b848454614e47565b825550505050565b5f5f905090565b614ef6614ee7565b614f01818484614ec2565b505050565b5b81811015614f2457614f195f82614eee565b600181019050614f07565b5050565b601f821115614f6957614f3a81614e1a565b614f4384614e2c565b81016020851015614f52578190505b614f66614f5e85614e2c565b830182614f06565b50505b505050565b5f82821c905092915050565b5f614f895f1984600802614f6e565b1980831691505092915050565b5f614fa18383614f7a565b9150826002028217905092915050565b614fba82613b6f565b67ffffffffffffffff811115614fd357614fd2613722565b5b614fdd8254614895565b614fe8828285614f28565b5f60209050601f831160018114615019575f8415615007578287015190505b6150118582614f96565b865550615078565b601f19841661502786614e1a565b5f5b8281101561504e57848901518255600182019150602085019450602081019050615029565b8683101561506b5784890151615067601f891682614f7a565b8355505b6001600288020188555050505b505050505050565b5f6040820190506150935f8301856142f8565b6150a06020830184613cff565b9392505050565b5f60a0820190506150ba5f8301886142f8565b6150c760208301876142f8565b6150d46040830186613a69565b6150e16060830185613a69565b81810360808301526150f381846146f8565b90509695505050505050565b5f8151905061510d81613abc565b92915050565b5f6020828403121561512857615127613702565b5b5f615135848285016150ff565b91505092915050565b5f60a0820190506151515f8301886142f8565b61515e60208301876142f8565b818103604083015261517081866141c9565b9050818103606083015261518481856141c9565b9050818103608083015261519881846146f8565b90509695505050505050565b5f6151ae826139f8565b91506151b9836139f8565b92508282019050808211156151d1576151d0614c17565b5b92915050565b5f6080820190506151ea5f8301876142f8565b6151f76020830186613a69565b6152046040830185613a69565b6152116060830184613a69565b95945050505050565b5f6040820190508181035f83015261523281856141c9565b9050818103602083015261524681846141c9565b9050939250505056fea26469706673582212202c607fe090de5b404fc5c3a5562b19ffe9d191a5fb90cec284cb58685f24247864736f6c634300081c0033", + "nonce": "0x2d", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x9541f57dcd98e55db55f03f0d11c6d59eb5e0d559eae3629bc9739573165f10d", + "transactionType": "CALL", + "contractName": "ProxyAdmin", + "contractAddress": "0x57c2cd477300e7ec80974b28fa55e34589627cb5", + "function": "upgradeAndCall(address,address,bytes)", + "arguments": [ + "0xB3dd782FCe60BCFBBEF1eaD56eF3a24a9c330A38", + "0xf079fF3347FfAEF71AD06953C229F9D5810fca28", + "0x" + ], + "transaction": { + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "to": "0x57c2cd477300e7ec80974b28fa55e34589627cb5", + "gas": "0xd540", + "value": "0x0", + "input": "0x9623609d000000000000000000000000b3dd782fce60bcfbbef1ead56ef3a24a9c330a38000000000000000000000000f079ff3347ffaef71ad06953c229f9d5810fca2800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2e", + "chainId": "0x14a34" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xa1ad4d", + "logs": [ + { + "address": "0xf079ff3347ffaef71ad06953c229f9d5810fca28", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0xc4ca52eca01105b9a2df83ce01616bbe6341a6701c3f844d3c2be420291199bb", + "blockNumber": "0x1c7ff22", + "blockTimestamp": "0x68a35d24", + "transactionHash": "0x9856a53ad430c54bbc703a875c96cd01f7961d1a8eefcc0d5e9a69cc7a4fd21c", + "transactionIndex": "0xf", + "logIndex": "0x5b", + "removed": false + } + ], + "logsBloom": "0x00000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x9856a53ad430c54bbc703a875c96cd01f7961d1a8eefcc0d5e9a69cc7a4fd21c", + "transactionIndex": "0xf", + "blockHash": "0xc4ca52eca01105b9a2df83ce01616bbe6341a6701c3f844d3c2be420291199bb", + "blockNumber": "0x1c7ff22", + "gasUsed": "0x46b4a2", + "effectiveGasPrice": "0xf427c", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "to": null, + "contractAddress": "0xf079ff3347ffaef71ad06953c229f9d5810fca28", + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0xd854adf2", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0x14053120392f", + "l1GasPrice": "0x51f7670", + "l1GasUsed": "0x23e1a" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xa247b1", + "logs": [ + { + "address": "0xb3dd782fce60bcfbbef1ead56ef3a24a9c330a38", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000f079ff3347ffaef71ad06953c229f9d5810fca28" + ], + "data": "0x", + "blockHash": "0xc4ca52eca01105b9a2df83ce01616bbe6341a6701c3f844d3c2be420291199bb", + "blockNumber": "0x1c7ff22", + "blockTimestamp": "0x68a35d24", + "transactionHash": "0x9541f57dcd98e55db55f03f0d11c6d59eb5e0d559eae3629bc9739573165f10d", + "transactionIndex": "0x10", + "logIndex": "0x5c", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000002000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000020000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x9541f57dcd98e55db55f03f0d11c6d59eb5e0d559eae3629bc9739573165f10d", + "transactionIndex": "0x10", + "blockHash": "0xc4ca52eca01105b9a2df83ce01616bbe6341a6701c3f844d3c2be420291199bb", + "blockNumber": "0x1c7ff22", + "gasUsed": "0x9a64", + "effectiveGasPrice": "0xf427c", + "from": "0xaff4be6f091274421f0bf5a2f74ec368a2c017e8", + "to": "0x57c2cd477300e7ec80974b28fa55e34589627cb5", + "contractAddress": null, + "l1BaseFeeScalar": "0x44d", + "l1BlobBaseFee": "0xd854adf2", + "l1BlobBaseFeeScalar": "0xa118b", + "l1Fee": "0x3d2f0f6507", + "l1GasPrice": "0x51f7670", + "l1GasUsed": "0x6da" + } + ], + "libraries": [], + "pending": [], + "returns": { + "0": { + "internal_type": "struct UpgradeCredits.UpgradeResult", + "value": "(0xf079fF3347FfAEF71AD06953C229F9D5810fca28, 0xB3dd782FCe60BCFBBEF1eaD56eF3a24a9c330A38, 0x57C2cD477300E7EC80974b28FA55E34589627cb5)" + } + }, + "timestamp": 1755536697, + "chain": 84532, + "commit": "38e3ec4" +} \ No newline at end of file