Contract 0xd6214317bF66921154D78e3074bADA013A4De8E8

 
Txn Hash Method
Block
From
To
Value
0xac4d785b02460f8f23cc9e31ef6e4b84cbaf2c6802513baf89e13d11d7dc6c30Set Governance106062792020-08-06 12:40:10407 days 7 hrs agoyearn: Deployer IN  0xd6214317bf66921154d78e3074bada013a4de8e80 Ether0.00184762565
0xccf6560347c8a529bf4cdfe13a849290440f9100f6fec0e4ae06acc026f4a8d00x60806040106035242020-08-06 2:33:32407 days 17 hrs agoyearn: Deployer IN  Create: StrategyMStableSavingsTUSD0 Ether0.10398754842
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StrategyMStableSavingsTUSD

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-08-06
*/

// 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);
}

interface MStable {
    function mint(address, uint) external;
    function redeem(address, uint) external;
}

interface mSavings {
    function depositSavings(uint) external;
    function creditBalances(address) external view returns (uint);
    function redeem(uint) external;
    function exchangeRate() external view returns (uint);
}

/*

 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
 
*/

contract StrategyMStableSavingsTUSD {
    using SafeERC20 for IERC20;
    using Address for address;
    using SafeMath for uint256;
    
    address constant public want = address(0x0000000000085d4780B73119b644AE5ecd22b376);
    address constant public mUSD = address(0xe2f2a5C287993345a840Db3B0845fbC70f5935a5);
    address constant public mSave = address(0xcf3F73290803Fc04425BEE135a4Caeb2BaB2C2A1);

    address public governance;
    address public controller;
    
    constructor(address _controller) public {
        governance = msg.sender;
        controller = _controller;
    }
    
    function getName() external pure returns (string memory) {
        return "StrategyMStableSavingsTUSD";
    }
    
    function deposit() external {
        uint _balance = IERC20(want).balanceOf(address(this));
        if (_balance > 0) {
            IERC20(want).safeApprove(address(mUSD), 0);
            IERC20(want).safeApprove(address(mUSD), _balance);
            MStable(mUSD).mint(want, _balance);
        }
        _balance = IERC20(mUSD).balanceOf(address(this));
        if (_balance > 0) {
            IERC20(mUSD).safeApprove(address(mSave), 0);
            IERC20(mUSD).safeApprove(address(mSave), _balance);
            mSavings(mSave).depositSavings(_balance);
        }
    }
    
    // Controller only function for creating additional rewards from dust
    function withdraw(IERC20 _asset) external returns (uint balance) {
        require(msg.sender == controller, "!controller");
        require(address(_asset) != address(mUSD), "!musd");
        require(address(_asset) != address(want), "!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);
        }
        if (_amount > 0) {
            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);
        }
        
    }
    
    // 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));
        if (balance > 0) {
            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 {
        uint _credit = mSavings(mSave).creditBalances(address(this));
        if (_credit > 0) {
            mSavings(mSave).redeem(_credit);
        }
        uint _balance = IERC20(mUSD).balanceOf(address(this));
        if (_balance > 0) {
            MStable(mUSD).redeem(want, _balance);
        }
    }
    
    function _withdrawSome(uint256 _amount) internal returns (uint) {
        uint256 b = balanceSavings();
        uint256 bT = balanceSavingsInToken();
        require(bT >= _amount, "insufficient funds");
        // can have unintentional rounding errors
        uint256 amount = (b.mul(_amount).div(bT)).add(1);
        uint _before = IERC20(mUSD).balanceOf(address(this));
        _withdrawSavings(amount);
        uint _after = IERC20(mUSD).balanceOf(address(this));
        uint _wBefore = IERC20(want).balanceOf(address(this));
        MStable(mUSD).redeem(want, _after.sub(_before));
        uint _wAfter = IERC20(want).balanceOf(address(this));
        return _wAfter.sub(_wBefore);
    }
    
    function balanceOf() public view returns (uint) {
        return IERC20(want).balanceOf(address(this))
                .add(IERC20(mUSD).balanceOf(address(this)))
                .add(balanceSavingsInToken());
    }
    
    function _withdrawSavings(uint amount) internal {
        mSavings(mSave).redeem(amount);
    }
    
    function balanceSavingsInToken() public view returns (uint256) {
        // Mantisa 1e18 to decimals
        uint256 b = balanceSavings();
        if (b > 0) {
            b = b.mul(mSavings(mSave).exchangeRate()).div(1e18);
        }
        return b;
    }
    
    function balanceSavings() public view returns (uint256) {
        return mSavings(mSave).creditBalances(address(this));
    }
    
    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":"balanceSavings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceSavingsInToken","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":false,"inputs":[],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getName","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mSave","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mUSD","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":"address","name":"_governance","type":"address"}],"name":"setGovernance","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":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"}]

