ETH Price: $2,609.61 (-0.45%)

Contract

0x395F93350D5102B6139Abfc84a7D6ee70488797C
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Harvest118646412021-02-16 0:46:041339 days ago1613436364IN
0x395F9335...70488797C
0 ETH0.34824392251
Harvest118440012021-02-12 20:25:501343 days ago1613161550IN
0x395F9335...70488797C
0 ETH0.29716018214
Harvest118243772021-02-09 20:08:211346 days ago1612901301IN
0x395F9335...70488797C
0 ETH0.32622923201
Harvest118078852021-02-07 7:13:321348 days ago1612682012IN
0x395F9335...70488797C
0 ETH0.2013822124
Harvest117801392021-02-03 0:49:361352 days ago1612313376IN
0x395F9335...70488797C
0 ETH0.22614342163
Harvest117547562021-01-30 2:54:531356 days ago1611975293IN
0x395F9335...70488797C
0 ETH0.19427487119
Harvest117206272021-01-24 20:59:241362 days ago1611521964IN
0x395F9335...70488797C
0 ETH0.1848868112
Harvest117004872021-01-21 18:39:321365 days ago1611254372IN
0x395F9335...70488797C
0 ETH0.17547914107
Harvest116809342021-01-18 18:43:021368 days ago1610995382IN
0x395F9335...70488797C
0 ETH0.0858017461
Harvest116671492021-01-16 15:53:501370 days ago1610812430IN
0x395F9335...70488797C
0 ETH0.18793727134
Harvest116475162021-01-13 15:40:021373 days ago1610552402IN
0x395F9335...70488797C
0 ETH0.1210527574
Harvest116341602021-01-11 14:28:051375 days ago1610375285IN
0x395F9335...70488797C
0 ETH0.61082166438
Harvest116148592021-01-08 15:19:121378 days ago1610119152IN
0x395F9335...70488797C
0 ETH0.29552976211
Harvest115956322021-01-05 16:36:281381 days ago1609864588IN
0x395F9335...70488797C
0 ETH0.3218544200
Harvest115397712020-12-28 2:52:381389 days ago1609123958IN
0x395F9335...70488797C
0 ETH0.1026294974
Harvest115204592020-12-25 4:01:201392 days ago1608868880IN
0x395F9335...70488797C
0 ETH0.31826002225
Harvest114951252020-12-21 6:43:001396 days ago1608532980IN
0x395F9335...70488797C
0 ETH0.0742015953
Harvest114683632020-12-17 3:56:141400 days ago1608177374IN
0x395F9335...70488797C
0 ETH0.0047224673.05
Harvest114362532020-12-12 5:45:251405 days ago1607751925IN
0x395F9335...70488797C
0 ETH0.0661093547
Harvest114034172020-12-07 4:14:431410 days ago1607314483IN
0x395F9335...70488797C
0 ETH0.0333123324
Harvest113840762020-12-04 4:52:471413 days ago1607057567IN
0x395F9335...70488797C
0 ETH0.0910019565
Harvest113655242020-12-01 8:26:441416 days ago1606811204IN
0x395F9335...70488797C
0 ETH0.14291803101
Harvest113461962020-11-28 9:28:161419 days ago1606555696IN
0x395F9335...70488797C
0 ETH0.0240555117
Harvest113266612020-11-25 9:09:591422 days ago1606295399IN
0x395F9335...70488797C
0 ETH0.0920520756
Harvest112999262020-11-21 6:48:151426 days ago1605941295IN
0x395F9335...70488797C
0 ETH0.0537711438
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
206408852024-08-30 10:46:2348 days ago1725014783
0x395F9335...70488797C
0 ETH
206408852024-08-30 10:46:2348 days ago1725014783
0x395F9335...70488797C
0 ETH
206408852024-08-30 10:46:2348 days ago1725014783
0x395F9335...70488797C
0 ETH
200024672024-06-02 6:52:47137 days ago1717311167
0x395F9335...70488797C
0 ETH
200024672024-06-02 6:52:47137 days ago1717311167
0x395F9335...70488797C
0 ETH
200024672024-06-02 6:52:47137 days ago1717311167
0x395F9335...70488797C
0 ETH
200022412024-06-02 6:07:23137 days ago1717308443
0x395F9335...70488797C
0 ETH
200022412024-06-02 6:07:23137 days ago1717308443
0x395F9335...70488797C
0 ETH
200022412024-06-02 6:07:23137 days ago1717308443
0x395F9335...70488797C
0 ETH
199068102024-05-19 21:57:23151 days ago1716155843
0x395F9335...70488797C
0 ETH
199068102024-05-19 21:57:23151 days ago1716155843
0x395F9335...70488797C
0 ETH
199068102024-05-19 21:57:23151 days ago1716155843
0x395F9335...70488797C
0 ETH
198778652024-05-15 20:47:35155 days ago1715806055
0x395F9335...70488797C
0 ETH
198778652024-05-15 20:47:35155 days ago1715806055
0x395F9335...70488797C
0 ETH
198778652024-05-15 20:47:35155 days ago1715806055
0x395F9335...70488797C
0 ETH
196011532024-04-07 3:30:47193 days ago1712460647
0x395F9335...70488797C
0 ETH
196011532024-04-07 3:30:47193 days ago1712460647
0x395F9335...70488797C
0 ETH
196011532024-04-07 3:30:47193 days ago1712460647
0x395F9335...70488797C
0 ETH
189875172024-01-12 1:23:11279 days ago1705022591
0x395F9335...70488797C
0 ETH
189875172024-01-12 1:23:11279 days ago1705022591
0x395F9335...70488797C
0 ETH
189875172024-01-12 1:23:11279 days ago1705022591
0x395F9335...70488797C
0 ETH
187348872023-12-07 14:03:11315 days ago1701957791
0x395F9335...70488797C
0 ETH
187348872023-12-07 14:03:11315 days ago1701957791
0x395F9335...70488797C
0 ETH
187348872023-12-07 14:03:11315 days ago1701957791
0x395F9335...70488797C
0 ETH
187002632023-12-02 17:38:35320 days ago1701538715
0x395F9335...70488797C
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StrategyYFIGovernance

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-09-24
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.5.17;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function decimals() external view returns (uint);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-call-value
        (bool success, ) = recipient.call.value(amount)("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

interface Controller {
    function vaults(address) external view returns (address);
    function rewards() external view returns (address);
}

/*

 A strategy must implement the following calls;
 
 - deposit()
 - withdraw(address) must exclude any tokens used in the yield - Controller role - withdraw should return to Controller
 - withdraw(uint) - Controller | Vault role - withdraw should always return to vault
 - withdrawAll() - Controller | Vault role - withdraw should always return to vault
 - balanceOf()
 
 Where possible, strategies must remain as immutable as possible, instead of updating variables, we update the contract by linking it in the controller
 
*/

interface Governance {
    function withdraw(uint) external;
    function getReward() external;
    function stake(uint) external;
    function balanceOf(address) external view returns (uint);
    function exit() external;
    function voteFor(uint) external;
    function voteAgainst(uint) external;
}

interface yERC20 {
  function deposit(uint256 _amount) external;
  function withdraw(uint256 _amount) external;
}


interface Uni {
    function swapExactTokensForTokens(uint, uint, address[] calldata, address, uint) external;
}


interface ICurveFi {
  function get_virtual_price() external view returns (uint);
  function add_liquidity(
    uint256[4] calldata amounts,
    uint256 min_mint_amount
  ) external;
  function remove_liquidity_imbalance(
    uint256[4] calldata amounts,
    uint256 max_burn_amount
  ) external;
  function remove_liquidity(
    uint256 _amount,
    uint256[4] calldata amounts
  ) external;
  function exchange(
    int128 from, int128 to, uint256 _from_amount, uint256 _min_to_amount
  ) external;
}

interface Zap {
    function remove_liquidity_one_coin(uint, int128, uint) external;
}

contract StrategyYFIGovernance {
    using SafeERC20 for IERC20;
    using Address for address;
    using SafeMath for uint256;
    
    address constant public want = address(0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e);
    address constant public gov = address(0xBa37B002AbaFDd8E89a1995dA52740bbC013D992);
    address constant public curve = address(0x45F783CCE6B7FF23B2ab2D70e416cdb7D6055f51);
    address constant public zap = address(0xbBC81d23Ea2c3ec7e56D39296F0cbB648873a5d3);
    
    address constant public reward = address(0xdF5e0e81Dff6FAF3A7e52BA697820c5e32D806A8);
    address constant public usdt = address(0xdAC17F958D2ee523a2206206994597C13D831ec7);
    
    address constant public uni = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address constant public weth = address(0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2); // used for crv <> weth <> dai route
    
    uint public fee = 500;
    uint constant public max = 10000;
    
    address public governance;
    address public controller;
    address public strategist;
    
    constructor(address _controller) public {
        governance = msg.sender;
        strategist = msg.sender;
        controller = _controller;
    }
    
    function setFee(uint _fee) external {
        require(msg.sender == governance, "!governance");
        fee = _fee;
    }
    
    function setStrategist(address _strategist) external {
        require(msg.sender == governance, "!governance");
        strategist = _strategist;
    }
    
    function deposit() public {
        IERC20(want).safeApprove(gov, 0);
        IERC20(want).safeApprove(gov, IERC20(want).balanceOf(address(this)));
        Governance(gov).stake(IERC20(want).balanceOf(address(this)));
    }
    
    // Controller only function for creating additional rewards from dust
    function withdraw(IERC20 _asset) external returns (uint balance) {
        require(msg.sender == controller, "!controller");
        require(want != address(_asset), "want");
        balance = _asset.balanceOf(address(this));
        _asset.safeTransfer(controller, balance);
    }
    
    // Withdraw partial funds, normally used with a vault withdrawal
    function withdraw(uint _amount) external {
        require(msg.sender == controller, "!controller");
        uint _balance = IERC20(want).balanceOf(address(this));
        if (_balance < _amount) {
            _amount = _withdrawSome(_amount.sub(_balance));
            _amount = _amount.add(_balance);
        }
        
        uint _fee = _amount.mul(fee).div(max);
        IERC20(want).safeTransfer(Controller(controller).rewards(), _fee);
        address _vault = Controller(controller).vaults(address(want));
        require(_vault != address(0), "!vault"); // additional protection so we don't burn the funds
        
        IERC20(want).safeTransfer(_vault, _amount.sub(_fee));
    }
    
    // Withdraw all funds, normally used when migrating strategies
    function withdrawAll() external returns (uint balance) {
        require(msg.sender == controller, "!controller");
        _withdrawAll();
        balance = IERC20(want).balanceOf(address(this));
        
        address _vault = Controller(controller).vaults(address(want));
        require(_vault != address(0), "!vault"); // additional protection so we don't burn the funds
        IERC20(want).safeTransfer(_vault, balance);
    }
    
    function _withdrawAll() internal {
        Governance(gov).exit();
    }
    
    function harvest() public {
        require(msg.sender == strategist || msg.sender == governance || msg.sender == tx.origin, "!authorized");
        Governance(gov).getReward();
        uint _balance = IERC20(reward).balanceOf(address(this));
        if (_balance > 0) {
            IERC20(reward).safeApprove(zap, 0);
            IERC20(reward).safeApprove(zap, _balance);
            Zap(zap).remove_liquidity_one_coin(_balance, 2, 0);
        }
        _balance = IERC20(usdt).balanceOf(address(this));
        if (_balance > 0) {
            IERC20(usdt).safeApprove(uni, 0);
            IERC20(usdt).safeApprove(uni, _balance);
            
            address[] memory path = new address[](3);
            path[0] = usdt;
            path[1] = weth;
            path[2] = want;
            
            Uni(uni).swapExactTokensForTokens(_balance, uint(0), path, address(this), now.add(1800));
        }
        if (IERC20(want).balanceOf(address(this)) > 0) {
            deposit();
        }
        
    }
    
    function _withdrawSome(uint256 _amount) internal returns (uint) {
        Governance(gov).withdraw(_amount);
        return _amount;
    }
    
    function balanceOfWant() public view returns (uint) {
        return IERC20(want).balanceOf(address(this));
    }
    
    function balanceOfYGov() public view returns (uint) {
        return Governance(gov).balanceOf(address(this));
    }
    
    function balanceOf() public view returns (uint) {
        return balanceOfWant()
               .add(balanceOfYGov());
    }
    
    function voteFor(uint _proposal) external {
        require(msg.sender == governance, "!governance");
        Governance(gov).voteFor(_proposal);
    }
    
    function voteAgainst(uint _proposal) external {
        require(msg.sender == governance, "!governance");
        Governance(gov).voteAgainst(_proposal);
    }
    
    function setGovernance(address _governance) external {
        require(msg.sender == governance, "!governance");
        governance = _governance;
    }
    
    function setController(address _controller) external {
        require(msg.sender == governance, "!governance");
        controller = _controller;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceOfWant","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceOfYGov","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"curve","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gov","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"harvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"max","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reward","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"setController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_strategist","type":"address"}],"name":"setStrategist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"strategist","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"uni","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"usdt","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_proposal","type":"uint256"}],"name":"voteAgainst","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_proposal","type":"uint256"}],"name":"voteFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"want","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weth","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_asset","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawAll","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"zap","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

60806040526101f460005534801561001657600080fd5b5060405161329d38038061329d8339818101604052602081101561003957600080fd5b810190808051906020019092919050505033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506131808061011d6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ac5db19116100f9578063ab033ea911610097578063d0e30db011610071578063d0e30db0146106c4578063ddca3f43146106ce578063edc9af95146106ec578063f77c479114610736576101a9565b8063ab033ea91461061e578063c1a3d44c14610662578063c7b9d53014610680576101a9565b8063750e443a116100d3578063750e443a14610560578063853828b61461058e57806386a50535146105ac57806392eefe9b146105da576101a9565b80636ac5db19146104da5780637165485d146104f8578063722713f714610542576101a9565b80632e1a7d4d116101665780634641257d116101405780634641257d1461040057806351cff8d91461040a5780635aa6e6751461046257806369fe0e2d146104ac576101a9565b80632e1a7d4d1461033e5780632f48ab7d1461036c5780633fc8cef3146103b6576101a9565b8063077c14b9146101ae57806312d43a51146101cc5780631f1fcd51146102165780631fe4a68614610260578063228cb733146102aa578063262d6152146102f4575b600080fd5b6101b6610780565b6040518082815260200191505060405180910390f35b6101d4610853565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61021e61086b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610268610883565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b26108a9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102fc6108c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61036a6004803603602081101561035457600080fd5b81019080803590602001909291905050506108d9565b005b610374610da1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103be610db9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610408610dd1565b005b61044c6004803603602081101561042057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611675565b6040518082815260200191505060405180910390f35b61046a6118fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104d8600480360360208110156104c257600080fd5b8101908080359060200190929190505050611922565b005b6104e26119ef565b6040518082815260200191505060405180910390f35b6105006119f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61054a611a0d565b6040518082815260200191505060405180910390f35b61058c6004803603602081101561057657600080fd5b8101908080359060200190929190505050611a35565b005b610596611b7a565b6040518082815260200191505060405180910390f35b6105d8600480360360208110156105c257600080fd5b8101908080359060200190929190505050611eed565b005b61061c600480360360208110156105f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612032565b005b6106606004803603602081101561063457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612139565b005b61066a612240565b6040518082815260200191505060405180910390f35b6106c26004803603602081101561069657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612313565b005b6106cc61241a565b005b6106d66126d8565b6040518082815260200191505060405180910390f35b6106f46126de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61073e6126f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600073ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561081357600080fd5b505afa158015610827573d6000803e3d6000fd5b505050506040513d602081101561083d57600080fd5b8101908080519060200190929190505050905090565b73ba37b002abafdd8e89a1995da52740bbc013d99281565b730bc529c00c6401aef6d220be8c6ea1667f6ad93e81565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73df5e0e81dff6faf3a7e52ba697820c5e32d806a881565b73bbc81d23ea2c3ec7e56d39296f0cbb648873a5d381565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b8101908080519060200190929190505050905081811015610aa757610a8f610a8a828461271c90919063ffffffff16565b612766565b9150610aa481836127ef90919063ffffffff16565b91505b6000610ad2612710610ac46000548661287790919063ffffffff16565b6128fd90919063ffffffff16565b9050610bb5600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639ec5a8946040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3f57600080fd5b505afa158015610b53573d6000803e3d6000fd5b505050506040513d6020811015610b6957600080fd5b810190808051906020019092919050505082730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a622ee7c730bc529c00c6401aef6d220be8c6ea1667f6ad93e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c6a57600080fd5b505afa158015610c7e573d6000803e3d6000fd5b505050506040513d6020811015610c9457600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f217661756c74000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610d9b81610d61848761271c90919063ffffffff16565b730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b50505050565b73dac17f958d2ee523a2206206994597c13d831ec781565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e7a5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610eb057503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610f22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21617574686f72697a656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b50505050600073df5e0e81dff6faf3a7e52ba697820c5e32d806a873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d602081101561105357600080fd5b8101908080519060200190929190505050905060008111156111ab576110c373bbc81d23ea2c3ec7e56d39296f0cbb648873a5d3600073df5e0e81dff6faf3a7e52ba697820c5e32d806a873ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b61111673bbc81d23ea2c3ec7e56d39296f0cbb648873a5d38273df5e0e81dff6faf3a7e52ba697820c5e32d806a873ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b73bbc81d23ea2c3ec7e56d39296f0cbb648873a5d373ffffffffffffffffffffffffffffffffffffffff16631a4d01d282600260006040518463ffffffff1660e01b81526004018084815260200183600f0b81526020018281526020019350505050600060405180830381600087803b15801561119257600080fd5b505af11580156111a6573d6000803e3d6000fd5b505050505b73dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561123c57600080fd5b505afa158015611250573d6000803e3d6000fd5b505050506040513d602081101561126657600080fd5b810190808051906020019092919050505090506000811115611595576112d6737a250d5630b4cf539739df2c5dacb4c659f2488d600073dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b611329737a250d5630b4cf539739df2c5dacb4c659f2488d8273dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b6060600360405190808252806020026020018201604052801561135b5781602001602082028038833980820191505090505b50905073dac17f958d2ee523a2206206994597c13d831ec78160008151811061138057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106113dc57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050730bc529c00c6401aef6d220be8c6ea1667f6ad93e8160028151811061143857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff166338ed173983600084306114bc610708426127ef90919063ffffffff16565b6040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015611552578082015181840152602081019050611537565b505050509050019650505050505050600060405180830381600087803b15801561157b57600080fd5b505af115801561158f573d6000803e3d6000fd5b50505050505b6000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561162857600080fd5b505afa15801561163c573d6000803e3d6000fd5b505050506040513d602081101561165257600080fd5b810190808051906020019092919050505011156116725761167161241a565b5b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff1614156117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f77616e740000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561186d57600080fd5b505afa158015611881573d6000803e3d6000fd5b505050506040513d602081101561189757600080fd5b810190808051906020019092919050505090506118f7600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060008190555050565b61271081565b7345f783cce6b7ff23b2ab2d70e416cdb7d6055f5181565b6000611a30611a1a610780565b611a22612240565b6127ef90919063ffffffff16565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff1663750e443a826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b5f57600080fd5b505af1158015611b73573d6000803e3d6000fd5b5050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b611c47612c38565b730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cd857600080fd5b505afa158015611cec573d6000803e3d6000fd5b505050506040513d6020811015611d0257600080fd5b810190808051906020019092919050505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a622ee7c730bc529c00c6401aef6d220be8c6ea1667f6ad93e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611dca57600080fd5b505afa158015611dde573d6000803e3d6000fd5b505050506040513d6020811015611df457600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611eaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f217661756c74000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611ee98183730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b5090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff166386a50535826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561201757600080fd5b505af115801561202b573d6000803e3d6000fd5b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122d357600080fd5b505afa1580156122e7573d6000803e3d6000fd5b505050506040513d60208110156122fd57600080fd5b8101908080519060200190929190505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61246e73ba37b002abafdd8e89a1995da52740bbc013d9926000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b61258c73ba37b002abafdd8e89a1995da52740bbc013d992730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561251757600080fd5b505afa15801561252b573d6000803e3d6000fd5b505050506040513d602081101561254157600080fd5b8101908080519060200190929190505050730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff1663a694fc3a730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561264d57600080fd5b505afa158015612661573d6000803e3d6000fd5b505050506040513d602081101561267757600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156126be57600080fd5b505af11580156126d2573d6000803e3d6000fd5b50505050565b60005481565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061275e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cae565b905092915050565b600073ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156127cf57600080fd5b505af11580156127e3573d6000803e3d6000fd5b50505050819050919050565b60008082840190508381101561286d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141561288a57600090506128f7565b600082840290508284828161289b57fe5b04146128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130cb6021913960400191505060405180910390fd5b809150505b92915050565b600061293f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d6e565b905092915050565b612a13838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e34565b505050565b6000811480612b12575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612ad557600080fd5b505afa158015612ae9573d6000803e3d6000fd5b505050506040513d6020811015612aff57600080fd5b8101908080519060200190929190505050145b612b67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806131166036913960400191505060405180910390fd5b612c33838473ffffffffffffffffffffffffffffffffffffffff1663095ea7b3905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e34565b505050565b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff1663e9fad8ee6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c9457600080fd5b505af1158015612ca8573d6000803e3d6000fd5b50505050565b6000838311158290612d5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d20578082015181840152602081019050612d05565b50505050905090810190601f168015612d4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290612e1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ddf578082015181840152602081019050612dc4565b50505050905090810190601f168015612e0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612e2657fe5b049050809150509392505050565b612e538273ffffffffffffffffffffffffffffffffffffffff1661307f565b612ec5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310612f145780518252602082019150602081019050602083039250612ef1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612f76576040519150601f19603f3d011682016040523d82523d6000602084013e612f7b565b606091505b509150915081612ff3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156130795780806020019051602081101561301257600080fd5b8101908080519060200190929190505050613078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806130ec602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156130c15750808214155b9250505091905056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a723158207b84c7d45a4e03d3e6da24ae312b138dfee182a6e241b8731d97e0cf2dcd915664736f6c634300051100320000000000000000000000009e65ad11b299ca0abefc2799ddb6314ef2d91080

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636ac5db19116100f9578063ab033ea911610097578063d0e30db011610071578063d0e30db0146106c4578063ddca3f43146106ce578063edc9af95146106ec578063f77c479114610736576101a9565b8063ab033ea91461061e578063c1a3d44c14610662578063c7b9d53014610680576101a9565b8063750e443a116100d3578063750e443a14610560578063853828b61461058e57806386a50535146105ac57806392eefe9b146105da576101a9565b80636ac5db19146104da5780637165485d146104f8578063722713f714610542576101a9565b80632e1a7d4d116101665780634641257d116101405780634641257d1461040057806351cff8d91461040a5780635aa6e6751461046257806369fe0e2d146104ac576101a9565b80632e1a7d4d1461033e5780632f48ab7d1461036c5780633fc8cef3146103b6576101a9565b8063077c14b9146101ae57806312d43a51146101cc5780631f1fcd51146102165780631fe4a68614610260578063228cb733146102aa578063262d6152146102f4575b600080fd5b6101b6610780565b6040518082815260200191505060405180910390f35b6101d4610853565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61021e61086b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610268610883565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102b26108a9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102fc6108c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61036a6004803603602081101561035457600080fd5b81019080803590602001909291905050506108d9565b005b610374610da1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103be610db9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610408610dd1565b005b61044c6004803603602081101561042057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611675565b6040518082815260200191505060405180910390f35b61046a6118fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104d8600480360360208110156104c257600080fd5b8101908080359060200190929190505050611922565b005b6104e26119ef565b6040518082815260200191505060405180910390f35b6105006119f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61054a611a0d565b6040518082815260200191505060405180910390f35b61058c6004803603602081101561057657600080fd5b8101908080359060200190929190505050611a35565b005b610596611b7a565b6040518082815260200191505060405180910390f35b6105d8600480360360208110156105c257600080fd5b8101908080359060200190929190505050611eed565b005b61061c600480360360208110156105f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612032565b005b6106606004803603602081101561063457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612139565b005b61066a612240565b6040518082815260200191505060405180910390f35b6106c26004803603602081101561069657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612313565b005b6106cc61241a565b005b6106d66126d8565b6040518082815260200191505060405180910390f35b6106f46126de565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61073e6126f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600073ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561081357600080fd5b505afa158015610827573d6000803e3d6000fd5b505050506040513d602081101561083d57600080fd5b8101908080519060200190929190505050905090565b73ba37b002abafdd8e89a1995da52740bbc013d99281565b730bc529c00c6401aef6d220be8c6ea1667f6ad93e81565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b73df5e0e81dff6faf3a7e52ba697820c5e32d806a881565b73bbc81d23ea2c3ec7e56d39296f0cbb648873a5d381565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b8101908080519060200190929190505050905081811015610aa757610a8f610a8a828461271c90919063ffffffff16565b612766565b9150610aa481836127ef90919063ffffffff16565b91505b6000610ad2612710610ac46000548661287790919063ffffffff16565b6128fd90919063ffffffff16565b9050610bb5600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639ec5a8946040518163ffffffff1660e01b815260040160206040518083038186803b158015610b3f57600080fd5b505afa158015610b53573d6000803e3d6000fd5b505050506040513d6020811015610b6957600080fd5b810190808051906020019092919050505082730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a622ee7c730bc529c00c6401aef6d220be8c6ea1667f6ad93e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c6a57600080fd5b505afa158015610c7e573d6000803e3d6000fd5b505050506040513d6020811015610c9457600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f217661756c74000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b610d9b81610d61848761271c90919063ffffffff16565b730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b50505050565b73dac17f958d2ee523a2206206994597c13d831ec781565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e7a5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610eb057503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610f22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21617574686f72697a656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff16633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b50505050600073df5e0e81dff6faf3a7e52ba697820c5e32d806a873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561102957600080fd5b505afa15801561103d573d6000803e3d6000fd5b505050506040513d602081101561105357600080fd5b8101908080519060200190929190505050905060008111156111ab576110c373bbc81d23ea2c3ec7e56d39296f0cbb648873a5d3600073df5e0e81dff6faf3a7e52ba697820c5e32d806a873ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b61111673bbc81d23ea2c3ec7e56d39296f0cbb648873a5d38273df5e0e81dff6faf3a7e52ba697820c5e32d806a873ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b73bbc81d23ea2c3ec7e56d39296f0cbb648873a5d373ffffffffffffffffffffffffffffffffffffffff16631a4d01d282600260006040518463ffffffff1660e01b81526004018084815260200183600f0b81526020018281526020019350505050600060405180830381600087803b15801561119257600080fd5b505af11580156111a6573d6000803e3d6000fd5b505050505b73dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561123c57600080fd5b505afa158015611250573d6000803e3d6000fd5b505050506040513d602081101561126657600080fd5b810190808051906020019092919050505090506000811115611595576112d6737a250d5630b4cf539739df2c5dacb4c659f2488d600073dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b611329737a250d5630b4cf539739df2c5dacb4c659f2488d8273dac17f958d2ee523a2206206994597c13d831ec773ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b6060600360405190808252806020026020018201604052801561135b5781602001602082028038833980820191505090505b50905073dac17f958d2ee523a2206206994597c13d831ec78160008151811061138057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106113dc57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050730bc529c00c6401aef6d220be8c6ea1667f6ad93e8160028151811061143857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff166338ed173983600084306114bc610708426127ef90919063ffffffff16565b6040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015611552578082015181840152602081019050611537565b505050509050019650505050505050600060405180830381600087803b15801561157b57600080fd5b505af115801561158f573d6000803e3d6000fd5b50505050505b6000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561162857600080fd5b505afa15801561163c573d6000803e3d6000fd5b505050506040513d602081101561165257600080fd5b810190808051906020019092919050505011156116725761167161241a565b5b50565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff1614156117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f77616e740000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561186d57600080fd5b505afa158015611881573d6000803e3d6000fd5b505050506040513d602081101561189757600080fd5b810190808051906020019092919050505090506118f7600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b8060008190555050565b61271081565b7345f783cce6b7ff23b2ab2d70e416cdb7d6055f5181565b6000611a30611a1a610780565b611a22612240565b6127ef90919063ffffffff16565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611af8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff1663750e443a826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611b5f57600080fd5b505af1158015611b73573d6000803e3d6000fd5b5050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b611c47612c38565b730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cd857600080fd5b505afa158015611cec573d6000803e3d6000fd5b505050506040513d6020811015611d0257600080fd5b810190808051906020019092919050505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a622ee7c730bc529c00c6401aef6d220be8c6ea1667f6ad93e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611dca57600080fd5b505afa158015611dde573d6000803e3d6000fd5b505050506040513d6020811015611df457600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611eaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f217661756c74000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611ee98183730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166129479092919063ffffffff16565b5090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fb0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff166386a50535826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561201757600080fd5b505af115801561202b573d6000803e3d6000fd5b5050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146121fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122d357600080fd5b505afa1580156122e7573d6000803e3d6000fd5b505050506040513d60208110156122fd57600080fd5b8101908080519060200190929190505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61246e73ba37b002abafdd8e89a1995da52740bbc013d9926000730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b61258c73ba37b002abafdd8e89a1995da52740bbc013d992730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561251757600080fd5b505afa15801561252b573d6000803e3d6000fd5b505050506040513d602081101561254157600080fd5b8101908080519060200190929190505050730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff16612a189092919063ffffffff16565b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff1663a694fc3a730bc529c00c6401aef6d220be8c6ea1667f6ad93e73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561264d57600080fd5b505afa158015612661573d6000803e3d6000fd5b505050506040513d602081101561267757600080fd5b81019080805190602001909291905050506040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156126be57600080fd5b505af11580156126d2573d6000803e3d6000fd5b50505050565b60005481565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061275e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cae565b905092915050565b600073ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156127cf57600080fd5b505af11580156127e3573d6000803e3d6000fd5b50505050819050919050565b60008082840190508381101561286d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008083141561288a57600090506128f7565b600082840290508284828161289b57fe5b04146128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806130cb6021913960400191505060405180910390fd5b809150505b92915050565b600061293f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d6e565b905092915050565b612a13838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e34565b505050565b6000811480612b12575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015612ad557600080fd5b505afa158015612ae9573d6000803e3d6000fd5b505050506040513d6020811015612aff57600080fd5b8101908080519060200190929190505050145b612b67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806131166036913960400191505060405180910390fd5b612c33838473ffffffffffffffffffffffffffffffffffffffff1663095ea7b3905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612e34565b505050565b73ba37b002abafdd8e89a1995da52740bbc013d99273ffffffffffffffffffffffffffffffffffffffff1663e9fad8ee6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c9457600080fd5b505af1158015612ca8573d6000803e3d6000fd5b50505050565b6000838311158290612d5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612d20578082015181840152602081019050612d05565b50505050905090810190601f168015612d4d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290612e1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ddf578082015181840152602081019050612dc4565b50505050905090810190601f168015612e0c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612e2657fe5b049050809150509392505050565b612e538273ffffffffffffffffffffffffffffffffffffffff1661307f565b612ec5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310612f145780518252602082019150602081019050602083039250612ef1565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612f76576040519150601f19603f3d011682016040523d82523d6000602084013e612f7b565b606091505b509150915081612ff3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b6000815111156130795780806020019051602081101561301257600080fd5b8101908080519060200190929190505050613078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806130ec602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b82141580156130c15750808214155b9250505091905056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a723158207b84c7d45a4e03d3e6da24ae312b138dfee182a6e241b8731d97e0cf2dcd915664736f6c63430005110032

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000009e65ad11b299ca0abefc2799ddb6314ef2d91080