608060405234801561001057600080fd5b50604051612bfe380380612bfe8339818101604052602081101561003357600080fd5b8101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612b29806100d56000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80636c17da2911610097578063ab033ea911610066578063ab033ea91461039d578063d0e30db0146103e1578063f09a1d00146103eb578063f77c479114610435576100f5565b80636c17da29146102ff578063722713f71461031d578063853828b61461033b57806392eefe9b14610359576100f5565b80631f1fcd51116100d35780631f1fcd51146101e55780632e1a7d4d1461022f57806351cff8d91461025d5780635aa6e675146102b5576100f5565b806310d70e51146100fa578063125009cc1461014457806317d7de7c14610162575b600080fd5b61010261047f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61014c610497565b6040518082815260200191505060405180910390f35b61016a610578565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101aa57808201518184015260208101905061018f565b50505050905090810190601f1680156101d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ed6105b5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61025b6004803603602081101561024557600080fd5b81019080803590602001909291905050506105c8565b005b61029f6004803603602081101561027357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061096a565b6040518082815260200191505060405180910390f35b6102bd610ca2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610307610cc7565b6040518082815260200191505060405180910390f35b610325610d9a565b6040518082815260200191505060405180910390f35b610343610f5e565b6040518082815260200191505060405180910390f35b61039b6004803603602081101561036f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112cc565b005b6103df600480360360208110156103b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d2565b005b6103e96114d7565b005b6103f361190c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61043d611924565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b73cf3f73290803fc04425bee135a4caeb2bab2c2a181565b6000806104a2610cc7565b905060008111156105715761056e670de0b6b3a764000061056073cf3f73290803fc04425bee135a4caeb2bab2c2a173ffffffffffffffffffffffffffffffffffffffff16633ba0b9a96040518163ffffffff1660e01b815260040160206040518083038186803b15801561051657600080fd5b505afa15801561052a573d6000803e3d6000fd5b505050506040513d602081101561054057600080fd5b81019080805190602001909291905050508461194a90919063ffffffff16565b6119d090919063ffffffff16565b90505b8091505090565b60606040518060400160405280601a81526020017f53747261746567794d537461626c65536176696e677354555344000000000000815250905090565b6e085d4780b73119b644ae5ecd22b37681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461068b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b60006e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561071957600080fd5b505afa15801561072d573d6000803e3d6000fd5b505050506040513d602081101561074357600080fd5b8101908080519060200190929190505050905081811015610791576107796107748284611a1a90919063ffffffff16565b611a64565b915061078e8183611f6390919063ffffffff16565b91505b6000821115610966576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a622ee7c6e085d4780b73119b644ae5ecd22b3766040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561084a57600080fd5b505afa15801561085e573d6000803e3d6000fd5b505050506040513d602081101561087457600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561092a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f217661756c74000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61096481846e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff16611feb9092919063ffffffff16565b505b5050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b73e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ae5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f216d75736400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b96576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f2177616e7400000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c1357600080fd5b505afa158015610c27573d6000803e3d6000fd5b505050506040513d6020811015610c3d57600080fd5b81019080805190602001909291905050509050610c9d600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff16611feb9092919063ffffffff16565b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073cf3f73290803fc04425bee135a4caeb2bab2c2a173ffffffffffffffffffffffffffffffffffffffff16636009a2d8306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d5a57600080fd5b505afa158015610d6e573d6000803e3d6000fd5b505050506040513d6020811015610d8457600080fd5b8101908080519060200190929190505050905090565b6000610f59610da7610497565b610f4b73e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e3b57600080fd5b505afa158015610e4f573d6000803e3d6000fd5b505050506040513d6020811015610e6557600080fd5b81019080805190602001909291905050506e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610f0257600080fd5b505afa158015610f16573d6000803e3d6000fd5b505050506040513d6020811015610f2c57600080fd5b8101908080519060200190929190505050611f6390919063ffffffff16565b611f6390919063ffffffff16565b905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21636f6e74726f6c6c657200000000000000000000000000000000000000000081525060200191505060405180910390fd5b61102b6120bc565b6e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156110b757600080fd5b505afa1580156110cb573d6000803e3d6000fd5b505050506040513d60208110156110e157600080fd5b8101908080519060200190929190505050905060008111156112c9576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a622ee7c6e085d4780b73119b644ae5ecd22b3766040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156111ad57600080fd5b505afa1580156111c1573d6000803e3d6000fd5b505050506040513d60208110156111d757600080fd5b81019080805190602001909291905050509050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561128d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260068152602001807f217661756c74000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6112c781836e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff16611feb9092919063ffffffff16565b505b90565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461138e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561156557600080fd5b505afa158015611579573d6000803e3d6000fd5b505050506040513d602081101561158f57600080fd5b81019080805190602001909291905050509050600081111561170b576115fa73e2f2a5c287993345a840db3b0845fbc70f5935a560006e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff166123b59092919063ffffffff16565b61164873e2f2a5c287993345a840db3b0845fbc70f5935a5826e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff166123b59092919063ffffffff16565b73e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff166340c10f196e085d4780b73119b644ae5ecd22b376836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156116f257600080fd5b505af1158015611706573d6000803e3d6000fd5b505050505b73e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561179c57600080fd5b505afa1580156117b0573d6000803e3d6000fd5b505050506040513d60208110156117c657600080fd5b8101908080519060200190929190505050905060008111156119095761183673cf3f73290803fc04425bee135a4caeb2bab2c2a1600073e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff166123b59092919063ffffffff16565b61188973cf3f73290803fc04425bee135a4caeb2bab2c2a18273e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff166123b59092919063ffffffff16565b73cf3f73290803fc04425bee135a4caeb2bab2c2a173ffffffffffffffffffffffffffffffffffffffff1663a453b6cf826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156118f057600080fd5b505af1158015611904573d6000803e3d6000fd5b505050505b50565b73e2f2a5c287993345a840db3b0845fbc70f5935a581565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008083141561195d57600090506119ca565b600082840290508284828161196e57fe5b04146119c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612a746021913960400191505060405180910390fd5b809150505b92915050565b6000611a1283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125d5565b905092915050565b6000611a5c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061269b565b905092915050565b600080611a6f610cc7565b90506000611a7b610497565b905083811015611af3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e73756666696369656e742066756e6473000000000000000000000000000081525060200191505060405180910390fd5b6000611b2d6001611b1f84611b11898861194a90919063ffffffff16565b6119d090919063ffffffff16565b611f6390919063ffffffff16565b9050600073e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611bc257600080fd5b505afa158015611bd6573d6000803e3d6000fd5b505050506040513d6020811015611bec57600080fd5b81019080805190602001909291905050509050611c088261275b565b600073e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c9b57600080fd5b505afa158015611caf573d6000803e3d6000fd5b505050506040513d6020811015611cc557600080fd5b8101908080519060200190929190505050905060006e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d6657600080fd5b505afa158015611d7a573d6000803e3d6000fd5b505050506040513d6020811015611d9057600080fd5b8101908080519060200190929190505050905073e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff16631e9a69506e085d4780b73119b644ae5ecd22b376611df68686611a1a90919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611e5f57600080fd5b505af1158015611e73573d6000803e3d6000fd5b5050505060006e085d4780b73119b644ae5ecd22b37673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f0557600080fd5b505afa158015611f19573d6000803e3d6000fd5b505050506040513d6020811015611f2f57600080fd5b81019080805190602001909291905050509050611f558282611a1a90919063ffffffff16565b975050505050505050919050565b600080828401905083811015611fe1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6120b7838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506127dd565b505050565b600073cf3f73290803fc04425bee135a4caeb2bab2c2a173ffffffffffffffffffffffffffffffffffffffff16636009a2d8306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561214f57600080fd5b505afa158015612163573d6000803e3d6000fd5b505050506040513d602081101561217957600080fd5b8101908080519060200190929190505050905060008111156122155773cf3f73290803fc04425bee135a4caeb2bab2c2a173ffffffffffffffffffffffffffffffffffffffff1663db006a75826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156121fc57600080fd5b505af1158015612210573d6000803e3d6000fd5b505050505b600073e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122a857600080fd5b505afa1580156122bc573d6000803e3d6000fd5b505050506040513d60208110156122d257600080fd5b8101908080519060200190929190505050905060008111156123b15773e2f2a5c287993345a840db3b0845fbc70f5935a573ffffffffffffffffffffffffffffffffffffffff16631e9a69506e085d4780b73119b644ae5ecd22b376836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561239857600080fd5b505af11580156123ac573d6000803e3d6000fd5b505050505b5050565b60008114806124af575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561247257600080fd5b505afa158015612486573d6000803e3d6000fd5b505050506040513d602081101561249c57600080fd5b8101908080519060200190929190505050145b612504576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180612abf6036913960400191505060405180910390fd5b6125d0838473ffffffffffffffffffffffffffffffffffffffff1663095ea7b3905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506127dd565b505050565b60008083118290612681576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561264657808201518184015260208101905061262b565b50505050905090810190601f1680156126735780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161268d57fe5b049050809150509392505050565b6000838311158290612748576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561270d5780820151818401526020810190506126f2565b50505050905090810190601f16801561273a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b73cf3f73290803fc04425bee135a4caeb2bab2c2a173ffffffffffffffffffffffffffffffffffffffff1663db006a75826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156127c257600080fd5b505af11580156127d6573d6000803e3d6000fd5b5050505050565b6127fc8273ffffffffffffffffffffffffffffffffffffffff16612a28565b61286e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b602083106128bd578051825260208201915060208101905060208303925061289a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461291f576040519150601f19603f3d011682016040523d82523d6000602084013e612924565b606091505b50915091508161299c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115612a22578080602001905160208110156129bb57600080fd5b8101908080519060200190929190505050612a21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612a95602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015612a6a5750808214155b9250505091905056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a723158202dad3eb762d73356944f84d615c0061cfd720da32d312731708cb45c82d552d264736f6c6343000511003200000000000000000000000031317f9a5e4cc1d231bdf07755c994015a96a37c

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

00000000000000000000000031317f9a5e4cc1d231bdf07755c994015a96a37c

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000031317f9a5e4cc1d231bdf07755c994015a96a37c


Deployed ByteCode Sourcemap

5662:5214:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5662:5214:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5987:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10135:265;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6278:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6278:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5809:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7514:613;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7514:613:0;;;;;;;;;;;;;;;;;:::i;:::-;;7075:357;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7075:357:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6079:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10412:127;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9795:219;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8207:493;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10718:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10718:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10551;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10551:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6401:587;;;:::i;:::-;;5898:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6111:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5987:83;6027:42;5987:83;:::o;10135:265::-;10189:7;10246:9;10258:16;:14;:16::i;:::-;10246:28;;10293:1;10289;:5;10285:89;;;10315:47;10357:4;10315:37;6027:42;10321:28;;;:30;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10321:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10321:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10321:30:0;;;;;;;;;;;;;;;;10315:1;:5;;:37;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;10311:51;;10285:89;10391:1;10384:8;;;10135:265;:::o;6278:111::-;6320:13;6346:35;;;;;;;;;;;;;;;;;;;6278:111;:::o;5809:82::-;5848:42;5809:82;:::o;7514:613::-;7588:10;;;;;;;;;;;7574:24;;:10;:24;;;7566:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7625:13;5848:42;7641:22;;;7672:4;7641:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7641:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7641:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7641:37:0;;;;;;;;;;;;;;;;7625:53;;7704:7;7693:8;:18;7689:143;;;7738:36;7752:21;7764:8;7752:7;:11;;:21;;;;:::i;:::-;7738:13;:36::i;:::-;7728:46;;7799:21;7811:8;7799:7;:11;;:21;;;;:::i;:::-;7789:31;;7689:143;7856:1;7846:7;:11;7842:268;;;7874:14;7902:10;;;;;;;;;;;7891:29;;;5848:42;7891:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7891:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7891:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7891:44:0;;;;;;;;;;;;;;;;7874:61;;7976:1;7958:20;;:6;:20;;;;7950:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8056:42;8082:6;8090:7;5848:42;8056:25;;;;:42;;;;;:::i;:::-;7842:268;;7514:613;;:::o;7075:357::-;7126:12;7173:10;;;;;;;;;;;7159:24;;:10;:24;;;7151:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5937:42;7218:32;;7226:6;7218:32;;;;7210:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5848:42;7279:32;;7287:6;7279:32;;;;7271:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7342:6;:16;;;7367:4;7342:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7342:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7342:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7342:31:0;;;;;;;;;;;;;;;;7332:41;;7384:40;7404:10;;;;;;;;;;;7416:7;7384:6;:19;;;;:40;;;;;:::i;:::-;7075:357;;;:::o;6079:25::-;;;;;;;;;;;;;:::o;10412:127::-;10459:7;6027:42;10486:30;;;10525:4;10486:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10486:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10486:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10486:45:0;;;;;;;;;;;;;;;;10479:52;;10412:127;:::o;9795:219::-;9837:4;9861:145;9982:23;:21;:23::i;:::-;9861:98;5937:42;9921:22;;;9952:4;9921:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9921:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9921:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9921:37:0;;;;;;;;;;;;;;;;5848:42;9861:22;;;9892:4;9861:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9861:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9861:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9861:37:0;;;;;;;;;;;;;;;;:59;;:98;;;;:::i;:::-;:120;;:145;;;;:::i;:::-;9854:152;;9795:219;:::o;8207:493::-;8248:12;8295:10;;;;;;;;;;;8281:24;;:10;:24;;;8273:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8332:14;:12;:14::i;:::-;5848:42;8367:22;;;8398:4;8367:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8367:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8367:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8367:37:0;;;;;;;;;;;;;;;;8357:47;;8429:1;8419:7;:11;8415:268;;;8447:14;8475:10;;;;;;;;;;;8464:29;;;5848:42;8464:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8464:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8464:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8464:44:0;;;;;;;;;;;;;;;;8447:61;;8549:1;8531:20;;:6;:20;;;;8523:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8629:42;8655:6;8663:7;5848:42;8629:25;;;;:42;;;;;:::i;:::-;8415:268;;8207:493;:::o;10718:155::-;10804:10;;;;;;;;;;;10790:24;;:10;:24;;;10782:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10854:11;10841:10;;:24;;;;;;;;;;;;;;;;;;10718:155;:::o;10551:::-;10637:10;;;;;;;;;;;10623:24;;:10;:24;;;10615:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10687:11;10674:10;;:24;;;;;;;;;;;;;;;;;;10551:155;:::o;6401:587::-;6440:13;5848:42;6456:22;;;6487:4;6456:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6456:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6456:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6456:37:0;;;;;;;;;;;;;;;;6440:53;;6519:1;6508:8;:12;6504:200;;;6537:42;5937;6577:1;5848:42;6537:24;;;;:42;;;;;:::i;:::-;6594:49;5937:42;6634:8;5848:42;6594:24;;;;:49;;;;;:::i;:::-;5937:42;6658:18;;;5848:42;6683:8;6658:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6658:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6658:34:0;;;;6504:200;5937:42;6725:22;;;6756:4;6725:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6725:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6725:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6725:37:0;;;;;;;;;;;;;;;;6714:48;;6788:1;6777:8;:12;6773:208;;;6806:43;6027:42;6847:1;5937:42;6806:24;;;;:43;;;;;:::i;:::-;6864:50;6027:42;6905:8;5937:42;6864:24;;;;:50;;;;;:::i;:::-;6027:42;6929:30;;;6960:8;6929:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6929:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6929:40:0;;;;6773:208;6401:587;:::o;5898:82::-;5937:42;5898:82;:::o;6111:25::-;;;;;;;;;;;;;:::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;1006:136::-;1064:7;1091:43;1095:1;1098;1091:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1084:50;;1006:136;;;;:::o;9076:707::-;9134:4;9151:9;9163:16;:14;:16::i;:::-;9151:28;;9190:10;9203:23;:21;:23::i;:::-;9190:36;;9251:7;9245:2;:13;;9237:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9343:14;9360:31;9389:1;9361:22;9380:2;9361:14;9367:7;9361:1;:5;;:14;;;;:::i;:::-;:18;;:22;;;;:::i;:::-;9360:28;;:31;;;;:::i;:::-;9343:48;;9402:12;5937:42;9417:22;;;9448:4;9417:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9417:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9417:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9417:37:0;;;;;;;;;;;;;;;;9402:52;;9465:24;9482:6;9465:16;:24::i;:::-;9500:11;5937:42;9514:22;;;9545:4;9514:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9514:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9514:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9514:37:0;;;;;;;;;;;;;;;;9500:51;;9562:13;5848:42;9578:22;;;9609:4;9578:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9578:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9578:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9578:37:0;;;;;;;;;;;;;;;;9562:53;;5937:42;9626:20;;;5848:42;9653:19;9664:7;9653:6;:10;;:19;;;;:::i;:::-;9626:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9626:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9626:47:0;;;;9684:12;5848:42;9699:22;;;9730:4;9699:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9699:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9699:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9699:37:0;;;;;;;;;;;;;;;;9684:52;;9754:21;9766:8;9754:7;:11;;:21;;;;:::i;:::-;9747:28;;;;;;;;;9076:707;;;:::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;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;8712:352::-;8756:12;6027:42;8771:30;;;8810:4;8771:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8771:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8771:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8771:45:0;;;;;;;;;;;;;;;;8756:60;;8841:1;8831:7;:11;8827:75;;;6027:42;8859:22;;;8882:7;8859:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8859:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8859:31:0;;;;8827:75;8912:13;5937:42;8928:22;;;8959:4;8928:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8928:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8928:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8928:37:0;;;;;;;;;;;;;;;;8912:53;;8991:1;8980:8;:12;8976:81;;;5937:42;9009:20;;;5848:42;9036:8;9009:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9009:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9009:36:0;;;;8976:81;8712:352;;:::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;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;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;10026:97::-;6027:42;10085:22;;;10108:6;10085:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10085:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10085:30:0;;;;10026:97;:::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://2dad3eb762d73356944f84d615c0061cfd720da32d312731708cb45c82d552d2
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.