-----Decoded View---------------
Arg [0] : _controller (address): 0x9E65Ad11b299CA0Abefc2799dDB6314Ef2d91080

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009e65ad11b299ca0abefc2799ddb6314ef2d91080


Deployed Bytecode Sourcemap

6538:5822:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6538:5822:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11426:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6769:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6680:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7584:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7041:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6947:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8770:706;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8770:706:0;;;;;;;;;;;;;;;;;:::i;:::-;;7132:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7315;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10096:1038;;;:::i;:::-;;8402:286;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8402:286:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7520:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7785:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7785:124:0;;;;;;;;;;;;;;;;;:::i;:::-;;7475:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6857:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11556:127;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11861:162;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11861:162:0;;;;;;;;;;;;;;;;;:::i;:::-;;9556:442;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11695:154;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11695:154:0;;;;;;;;;;;;;;;;;:::i;:::-;;12202:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12202:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12035;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12035:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11299:115;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7921:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7921:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;8088:227;;;:::i;:::-;;7447:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7227:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7552:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11426:118;11472:4;6807:42;11496:25;;;11530:4;11496:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11496:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11496:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11496:40:0;;;;;;;;;;;;;;;;11489:47;;11426:118;:::o;6769:81::-;6807:42;6769:81;:::o;6680:82::-;6719:42;6680:82;:::o;7584:25::-;;;;;;;;;;;;;:::o;7041:84::-;7082:42;7041:84;:::o;6947:81::-;6985:42;6947:81;:::o;8770:706::-;8844:10;;;;;;;;;;;8830:24;;:10;:24;;;8822:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8881:13;6719:42;8897:22;;;8928:4;8897:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8897:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8897:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8897:37:0;;;;;;;;;;;;;;;;8881:53;;8960:7;8949:8;:18;8945:143;;;8994:36;9008:21;9020:8;9008:7;:11;;:21;;;;:::i;:::-;8994:13;:36::i;:::-;8984:46;;9055:21;9067:8;9055:7;:11;;:21;;;;:::i;:::-;9045:31;;8945:143;9108:9;9120:25;7502:5;9120:16;9132:3;;9120:7;:11;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;9108:37;;9156:65;9193:10;;;;;;;;;;;9182:30;;;:32;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9182:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9182:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9182:32:0;;;;;;;;;;;;;;;;9216:4;6719:42;9156:25;;;;:65;;;;;:::i;:::-;9232:14;9260:10;;;;;;;;;;;9249:29;;;6719:42;9249:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9249:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9249:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9249:44:0;;;;;;;;;;;;;;;;9232:61;;9330:1;9312:20;;:6;:20;;;;9304:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9416:52;9442:6;9450:17;9462:4;9450:7;:11;;:17;;;;:::i;:::-;6719:42;9416:25;;;;:52;;;;;:::i;:::-;8770:706;;;;:::o;7132:82::-;7171:42;7132:82;:::o;7315:::-;7354:42;7315:82;:::o;10096:1038::-;10155:10;;;;;;;;;;;10141:24;;:10;:24;;;:52;;;;10183:10;;;;;;;;;;;10169:24;;:10;:24;;;10141:52;:79;;;;10211:9;10197:23;;:10;:23;;;10141:79;10133:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6807:42;10247:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10247:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10247:27:0;;;;10285:13;7082:42;10301:24;;;10334:4;10301:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10301:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10301:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10301:39:0;;;;;;;;;;;;;;;;10285:55;;10366:1;10355:8;:12;10351:200;;;10384:34;6985:42;10416:1;7082:42;10384:26;;;;:34;;;;;:::i;:::-;10433:41;6985:42;10465:8;7082:42;10433:26;;;;:41;;;;;:::i;:::-;6985:42;10489:34;;;10524:8;10534:1;10537;10489:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10489:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10489:50:0;;;;10351:200;7171:42;10572:22;;;10603:4;10572:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10572:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10572:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10572:37:0;;;;;;;;;;;;;;;;10561:48;;10635:1;10624:8;:12;10620:404;;;10653:32;7265:42;10683:1;7171:42;10653:24;;;;:32;;;;;:::i;:::-;10700:39;7265:42;10730:8;7171:42;10700:24;;;;:39;;;;;:::i;:::-;10768:21;10806:1;10792:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;10792:16:0;;;;10768:40;;7171:42;10823:4;10828:1;10823:7;;;;;;;;;;;;;:14;;;;;;;;;;;7354:42;10852:4;10857:1;10852:7;;;;;;;;;;;;;:14;;;;;;;;;;;6719:42;10881:4;10886:1;10881:7;;;;;;;;;;;;;:14;;;;;;;;;;;7265:42;10924:33;;;10958:8;10973:1;10977:4;10991;10998:13;11006:4;10998:3;:7;;:13;;;;:::i;:::-;10924:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10924:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10924:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10924:88:0;;;;10620:404;;11078:1;6719:42;11038:22;;;11069:4;11038:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11038:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11038:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11038:37:0;;;;;;;;;;;;;;;;:41;11034:83;;;11096:9;:7;:9::i;:::-;11034:83;10096:1038;:::o;8402:286::-;8453:12;8500:10;;;;;;;;;;;8486:24;;:10;:24;;;8478:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8561:6;8545:23;;6719:42;8545:23;;;;8537:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8598:6;:16;;;8623:4;8598:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8598:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8598:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8598:31:0;;;;;;;;;;;;;;;;8588:41;;8640:40;8660:10;;;;;;;;;;;8672:7;8640:6;:19;;;;:40;;;;;:::i;:::-;8402:286;;;:::o;7520:25::-;;;;;;;;;;;;;:::o;7785:124::-;7854:10;;;;;;;;;;;7840:24;;:10;:24;;;7832:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7897:4;7891:3;:10;;;;7785:124;:::o;7475:32::-;7502:5;7475:32;:::o;6857:83::-;6897:42;6857:83;:::o;11556:127::-;11598:4;11622:53;11659:15;:13;:15::i;:::-;11622;:13;:15::i;:::-;:36;;:53;;;;:::i;:::-;11615:60;;11556:127;:::o;11861:162::-;11940:10;;;;;;;;;;;11926:24;;:10;:24;;;11918:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6807:42;11977:27;;;12005:9;11977:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11977:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11977:38:0;;;;11861:162;:::o;9556:442::-;9597:12;9644:10;;;;;;;;;;;9630:24;;:10;:24;;;9622:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9681:14;:12;:14::i;:::-;6719:42;9716:22;;;9747:4;9716:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9716:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9716:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9716:37:0;;;;;;;;;;;;;;;;9706:47;;9774:14;9802:10;;;;;;;;;;;9791:29;;;6719:42;9791:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9791:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9791:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9791:44:0;;;;;;;;;;;;;;;;9774:61;;9872:1;9854:20;;:6;:20;;;;9846:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9948:42;9974:6;9982:7;6719:42;9948:25;;;;:42;;;;;:::i;:::-;9556:442;;:::o;11695:154::-;11770:10;;;;;;;;;;;11756:24;;:10;:24;;;11748:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6807:42;11807:23;;;11831:9;11807:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11807:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11807:34:0;;;;11695:154;:::o;12202:155::-;12288:10;;;;;;;;;;;12274:24;;:10;:24;;;12266:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12338:11;12325:10;;:24;;;;;;;;;;;;;;;;;;12202:155;:::o;12035:::-;12121:10;;;;;;;;;;;12107:24;;:10;:24;;;12099:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12171:11;12158:10;;:24;;;;;;;;;;;;;;;;;;12035:155;:::o;11299:115::-;11345:4;6719:42;11369:22;;;11400:4;11369:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11369:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11369:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11369:37:0;;;;;;;;;;;;;;;;11362:44;;11299:115;:::o;7921:155::-;8007:10;;;;;;;;;;;7993:24;;:10;:24;;;7985:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8057:11;8044:10;;:24;;;;;;;;;;;;;;;;;;7921:155;:::o;8088:227::-;8125:32;6807:42;8155:1;6719:42;8125:24;;;;:32;;;;;:::i;:::-;8168:68;6807:42;6719;8198:22;;;8229:4;8198:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8198:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8198:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8198:37:0;;;;;;;;;;;;;;;;6719:42;8168:24;;;;:68;;;;;:::i;:::-;6807:42;8247:21;;;6719:42;8269:22;;;8300:4;8269:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8269:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8269:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8269:37:0;;;;;;;;;;;;;;;;8247:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8247:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8247:60:0;;;;8088:227::o;7447:21::-;;;;:::o;7227:81::-;7265:42;7227:81;:::o;7552:25::-;;;;;;;;;;;;;:::o;1006:136::-;1064:7;1091:43;1095:1;1098;1091:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1084:50;;1006:136;;;;:::o;11146:141::-;11204:4;6807:42;11221:24;;;11246:7;11221:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11221:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11221:33:0;;;;11272:7;11265:14;;11146:141;;;:::o;819:181::-;877:7;897:9;913:1;909;:5;897:17;;938:1;933;:6;;925:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;991:1;984:8;;;819:181;;;;:::o;1346:250::-;1404:7;1433:1;1428;:6;1424:47;;;1458:1;1451:8;;;;1424:47;1483:9;1499:1;1495;:5;1483:17;;1528:1;1523;1519;:5;;;;;;:10;1511:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1587:1;1580:8;;;1346:250;;;;;:::o;1602:132::-;1660:7;1687:39;1691:1;1694;1687:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1680:46;;1602:132;;;;:::o;3319:176::-;3402:85;3421:5;3451;:14;;;:23;;;;3476:2;3480:5;3428:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3428:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3428:58:0;3402:18;:85::i;:::-;3319:176;;;:::o;3715:347::-;3820:1;3811:5;:10;3810:62;;;;3870:1;3827:5;:15;;;3851:4;3858:7;3827:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3827:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3827:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3827:39:0;;;;;;;;;;;;;;;;:44;3810:62;3802:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3965:89;3984:5;4014;:13;;;:22;;;;4038:7;4047:5;3991:62;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3991:62:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3991:62:0;3965:18;:89::i;:::-;3715:347;;;:::o;10010:74::-;6807:42;10054:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10054:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10054:22:0;;;;10010:74::o;1148:192::-;1234:7;1267:1;1262;:6;;1270:12;1254:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1254:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1294:9;1310:1;1306;:5;1294:17;;1331:1;1324:8;;;1148:192;;;;;:::o;1740:258::-;1826:7;1925:1;1921;:5;1928:12;1913:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1913:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1952:9;1968:1;1964;:5;;;;;;1952:17;;1989:1;1982:8;;;1740:258;;;;;:::o;4068:598::-;4156:27;4164:5;4156:25;;;:27::i;:::-;4148:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4293:12;4307:23;4342:5;4334:19;;4354:4;4334:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4334:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4292:67:0;;;;4378:7;4370:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4459:1;4439:10;:17;:21;4435:224;;;4581:10;4570:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4570:30:0;;;;;;;;;;;;;;;;4562:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4435:224;4068:598;;;;:::o;2336:374::-;2396:4;2413:16;2440:19;2462:66;2440:88;;;;2631:7;2619:20;2607:32;;2671:3;2659:15;;:8;:15;;:42;;;;;2690:11;2678:8;:23;;2659:42;2651:51;;;;2336:374;;;:::o

Swarm Source

bzzr://7b84c7d45a4e03d3e6da24ae312b138dfee182a6e241b8731d97e0cf2dcd9156

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.