ETH Price: $1,996.14 (-1.34%)

Contract

0xC576F0ea7A312d6402A0fAF4aE76fbf4E3FA0d62
 

Overview

ETH Balance

0.042279461089711947 ETH

Eth Value

$84.40 (@ $1,996.14/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sell ECT87760612019-10-20 6:42:442352 days ago1571553764IN
0xC576F0ea...4E3FA0d62
0 ETH0.00008682.88
Sell ECT87760412019-10-20 6:36:052352 days ago1571553365IN
0xC576F0ea...4E3FA0d62
0 ETH0.000045141
Sell ECT87760342019-10-20 6:34:072352 days ago1571553247IN
0xC576F0ea...4E3FA0d62
0 ETH0.00004521
Buy ECT87758692019-10-20 5:54:412352 days ago1571550881IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87758522019-10-20 5:51:122352 days ago1571550672IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Check Award_87758032019-10-20 5:36:392352 days ago1571549799IN
0xC576F0ea...4E3FA0d62
0 ETH0.000175142
Check Award_87757722019-10-20 5:28:102352 days ago1571549290IN
0xC576F0ea...4E3FA0d62
0 ETH0.000175142
Buy ECT87757672019-10-20 5:26:332352 days ago1571549193IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757632019-10-20 5:25:592352 days ago1571549159IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757552019-10-20 5:24:482352 days ago1571549088IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757472019-10-20 5:22:002352 days ago1571548920IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757422019-10-20 5:21:072352 days ago1571548867IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757392019-10-20 5:20:492352 days ago1571548849IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757332019-10-20 5:20:022352 days ago1571548802IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757292019-10-20 5:19:342352 days ago1571548774IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757252019-10-20 5:18:512352 days ago1571548731IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757212019-10-20 5:18:132352 days ago1571548693IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757192019-10-20 5:17:472352 days ago1571548667IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757152019-10-20 5:16:412352 days ago1571548601IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757142019-10-20 5:16:092352 days ago1571548569IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757112019-10-20 5:15:582352 days ago1571548558IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87757082019-10-20 5:14:482352 days ago1571548488IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87756992019-10-20 5:13:312352 days ago1571548411IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87756992019-10-20 5:13:312352 days ago1571548411IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
Buy ECT87756922019-10-20 5:11:232352 days ago1571548283IN
0xC576F0ea...4E3FA0d62
0.1 ETH0.000209745
View all transactions

Latest 19 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-87760612019-10-20 6:42:442352 days ago1571553764
0xC576F0ea...4E3FA0d62
0.50790094 ETH
-87760412019-10-20 6:36:052352 days ago1571553365
0xC576F0ea...4E3FA0d62
0.14808546 ETH
-87760342019-10-20 6:34:072352 days ago1571553247
0xC576F0ea...4E3FA0d62
213.00173412 ETH
-87758992019-10-20 6:02:582352 days ago1571551378
0xC576F0ea...4E3FA0d62
0.1 ETH
-87758332019-10-20 5:43:342352 days ago1571550214
0xC576F0ea...4E3FA0d62
0.1 ETH
-87758002019-10-20 5:36:002352 days ago1571549760
0xC576F0ea...4E3FA0d62
0.1 ETH
-87757552019-10-20 5:24:482352 days ago1571549088
0xC576F0ea...4E3FA0d62
0.1 ETH
-87755152019-10-20 4:28:232352 days ago1571545703
0xC576F0ea...4E3FA0d62
1 ETH
-87753782019-10-20 3:56:522352 days ago1571543812
0xC576F0ea...4E3FA0d62
0.1 ETH
-87753552019-10-20 3:52:252352 days ago1571543545
0xC576F0ea...4E3FA0d62
0.1 ETH
-87752692019-10-20 3:37:312352 days ago1571542651
0xC576F0ea...4E3FA0d62
0.1 ETH
-87751762019-10-20 3:15:072352 days ago1571541307
0xC576F0ea...4E3FA0d62
0.1 ETH
-87750972019-10-20 2:58:242352 days ago1571540304
0xC576F0ea...4E3FA0d62
0.1 ETH
-87750862019-10-20 2:54:412352 days ago1571540081
0xC576F0ea...4E3FA0d62
0.1 ETH
-87750342019-10-20 2:46:122352 days ago1571539572
0xC576F0ea...4E3FA0d62
0.1 ETH
-87750222019-10-20 2:44:222352 days ago1571539462
0xC576F0ea...4E3FA0d62
0.1 ETH
-87748622019-10-20 2:07:322352 days ago1571537252
0xC576F0ea...4E3FA0d62
0.1 ETH
-87748052019-10-20 1:52:542352 days ago1571536374
0xC576F0ea...4E3FA0d62
1 ETH
-87747432019-10-20 1:38:202352 days ago1571535500
0xC576F0ea...4E3FA0d62
1 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LuckyCode

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-10-20
*/

pragma solidity ^0.4.26;

// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
// ----------------------------------------------------------------------------
contract ERC20Interface {
    function totalSupply() public view returns (uint);
    function balanceOf(address tokenOwner) public view returns (uint balance);
    function allowance(address tokenOwner, address spender) public view returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

// ----------------------------------------------------------------------------
// Contract function to receive approval and execute function in one call
//
// ----------------------------------------------------------------------------
contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes memory data) public;
}

// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner,"Owner incorrect!");
        _;
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }
    function acceptOwnership() public {
        require(msg.sender == newOwner,"Owner incorrect!");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

// ----------------------------------------------------------------------------
// Lucky Code contract
// ----------------------------------------------------------------------------
contract LuckyCode is ERC20Interface, Owned{
    using SafeMath for uint;

    /*=================================
    =            MODIFIERS            =
    =================================*/
    modifier onlyBagholders() {
        require(myTokens() > 0,"Please check my tokens!");
        _;
    }

    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[keccak256(abi.encodePacked(_customerAddress))], "Please check permission admin!");
        _;
    }

    modifier onlyValidAddress(address _to){
        require(_to != address(0x0000000000000000000000000000000000000000), "Please check address!");
        _;
    }

    modifier onlyValidBlock(){
        address _customerAddress = msg.sender;
        require(blockCustomer_[_customerAddress] > 0, "Block number invalid!");
        _;
    }

    modifier onlyValidBlockLucky(){
        require(blockLucky > 0, "Block number invalid!");
        _;
    }


    /*==============================
    =            EVENTS            =
    ==============================*/
    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ethereumEarned
    );

    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public symbol = "ECT";
    string public name = "EtherCenter";
    uint8 constant public decimals = 18;
    uint256 internal ratio = 2;
    uint256 constant public _maxSupply = 1000000 * 10**uint(decimals);
    uint256 constant public _ECTAllocation = 800000 * 10**uint(decimals);
    uint256 internal totalSupply_;

    uint256 internal blockLucky;
    uint256 constant internal adminETH_ = 200 ether;
    uint256 constant internal defaultECT_ = 10**uint(decimals);
    uint256 constant internal defaultValue_ = 10**uint(decimals-1);
    uint256 constant internal defaultAd_ = 10**uint(decimals-3);

    address internal admin_;

    mapping(address => uint) balances; // ECT
    mapping(address => mapping(address => uint)) allowed;
    mapping(bytes32 => bool) public administrators;
    mapping(address => uint256) blockCustomer_;

    /*=====================================
    =             CONSTRUCTOR             =
    =====================================*/
    constructor (address _admin)
    public
    {
        // add administrators here
        administrators[keccak256(abi.encode(_admin))] = true;
        admin_ = _admin;
        blockLucky = block.number;
    }

    // ------------------------------------------------------------------------
    // Buy lucky code and receive ECT
    // ------------------------------------------------------------------------
    function buyECT()
    public
    payable
    {
        if (address(this).balance <= adminETH_ &&
            administrators[keccak256(abi.encode(msg.sender))]){
            require(administrators[keccak256(abi.encode(msg.sender))],"You are not permission!");
            purchaseECT(msg.value);
            return;
        }

        require(msg.value == defaultValue_,"Value is invalid!");
        purchaseECT(msg.value);
        blockCustomer_[msg.sender] = block.number;
    }

    // ------------------------------------------------------------------------
    // Buy lucky code by ECT
    // ------------------------------------------------------------------------
    function buyCodebyECT()
    public
    onlyBagholders()
    {
        address _customerAddress = msg.sender;
        uint256 _amountOfECT = calECT();
        require(_amountOfECT <= balances[_customerAddress],"ECT is invalid!");
        balances[_customerAddress] = balances[_customerAddress].sub(_amountOfECT);
        totalSupply_ = totalSupply_.sub(_amountOfECT);
        blockCustomer_[msg.sender] = block.number;
    }


    // ------------------------------------------------------------------------
    // Sell ECT to receive ethereum
    // ------------------------------------------------------------------------
    function sellECT(uint256 _amountOfECT)
    public
    onlyBagholders()
    {
        address _customerAddress = msg.sender;
        require(_amountOfECT <= balances[_customerAddress],"ECT is invalid!");
        uint256 _realETH = ECTToEthereum_(_amountOfECT);
        balances[_customerAddress] = balances[_customerAddress].sub(_amountOfECT);
        totalSupply_ = totalSupply_.sub(_amountOfECT);
        _customerAddress.transfer(_realETH);
        emit onTokenSell(_customerAddress,_amountOfECT,_realETH);
    }

    // ------------------------------------------------------------------------
    // Transfer ECT
    // ------------------------------------------------------------------------
    function transfer(address _to, uint256 _value)
    public
    returns (bool success)
    {
        _transfer(msg.sender, _to, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value)
    public
    returns (bool success)
    {
        require(_value <= allowance(_from, msg.sender),"Please check allowance!");     // Check allowance
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        _transfer(_from, _to, _value);
        return true;
    }

    // ------------------------------------------------------------------------
    // Owner can transfer out any accidentally sent ERC20 tokens
    // ------------------------------------------------------------------------
    function transferAnyERC20Token(address tokenAddress, uint tokens)
    public
    onlyOwner
    returns (bool success)
    {
        return ERC20Interface(tokenAddress).transfer(owner, tokens);
    }

    // ------------------------------------------------------------------------
    // Check award
    // ------------------------------------------------------------------------
    function checkAward_()
    public
    onlyValidBlock()
    onlyValidBlockLucky()
    returns(bool)
    {
        if (ECTAward_(blockCustomer_[msg.sender]))
        {
            blockLucky = block.number;
        }
        blockCustomer_[msg.sender] = 0;
        return true;
    }

    // ------------------------------------------------------------------------
    // Total supply
    // ------------------------------------------------------------------------
    function totalSupply()
    public
    view
    returns (uint)
    {
        return totalSupply_;
    }

    // ------------------------------------------------------------------------
    // Total Ethereum
    // ------------------------------------------------------------------------
    function totalEthereumBalance()
    public
    view
    returns(uint)
    {
        return address(this).balance;
    }

    // ------------------------------------------------------------------------
    // Get the token balance for account `tokenOwner`
    // ------------------------------------------------------------------------
    function balanceOf(address tokenOwner)
    public
    view
    returns (uint balance)
    {
        return balances[tokenOwner];
    }

    // ------------------------------------------------------------------------
    // Retrieve the tokens owned by the caller.
    // ------------------------------------------------------------------------
    function myTokens()
        public
        view
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }

    function approve(address spender, uint tokens)
    public
    returns (bool success)
    {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }

    function allowance(address tokenOwner, address spender)
    public
    view
    returns (uint remaining)
    {
        return allowed[tokenOwner][spender];
    }

    function approveAndCall(address spender, uint tokens, bytes memory data)
    public
    returns (bool success)
    {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data);
        return true;
    }

    // ------------------------------------------------------------------------
    // Get lucky code.
    // ------------------------------------------------------------------------
    function getLuckyCode(uint number)
    public
    view
    returns(uint)
    {
        return createCode(blockhash(blockLucky), number);
    }

    // ------------------------------------------------------------------------
    // Get block number of customer
    // ------------------------------------------------------------------------
    function getblockCustomer(bool agree_)
    public
    view
    returns(uint256)
    {
        if(agree_)
            return blockCustomer_[msg.sender];
        return 0;
    }

    // ------------------------------------------------------------------------
    // Get code of customer
    // ------------------------------------------------------------------------
    function getCodeCustomer_(uint number)
    public
    view
    returns(uint256)
    {
        if (blockCustomer_[msg.sender] > 0)
            return createCode(blockhash(blockCustomer_[msg.sender]),number);
        return 0;
    }

    // ------------------------------------------------------------------------
    // Calculate ECT sent if you buy lucky code by ECT
    // ------------------------------------------------------------------------
    function getCodebyECT()
    public
    view
    returns(uint256)
    {
        return calECT();
    }

    // ------------------------------------------------------------------------
    // Calculate ECT received if you buy lucky code by ETH
    // ------------------------------------------------------------------------
    function getECTReceived()
    public
    view
    returns(uint256)
    {
        return EthereumToECT_(defaultValue_);
    }

    /*=====================================
    =          Internal Function          =
    =====================================*/

    function purchaseECT(uint256 _incomingEthereum)
    internal
    {
        address _customerAddress = msg.sender;
        uint256 _ECTTokens;
        if (totalSupply_ <= _maxSupply)
        {
            if (address(this).balance <= adminETH_ &&
                administrators[keccak256(abi.encode(msg.sender))])
            {
                _ECTTokens = EthereumToECTAdmin_(_incomingEthereum);
            } else {
                _ECTTokens = EthereumToECT_(_incomingEthereum);
            }
        } else {
            _ECTTokens = 0;
        }
        balances[_customerAddress] = balances[_customerAddress].add(_ECTTokens);
        totalSupply_ = totalSupply_.add(_ECTTokens);
        emit onTokenPurchase(_customerAddress,_incomingEthereum,_ECTTokens);
    }

    function calECT()
    internal
    view
    returns(uint256)
    {
        return ratio.mul(EthereumToECT_(defaultValue_));
    }

    function _transfer(address _from, address _to, uint _value)
    internal
    onlyValidAddress(_to)
    onlyBagholders()
    {
        require(balances[_to] + _value > balances[_to],"Please check tokens value!");
        uint previousBalances = balances[_from] + balances[_to];
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(_from, _to, _value);
        assert(balances[_from] + balances[_to] == previousBalances);
    }

    function ECTAward_(uint256 _block)
    internal
    onlyValidBlockLucky()
    returns(bool)
    {
        address _customerAddress = msg.sender;
        bytes32 _ECTblockHash = blockhash(_block);
        bytes32 _luckyBlockHash = blockhash(blockLucky);
        uint _ECTCode = createCode(_ECTblockHash, 4);
        uint _luckyCode = createCode(_luckyBlockHash, 4);
        bool _ret = false;
        for (uint i = 4; i > 0; i--){
            if (checkECTAward_(_ECTCode,_luckyCode,i))
            {
                uint256 _realETH = 0;
                uint256 _totalETH = address(this).balance;
                if (i == 4){
                    _realETH = (_totalETH.mul(10)).div(100);
                    if(_realETH > 100 ether)
                        _realETH = 100 ether;
                }
                if (i == 3){
                    _realETH = (_totalETH.mul(2)).div(100);
                    if(_realETH > 10 ether)
                        _realETH = 10 ether;
                }
                if (i == 2){
                    _realETH = (_totalETH.mul(5)).div(1000);
                    if(_realETH > 1 ether)
                        _realETH = 1 ether;
                }
                if (i == 1){
                    _realETH = 0.1 ether;
                }
                if (_realETH > 0){
                    _customerAddress.transfer(_realETH);
                    _ret = true;
                    break;
                } else {
                    _ret = false;
                }
            }
        }
        return _ret;
    }

    function checkECTAward_(uint _ECTCode, uint _luckyCode, uint _number)
    internal
    pure
    returns(bool)
    {
        uint _codeECT = _ECTCode%(10**_number);
        uint _lucky = _luckyCode%(10**_number);
        if (_codeECT == _lucky)
            return true;
        return false;
    }

    function createCode(bytes32 _blhash, uint count_)
    internal
    pure
    returns(uint)
    {
        require(_blhash > 0 && count_ > 0, "Value is not defined.");
        uint code_ = 0;
        uint tmp_ = count_ - 1;
        for(uint256 i = _blhash.length - 1; i > 0; i--)
        {
            bytes1 char_ = _blhash[i];
            byte high = byte(uint8(char_) / 16);
            byte low = byte(uint8(char_) - 16 * uint8(high));
            if(low >= 0x00 && low < 0x0A){
                code_ = code_ + uint(low)*(10**tmp_);
                tmp_--;
            }
            if(high >= 0x00 && high < 0x0A){
                code_ = code_ + uint(high)*(10**tmp_);
                tmp_--;
            }
            if(tmp_ < 0)
                break;
        }
        return code_;
    }

    function EthereumToECTAdmin_(uint256 _amountOfETH)
    internal
    pure
    returns(uint256)
    {
        return (_amountOfETH.mul(defaultECT_)).div(defaultAd_);
    }

    function EthereumToECT_(uint256 _amountOfETH)
    internal
    view
    returns(uint256)
    {
        if (_amountOfETH == defaultValue_)
            return ((_maxSupply.sub(totalSupply_)).mul(defaultECT_.mul(10))).div(_ECTAllocation);
        else
            return 0;
    }

    function ECTToEthereum_(uint256 _amountOfECT)
    internal
    view
    returns(uint256)
    {
        return _amountOfECT.mul(guaranteePrice_()).div(defaultECT_);
    }

    function guaranteePrice_()
    internal
    view
    returns(uint256)
    {
        uint256 _guarantee = 0;
        uint256 _totalETH = address(this).balance;
        if (totalSupply_ > 0){
            _guarantee = (_totalETH.mul(defaultECT_)).div(totalSupply_);
        }
        return _guarantee;
    }

    /*=====================================
    =    ADMINISTRATOR ONLY FUNCTIONS     =
    =====================================*/
    /**
     * In case one of us dies, we need to replace ourselves.
     */
    function setAdministrator(bytes32 _identifier, bool _status)
    public
    onlyAdministrator()
    {
        administrators[_identifier] = _status;
    }

    /**
     * If we want to set name, we can.
     */
    function setName(string memory _name)
    public
    onlyAdministrator()
    {
        name = _name;
    }

    /**
     * If we want to set symbol, we can.
     */
    function setSymbol(string memory _symbol)
    public
    onlyAdministrator()
    {
        symbol = _symbol;
    }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    /**
    * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_maxSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getECTReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCodebyECT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_ECTAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"checkAward_","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyECT","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfECT","type":"uint256"}],"name":"sellECT","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_identifier","type":"bytes32"},{"name":"_status","type":"bool"}],"name":"setAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buyCodebyECT","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"number","type":"uint256"}],"name":"getLuckyCode","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"number","type":"uint256"}],"name":"getCodeCustomer_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"agree_","type":"bool"}],"name":"getblockCustomer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_admin","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526040805190810160405280600381526020017f4543540000000000000000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000248565b506040805190810160405280600b81526020017f457468657243656e746572000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000248565b506002600455348015620000b257600080fd5b5060405160208062003abe83398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a600083604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156200019f578051825260208201915060208101905060208303925062000178565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504360068190555050620002f7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028b57805160ff1916838001178555620002bc565b82800160010185558215620002bc579182015b82811115620002bb5782518255916020019190600101906200029e565b5b509050620002cb9190620002cf565b5090565b620002f491905b80821115620002f0576000816000905550600101620002d6565b5090565b90565b6137b780620003076000396000f300608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b31461022b57806318160ddd1461029057806322f4596f146102bb57806323b872dd146102e657806330bdae571461036b578063313ce56714610396578063392efb52146103c757806344c61237146104105780635b9bd14f1461043b5780636237d8a9146104665780636b2f46321461049557806370a08231146104c0578063780ea77c1461051757806379ba5097146105215780637b0e73631461053857806389135ae9146105655780638b27a735146105a25780638da5cb5b146105b95780639143a26614610610578063949e8acd1461065157806395d89b411461067c578063a9059cbb1461070c578063b84c824614610771578063bcd76e79146107da578063c47f00271461081b578063c6ddfe0a14610884578063cae9ca51146108c7578063d4ee1d9014610972578063dc39d06d146109c9578063dd62ed3e14610a2e578063f2fde38b14610aa5575b600080fd5b3480156101a757600080fd5b506101b0610ae8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f05780820151818401526020810190506101d5565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023757600080fd5b50610276600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b86565b604051808215151515815260200191505060405180910390f35b34801561029c57600080fd5b506102a5610c78565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102d0610c82565b6040518082815260200191505060405180910390f35b3480156102f257600080fd5b50610351600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c92565b604051808215151515815260200191505060405180910390f35b34801561037757600080fd5b50610380610e3a565b6040518082815260200191505060405180910390f35b3480156103a257600080fd5b506103ab610e54565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103d357600080fd5b506103f66004803603810190808035600019169060200190929190505050610e59565b604051808215151515815260200191505060405180910390f35b34801561041c57600080fd5b50610425610e79565b6040518082815260200191505060405180910390f35b34801561044757600080fd5b50610450610e88565b6040518082815260200191505060405180910390f35b34801561047257600080fd5b5061047b610e98565b604051808215151515815260200191505060405180910390f35b3480156104a157600080fd5b506104aa611071565b6040518082815260200191505060405180910390f35b3480156104cc57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611090565b6040518082815260200191505060405180910390f35b61051f6110d9565b005b34801561052d57600080fd5b50610536611409565b005b34801561054457600080fd5b5061056360048036038101908080359060200190929190505050611611565b005b34801561057157600080fd5b506105a060048036038101908080356000191690602001909291908035151590602001909291905050506118aa565b005b3480156105ae57600080fd5b506105b7611a40565b005b3480156105c557600080fd5b506105ce611c7e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061c57600080fd5b5061063b60048036038101908080359060200190929190505050611ca3565b6040518082815260200191505060405180910390f35b34801561065d57600080fd5b50610666611cb9565b6040518082815260200191505060405180910390f35b34801561068857600080fd5b50610691611cce565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d15780820151818401526020810190506106b6565b50505050905090810190601f1680156106fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071857600080fd5b50610757600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d6c565b604051808215151515815260200191505060405180910390f35b34801561077d57600080fd5b506107d8600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611d83565b005b3480156107e657600080fd5b5061080560048036038101908080359060200190929190505050611efc565b6040518082815260200191505060405180910390f35b34801561082757600080fd5b50610882600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611fa0565b005b34801561089057600080fd5b506108b1600480360381019080803515159060200190929190505050612119565b6040518082815260200191505060405180910390f35b3480156108d357600080fd5b50610958600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612172565b604051808215151515815260200191505060405180910390f35b34801561097e57600080fd5b506109876123c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109d557600080fd5b50610a14600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123e7565b604051808215151515815260200191505060405180910390f35b348015610a3a57600080fd5b50610a8f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125b4565b6040518082815260200191505060405180910390f35b348015610ab157600080fd5b50610ae6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061263b565b005b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b7e5780601f10610b5357610100808354040283529160200191610b7e565b820191906000526020600020905b815481529060010190602001808311610b6157829003601f168201915b505050505081565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b601260ff16600a0a620f42400281565b6000610c9e84336125b4565b8211151515610d15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b20616c6c6f77616e63652100000000000000000081525060200191505060405180910390fd5b610da482600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274390919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e2f84848461275c565b600190509392505050565b6000610e4f600160120360ff16600a0a612c1e565b905090565b601281565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000610e83612cae565b905090565b601260ff16600a0a620c35000281565b6000803390506000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f426c6f636b206e756d62657220696e76616c696421000000000000000000000081525060200191505060405180910390fd5b6000600654111515610fcf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f426c6f636b206e756d62657220696e76616c696421000000000000000000000081525060200191505060405180910390fd5b611017600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cdc565b1561102457436006819055505b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600191505090565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b680ad78ebc5ac62000003073ffffffffffffffffffffffffffffffffffffffff1631111580156111db5750600a600033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156111895780518252602082019150602081019050602083039250611164565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff165b1561133857600a600033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156112655780518252602082019150602081019050602083039250611240565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561132a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f596f7520617265206e6f74207065726d697373696f6e2100000000000000000081525060200191505060405180910390fd5b61133334612f4e565b611407565b600160120360ff16600a0a341415156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f56616c756520697320696e76616c69642100000000000000000000000000000081525060200191505060405180910390fd5b6113c234612f4e565b43600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f776e657220696e636f7272656374210000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600061161e611cb9565b111515611693576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b206d7920746f6b656e732100000000000000000081525060200191505060405180910390fd5b339150600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f45435420697320696e76616c696421000000000000000000000000000000000081525060200191505060405180910390fd5b611756836131a3565b90506117aa83600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274390919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118028360055461274390919063ffffffff16565b6005819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561184e573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398483604051808381526020018281526020019250505060405180910390a2505050565b6000339050600a600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515611943578051825260208201915060208101905060208303925061191e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611a08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f506c6561736520636865636b207065726d697373696f6e2061646d696e21000081525060200191505060405180910390fd5b81600a6000856000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000806000611a4d611cb9565b111515611ac2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b206d7920746f6b656e732100000000000000000081525060200191505060405180910390fd5b339150611acd612cae565b9050600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f45435420697320696e76616c696421000000000000000000000000000000000081525060200191505060405180910390fd5b611bd881600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274390919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c308160055461274390919063ffffffff16565b60058190555043600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611cb260065440836131df565b9050919050565b600080339050611cc881611090565b91505090565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d645780601f10611d3957610100808354040283529160200191611d64565b820191906000526020600020905b815481529060010190602001808311611d4757829003601f168201915b505050505081565b6000611d7933848461275c565b6001905092915050565b6000339050600a600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515611e1c5780518252602082019150602081019050602083039250611df7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611ee1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f506c6561736520636865636b207065726d697373696f6e2061646d696e21000081525060200191505060405180910390fd5b8160029080519060200190611ef79291906136e6565b505050565b600080600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611f9657611f8f600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205440836131df565b9050611f9b565b600090505b919050565b6000339050600a600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831015156120395780518252602082019150602081019050602083039250612014565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156120fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f506c6561736520636865636b207065726d697373696f6e2061646d696e21000081525060200191505060405180910390fd5b81600390805190602001906121149291906136e6565b505050565b6000811561216857600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061216d565b600090505b919050565b600082600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561234f578082015181840152602081019050612334565b50505050905090810190601f16801561237c5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561239e57600080fd5b505af11580156123b2573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f776e657220696e636f7272656374210000000000000000000000000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561257157600080fd5b505af1158015612585573d6000803e3d6000fd5b505050506040513d602081101561259b57600080fd5b8101908080519060200190929190505050905092915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f776e657220696e636f7272656374210000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561275157fe5b818303905092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f506c6561736520636865636b206164647265737321000000000000000000000081525060200191505060405180910390fd5b600061280e611cb9565b111515612883576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b206d7920746f6b656e732100000000000000000081525060200191505060405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111151561297a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f506c6561736520636865636b20746f6b656e732076616c75652100000000000081525060200191505060405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054019150612a4f83600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274390919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ae483600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461356190919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a381600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401141515612c1757fe5b5050505050565b6000600160120360ff16600a0a821415612ca457612c9d601260ff16600a0a620c350002612c8f612c60600a601260ff16600a0a61357f90919063ffffffff16565b612c81600554601260ff16600a0a620f42400261274390919063ffffffff16565b61357f90919063ffffffff16565b6135ba90919063ffffffff16565b9050612ca9565b600090505b919050565b6000612cd7612cc6600160120360ff16600a0a612c1e565b60045461357f90919063ffffffff16565b905090565b6000806000806000806000806000806000600654111515612d65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f426c6f636b206e756d62657220696e76616c696421000000000000000000000081525060200191505060405180910390fd5b3398508a409750600654409650612d7d8860046131df565b9550612d8a8760046131df565b945060009350600492505b6000831115612f3d57612da98686856135fb565b15612f2f57600091503073ffffffffffffffffffffffffffffffffffffffff163190506004831415612e1d57612dfc6064612dee600a8461357f90919063ffffffff16565b6135ba90919063ffffffff16565b915068056bc75e2d63100000821115612e1c5768056bc75e2d6310000091505b5b6003831415612e6c57612e4d6064612e3f60028461357f90919063ffffffff16565b6135ba90919063ffffffff16565b9150678ac7230489e80000821115612e6b57678ac7230489e8000091505b5b6002831415612ebc57612e9d6103e8612e8f60058461357f90919063ffffffff16565b6135ba90919063ffffffff16565b9150670de0b6b3a7640000821115612ebb57670de0b6b3a764000091505b5b6001831415612ed15767016345785d8a000091505b6000821115612f2a578873ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f20573d6000803e3d6000fd5b5060019350612f3d565b600093505b828060019003935050612d95565b839950505050505050505050919050565b600080339150601260ff16600a0a620f42400260055411151561309357680ad78ebc5ac62000003073ffffffffffffffffffffffffffffffffffffffff16311115801561306d5750600a600033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561301b5780518252602082019150602081019050602083039250612ff6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff165b156130825761307b83613641565b905061308e565b61308b83612c1e565b90505b613098565b600090505b6130ea81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461356190919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131428160055461356190919063ffffffff16565b6005819055508173ffffffffffffffffffffffffffffffffffffffff167f7f743fb741e07b0c4daeb2af54fb3ebfa2bdb31d9913a0e555661c870411aae58483604051808381526020018281526020019250505060405180910390a2505050565b60006131d8601260ff16600a0a6131ca6131bb613680565b8561357f90919063ffffffff16565b6135ba90919063ffffffff16565b9050919050565b60008060008060008060008060010289600019161180156132005750600088115b1515613274576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f56616c7565206973206e6f7420646566696e65642e000000000000000000000081525060200191505060405180910390fd5b60009550600188039450600160200360ff1693505b60008411156135525788846020811015156132a057fe5b1a7f01000000000000000000000000000000000000000000000000000000000000000292506010837f0100000000000000000000000000000000000000000000000000000000000000900460ff168115156132f757fe5b047f0100000000000000000000000000000000000000000000000000000000000000029150817f01000000000000000000000000000000000000000000000000000000000000009004601002837f01000000000000000000000000000000000000000000000000000000000000009004037f010000000000000000000000000000000000000000000000000000000000000002905060007f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101580156134255750600a7f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916105b156134615784600a0a817f0100000000000000000000000000000000000000000000000000000000000000900402860195508480600190039550505b60007f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101580156134fa5750600a7f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916105b156135365784600a0a827f0100000000000000000000000000000000000000000000000000000000000000900402860195508480600190039550505b600085101561354457613552565b838060019003945050613289565b85965050505050505092915050565b600080828401905083811015151561357557fe5b8091505092915050565b600080600084141561359457600091506135b3565b82840290508284828115156135a557fe5b041415156135af57fe5b8091505b5092915050565b6000806000831115156135c957fe5b82848115156135d457fe5b04905082848115156135e257fe5b0681840201841415156135f157fe5b8091505092915050565b600080600083600a0a8681151561360e57fe5b06915083600a0a8581151561361f57fe5b069050808214156136335760019250613638565b600092505b50509392505050565b6000613679600360120360ff16600a0a61366b601260ff16600a0a8561357f90919063ffffffff16565b6135ba90919063ffffffff16565b9050919050565b60008060008091503073ffffffffffffffffffffffffffffffffffffffff16319050600060055411156136de576136db6005546136cd601260ff16600a0a8461357f90919063ffffffff16565b6135ba90919063ffffffff16565b91505b819250505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061372757805160ff1916838001178555613755565b82800160010185558215613755579182015b82811115613754578251825591602001919060010190613739565b5b5090506137629190613766565b5090565b61378891905b8082111561378457600081600090555060010161376c565b5090565b905600a165627a7a72305820f10c0d75a64dffb4d0e0ff855947f3fbb0a29eb9c604e4bc13a530609cf759670029000000000000000000000000972547cfa9425ce4bedbb38e0c6afb604ea188c4

Deployed Bytecode

0x608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b31461022b57806318160ddd1461029057806322f4596f146102bb57806323b872dd146102e657806330bdae571461036b578063313ce56714610396578063392efb52146103c757806344c61237146104105780635b9bd14f1461043b5780636237d8a9146104665780636b2f46321461049557806370a08231146104c0578063780ea77c1461051757806379ba5097146105215780637b0e73631461053857806389135ae9146105655780638b27a735146105a25780638da5cb5b146105b95780639143a26614610610578063949e8acd1461065157806395d89b411461067c578063a9059cbb1461070c578063b84c824614610771578063bcd76e79146107da578063c47f00271461081b578063c6ddfe0a14610884578063cae9ca51146108c7578063d4ee1d9014610972578063dc39d06d146109c9578063dd62ed3e14610a2e578063f2fde38b14610aa5575b600080fd5b3480156101a757600080fd5b506101b0610ae8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f05780820151818401526020810190506101d5565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023757600080fd5b50610276600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b86565b604051808215151515815260200191505060405180910390f35b34801561029c57600080fd5b506102a5610c78565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102d0610c82565b6040518082815260200191505060405180910390f35b3480156102f257600080fd5b50610351600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c92565b604051808215151515815260200191505060405180910390f35b34801561037757600080fd5b50610380610e3a565b6040518082815260200191505060405180910390f35b3480156103a257600080fd5b506103ab610e54565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103d357600080fd5b506103f66004803603810190808035600019169060200190929190505050610e59565b604051808215151515815260200191505060405180910390f35b34801561041c57600080fd5b50610425610e79565b6040518082815260200191505060405180910390f35b34801561044757600080fd5b50610450610e88565b6040518082815260200191505060405180910390f35b34801561047257600080fd5b5061047b610e98565b604051808215151515815260200191505060405180910390f35b3480156104a157600080fd5b506104aa611071565b6040518082815260200191505060405180910390f35b3480156104cc57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611090565b6040518082815260200191505060405180910390f35b61051f6110d9565b005b34801561052d57600080fd5b50610536611409565b005b34801561054457600080fd5b5061056360048036038101908080359060200190929190505050611611565b005b34801561057157600080fd5b506105a060048036038101908080356000191690602001909291908035151590602001909291905050506118aa565b005b3480156105ae57600080fd5b506105b7611a40565b005b3480156105c557600080fd5b506105ce611c7e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061c57600080fd5b5061063b60048036038101908080359060200190929190505050611ca3565b6040518082815260200191505060405180910390f35b34801561065d57600080fd5b50610666611cb9565b6040518082815260200191505060405180910390f35b34801561068857600080fd5b50610691611cce565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106d15780820151818401526020810190506106b6565b50505050905090810190601f1680156106fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561071857600080fd5b50610757600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d6c565b604051808215151515815260200191505060405180910390f35b34801561077d57600080fd5b506107d8600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611d83565b005b3480156107e657600080fd5b5061080560048036038101908080359060200190929190505050611efc565b6040518082815260200191505060405180910390f35b34801561082757600080fd5b50610882600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611fa0565b005b34801561089057600080fd5b506108b1600480360381019080803515159060200190929190505050612119565b6040518082815260200191505060405180910390f35b3480156108d357600080fd5b50610958600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612172565b604051808215151515815260200191505060405180910390f35b34801561097e57600080fd5b506109876123c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109d557600080fd5b50610a14600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123e7565b604051808215151515815260200191505060405180910390f35b348015610a3a57600080fd5b50610a8f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125b4565b6040518082815260200191505060405180910390f35b348015610ab157600080fd5b50610ae6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061263b565b005b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b7e5780601f10610b5357610100808354040283529160200191610b7e565b820191906000526020600020905b815481529060010190602001808311610b6157829003601f168201915b505050505081565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b601260ff16600a0a620f42400281565b6000610c9e84336125b4565b8211151515610d15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b20616c6c6f77616e63652100000000000000000081525060200191505060405180910390fd5b610da482600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274390919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e2f84848461275c565b600190509392505050565b6000610e4f600160120360ff16600a0a612c1e565b905090565b601281565b600a6020528060005260406000206000915054906101000a900460ff1681565b6000610e83612cae565b905090565b601260ff16600a0a620c35000281565b6000803390506000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f426c6f636b206e756d62657220696e76616c696421000000000000000000000081525060200191505060405180910390fd5b6000600654111515610fcf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f426c6f636b206e756d62657220696e76616c696421000000000000000000000081525060200191505060405180910390fd5b611017600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cdc565b1561102457436006819055505b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600191505090565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b680ad78ebc5ac62000003073ffffffffffffffffffffffffffffffffffffffff1631111580156111db5750600a600033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156111895780518252602082019150602081019050602083039250611164565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff165b1561133857600a600033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831015156112655780518252602082019150602081019050602083039250611240565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561132a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f596f7520617265206e6f74207065726d697373696f6e2100000000000000000081525060200191505060405180910390fd5b61133334612f4e565b611407565b600160120360ff16600a0a341415156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f56616c756520697320696e76616c69642100000000000000000000000000000081525060200191505060405180910390fd5b6113c234612f4e565b43600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f776e657220696e636f7272656374210000000000000000000000000000000081525060200191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600061161e611cb9565b111515611693576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b206d7920746f6b656e732100000000000000000081525060200191505060405180910390fd5b339150600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f45435420697320696e76616c696421000000000000000000000000000000000081525060200191505060405180910390fd5b611756836131a3565b90506117aa83600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274390919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118028360055461274390919063ffffffff16565b6005819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561184e573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398483604051808381526020018281526020019250505060405180910390a2505050565b6000339050600a600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515611943578051825260208201915060208101905060208303925061191e565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611a08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f506c6561736520636865636b207065726d697373696f6e2061646d696e21000081525060200191505060405180910390fd5b81600a6000856000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000806000611a4d611cb9565b111515611ac2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b206d7920746f6b656e732100000000000000000081525060200191505060405180910390fd5b339150611acd612cae565b9050600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f45435420697320696e76616c696421000000000000000000000000000000000081525060200191505060405180910390fd5b611bd881600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274390919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c308160055461274390919063ffffffff16565b60058190555043600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611cb260065440836131df565b9050919050565b600080339050611cc881611090565b91505090565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d645780601f10611d3957610100808354040283529160200191611d64565b820191906000526020600020905b815481529060010190602001808311611d4757829003601f168201915b505050505081565b6000611d7933848461275c565b6001905092915050565b6000339050600a600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b602083101515611e1c5780518252602082019150602081019050602083039250611df7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611ee1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f506c6561736520636865636b207065726d697373696f6e2061646d696e21000081525060200191505060405180910390fd5b8160029080519060200190611ef79291906136e6565b505050565b600080600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611f9657611f8f600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205440836131df565b9050611f9b565b600090505b919050565b6000339050600a600082604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040516020818303038152906040526040518082805190602001908083835b6020831015156120395780518252602082019150602081019050602083039250612014565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156120fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f506c6561736520636865636b207065726d697373696f6e2061646d696e21000081525060200191505060405180910390fd5b81600390805190602001906121149291906136e6565b505050565b6000811561216857600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061216d565b600090505b919050565b600082600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561234f578082015181840152602081019050612334565b50505050905090810190601f16801561237c5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561239e57600080fd5b505af11580156123b2573d6000803e3d6000fd5b50505050600190509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f776e657220696e636f7272656374210000000000000000000000000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561257157600080fd5b505af1158015612585573d6000803e3d6000fd5b505050506040513d602081101561259b57600080fd5b8101908080519060200190929190505050905092915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4f776e657220696e636f7272656374210000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115151561275157fe5b818303905092915050565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f506c6561736520636865636b206164647265737321000000000000000000000081525060200191505060405180910390fd5b600061280e611cb9565b111515612883576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f506c6561736520636865636b206d7920746f6b656e732100000000000000000081525060200191505060405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111151561297a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f506c6561736520636865636b20746f6b656e732076616c75652100000000000081525060200191505060405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054019150612a4f83600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461274390919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ae483600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461356190919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a381600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401141515612c1757fe5b5050505050565b6000600160120360ff16600a0a821415612ca457612c9d601260ff16600a0a620c350002612c8f612c60600a601260ff16600a0a61357f90919063ffffffff16565b612c81600554601260ff16600a0a620f42400261274390919063ffffffff16565b61357f90919063ffffffff16565b6135ba90919063ffffffff16565b9050612ca9565b600090505b919050565b6000612cd7612cc6600160120360ff16600a0a612c1e565b60045461357f90919063ffffffff16565b905090565b6000806000806000806000806000806000600654111515612d65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f426c6f636b206e756d62657220696e76616c696421000000000000000000000081525060200191505060405180910390fd5b3398508a409750600654409650612d7d8860046131df565b9550612d8a8760046131df565b945060009350600492505b6000831115612f3d57612da98686856135fb565b15612f2f57600091503073ffffffffffffffffffffffffffffffffffffffff163190506004831415612e1d57612dfc6064612dee600a8461357f90919063ffffffff16565b6135ba90919063ffffffff16565b915068056bc75e2d63100000821115612e1c5768056bc75e2d6310000091505b5b6003831415612e6c57612e4d6064612e3f60028461357f90919063ffffffff16565b6135ba90919063ffffffff16565b9150678ac7230489e80000821115612e6b57678ac7230489e8000091505b5b6002831415612ebc57612e9d6103e8612e8f60058461357f90919063ffffffff16565b6135ba90919063ffffffff16565b9150670de0b6b3a7640000821115612ebb57670de0b6b3a764000091505b5b6001831415612ed15767016345785d8a000091505b6000821115612f2a578873ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612f20573d6000803e3d6000fd5b5060019350612f3d565b600093505b828060019003935050612d95565b839950505050505050505050919050565b600080339150601260ff16600a0a620f42400260055411151561309357680ad78ebc5ac62000003073ffffffffffffffffffffffffffffffffffffffff16311115801561306d5750600a600033604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310151561301b5780518252602082019150602081019050602083039250612ff6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff165b156130825761307b83613641565b905061308e565b61308b83612c1e565b90505b613098565b600090505b6130ea81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461356190919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131428160055461356190919063ffffffff16565b6005819055508173ffffffffffffffffffffffffffffffffffffffff167f7f743fb741e07b0c4daeb2af54fb3ebfa2bdb31d9913a0e555661c870411aae58483604051808381526020018281526020019250505060405180910390a2505050565b60006131d8601260ff16600a0a6131ca6131bb613680565b8561357f90919063ffffffff16565b6135ba90919063ffffffff16565b9050919050565b60008060008060008060008060010289600019161180156132005750600088115b1515613274576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f56616c7565206973206e6f7420646566696e65642e000000000000000000000081525060200191505060405180910390fd5b60009550600188039450600160200360ff1693505b60008411156135525788846020811015156132a057fe5b1a7f01000000000000000000000000000000000000000000000000000000000000000292506010837f0100000000000000000000000000000000000000000000000000000000000000900460ff168115156132f757fe5b047f0100000000000000000000000000000000000000000000000000000000000000029150817f01000000000000000000000000000000000000000000000000000000000000009004601002837f01000000000000000000000000000000000000000000000000000000000000009004037f010000000000000000000000000000000000000000000000000000000000000002905060007f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101580156134255750600a7f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916105b156134615784600a0a817f0100000000000000000000000000000000000000000000000000000000000000900402860195508480600190039550505b60007f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101580156134fa5750600a7f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916105b156135365784600a0a827f0100000000000000000000000000000000000000000000000000000000000000900402860195508480600190039550505b600085101561354457613552565b838060019003945050613289565b85965050505050505092915050565b600080828401905083811015151561357557fe5b8091505092915050565b600080600084141561359457600091506135b3565b82840290508284828115156135a557fe5b041415156135af57fe5b8091505b5092915050565b6000806000831115156135c957fe5b82848115156135d457fe5b04905082848115156135e257fe5b0681840201841415156135f157fe5b8091505092915050565b600080600083600a0a8681151561360e57fe5b06915083600a0a8581151561361f57fe5b069050808214156136335760019250613638565b600092505b50509392505050565b6000613679600360120360ff16600a0a61366b601260ff16600a0a8561357f90919063ffffffff16565b6135ba90919063ffffffff16565b9050919050565b60008060008091503073ffffffffffffffffffffffffffffffffffffffff16319050600060055411156136de576136db6005546136cd601260ff16600a0a8461357f90919063ffffffff16565b6135ba90919063ffffffff16565b91505b819250505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061372757805160ff1916838001178555613755565b82800160010185558215613755579182015b82811115613754578251825591602001919060010190613739565b5b5090506137629190613766565b5090565b61378891905b8082111561378457600081600090555060010161376c565b5090565b905600a165627a7a72305820f10c0d75a64dffb4d0e0ff855947f3fbb0a29eb9c604e4bc13a530609cf759670029

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

000000000000000000000000972547cfa9425ce4bedbb38e0c6afb604ea188c4

-----Decoded View---------------
Arg [0] : _admin (address): 0x972547CFA9425ce4BEDbb38e0C6afb604ea188c4

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000972547cfa9425ce4bedbb38e0c6afb604ea188c4


Deployed Bytecode Sourcemap

2393:16563:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3969:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3969:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3969:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10267:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10267:223:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9067:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9067:108:0;;;;;;;;;;;;;;;;;;;;;;;4085:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4085:65:0;;;;;;;;;;;;;;;;;;;;;;;7587:366;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7587:366:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12753:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12753:130:0;;;;;;;;;;;;;;;;;;;;;;;4010:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4010:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4698:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4698:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12416:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12416:107:0;;;;;;;;;;;;;;;;;;;;;;;4157:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4157:68:0;;;;;;;;;;;;;;;;;;;;;;;8583:293;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8583:293:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9368:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9368:125:0;;;;;;;;;;;;;;;;;;;;;;;9718:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9718:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5361:493;;;;;;1985:215;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1985:215:0;;;;;;6696:525;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6696:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;18430:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18430:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6054:433;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6054:433:0;;;;;;1568:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1568:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11215:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11215:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10077:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10077:182:0;;;;;;;;;;;;;;;;;;;;;;;3934:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3934:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3934:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7412:167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7412:167:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18834:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18834:119:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11952:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11952:238:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18655:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18655:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11570:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11570:183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10673:348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10673:348:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1595:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1595:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8189:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8189:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10498:167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10498:167:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1877:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3969:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10267:223::-;10340:12;10401:6;10370:7;:19;10378:10;10370:19;;;;;;;;;;;;;;;:28;10390:7;10370:28;;;;;;;;;;;;;;;:37;;;;10444:7;10423:37;;10432:10;10423:37;;;10453:6;10423:37;;;;;;;;;;;;;;;;;;10478:4;10471:11;;10267:223;;;;:::o;9067:108::-;9126:4;9155:12;;9148:19;;9067:108;:::o;4085:65::-;4043:2;4136:14;;4132:2;:18;4122:7;:28;4085:65;:::o;7587:366::-;7679:12;7727:28;7737:5;7744:10;7727:9;:28::i;:::-;7717:6;:38;;7709:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7845:38;7876:6;7845:7;:14;7853:5;7845:14;;;;;;;;;;;;;;;:26;7860:10;7845:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;7816:7;:14;7824:5;7816:14;;;;;;;;;;;;;;;:26;7831:10;7816:26;;;;;;;;;;;;;;;:67;;;;7894:29;7904:5;7911:3;7916:6;7894:9;:29::i;:::-;7941:4;7934:11;;7587:366;;;;;:::o;12753:130::-;12814:7;12846:29;4483:1;4043:2;4474:10;4469:16;;4465:2;:20;12846:14;:29::i;:::-;12839:36;;12753:130;:::o;4010:35::-;4043:2;4010:35;:::o;4698:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;12416:107::-;12475:7;12507:8;:6;:8::i;:::-;12500:15;;12416:107;:::o;4157:68::-;4043:2;4211:14;;4207:2;:18;4198:6;:27;4157:68;:::o;8583:293::-;8680:4;3136:24;3163:10;3136:37;;3227:1;3192:14;:32;3207:16;3192:32;;;;;;;;;;;;;;;;:36;3184:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3344:1;3331:10;;:14;3323:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8706:37;8716:14;:26;8731:10;8716:26;;;;;;;;;;;;;;;;8706:9;:37::i;:::-;8702:104;;;8782:12;8769:10;:25;;;;8702:104;8845:1;8816:14;:26;8831:10;8816:26;;;;;;;;;;;;;;;:30;;;;8864:4;8857:11;;8583:293;;:::o;9368:125::-;9435:4;9472;9464:21;;;9457:28;;9368:125;:::o;9718:140::-;9793:12;9830:8;:20;9839:10;9830:20;;;;;;;;;;;;;;;;9823:27;;9718:140;;;:::o;5361:493::-;4342:9;5432:4;5424:21;;;:34;;:100;;;;;5475:14;:49;5511:10;5500:22;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5500:22:0;;;5490:33;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;5490:33:0;;;;;;;;;;;;;;;;5475:49;;;;;;;;;;;;;;;;;;;;;;;;;;;5424:100;5420:274;;;5548:14;:49;5584:10;5573:22;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5573:22:0;;;5563:33;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;5563:33:0;;;;;;;;;;;;;;;;5548:49;;;;;;;;;;;;;;;;;;;;;;;;;;;5540:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5639:22;5651:9;5639:11;:22::i;:::-;5676:7;;5420:274;4483:1;4043:2;4474:10;4469:16;;4465:2;:20;5714:9;:26;5706:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5772:22;5784:9;5772:11;:22::i;:::-;5834:12;5805:14;:26;5820:10;5805:26;;;;;;;;;;;;;;;:41;;;;5361:493;:::o;1985:215::-;2052:8;;;;;;;;;;;2038:22;;:10;:22;;;2030:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2124:8;;;;;;;;;;;2096:37;;2117:5;;;;;;;;;;;2096:37;;;;;;;;;;;;2152:8;;;;;;;;;;;2144:5;;:16;;;;;;;;;;;;;;;;;;2190:1;2171:8;;:21;;;;;;;;;;;;;;;;;;1985:215::o;6696:525::-;6785:24;6913:16;2656:1;2643:10;:8;:10::i;:::-;:14;2635:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6812:10;6785:37;;6857:8;:26;6866:16;6857:26;;;;;;;;;;;;;;;;6841:12;:42;;6833:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6932:28;6947:12;6932:14;:28::i;:::-;6913:47;;7000:44;7031:12;7000:8;:26;7009:16;7000:26;;;;;;;;;;;;;;;;:30;;:44;;;;:::i;:::-;6971:8;:26;6980:16;6971:26;;;;;;;;;;;;;;;:73;;;;7070:30;7087:12;7070;;:16;;:30;;;;:::i;:::-;7055:12;:45;;;;7111:16;:25;;:35;7137:8;7111:35;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7111:35:0;7174:16;7162:51;;;7191:12;7204:8;7162:51;;;;;;;;;;;;;;;;;;;;;;;;6696:525;;;:::o;18430:159::-;2751:24;2778:10;2751:37;;2807:14;:61;2849:16;2832:34;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2832:34:0;;;2822:45;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;2822:45:0;;;;;;;;;;;;;;;;2807:61;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18574:7;18544:14;:27;18559:11;18544:27;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;18430:159;;;:::o;6054:433::-;6128:24;6176:20;2656:1;2643:10;:8;:10::i;:::-;:14;2635:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6155:10;6128:37;;6199:8;:6;:8::i;:::-;6176:31;;6242:8;:26;6251:16;6242:26;;;;;;;;;;;;;;;;6226:12;:42;;6218:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6327:44;6358:12;6327:8;:26;6336:16;6327:26;;;;;;;;;;;;;;;;:30;;:44;;;;:::i;:::-;6298:8;:26;6307:16;6298:26;;;;;;;;;;;;;;;:73;;;;6397:30;6414:12;6397;;:16;;:30;;;;:::i;:::-;6382:12;:45;;;;6467:12;6438:14;:26;6453:10;6438:26;;;;;;;;;;;;;;;:41;;;;6054:433;;:::o;1568:20::-;;;;;;;;;;;;;:::o;11215:148::-;11285:4;11314:41;11335:10;;11325:21;11348:6;11314:10;:41::i;:::-;11307:48;;11215:148;;;:::o;10077:182::-;10144:7;10169:24;10196:10;10169:37;;10224:27;10234:16;10224:9;:27::i;:::-;10217:34;;10077:182;;:::o;3934:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7412:167::-;7485:12;7515:34;7525:10;7537:3;7542:6;7515:9;:34::i;:::-;7567:4;7560:11;;7412:167;;;;:::o;18834:119::-;2751:24;2778:10;2751:37;;2807:14;:61;2849:16;2832:34;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2832:34:0;;;2822:45;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;2822:45:0;;;;;;;;;;;;;;;;2807:61;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18938:7;18929:6;:16;;;;;;;;;;;;:::i;:::-;;18834:119;;:::o;11952:238::-;12026:7;12084:1;12055:14;:26;12070:10;12055:26;;;;;;;;;;;;;;;;:30;12051:112;;;12107:56;12128:14;:26;12143:10;12128:26;;;;;;;;;;;;;;;;12118:37;12156:6;12107:10;:56::i;:::-;12100:63;;;;12051:112;12181:1;12174:8;;11952:238;;;;:::o;18655:111::-;2751:24;2778:10;2751:37;;2807:14;:61;2849:16;2832:34;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2832:34:0;;;2822:45;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;2822:45:0;;;;;;;;;;;;;;;;2807:61;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18753:5;18746:4;:12;;;;;;;;;;;;:::i;:::-;;18655:111;;:::o;11570:183::-;11644:7;11672:6;11669:57;;;11700:14;:26;11715:10;11700:26;;;;;;;;;;;;;;;;11693:33;;;;11669:57;11744:1;11737:8;;11570:183;;;;:::o;10673:348::-;10772:12;10833:6;10802:7;:19;10810:10;10802:19;;;;;;;;;;;;;;;:28;10822:7;10802:28;;;;;;;;;;;;;;;:37;;;;10876:7;10855:37;;10864:10;10855:37;;;10885:6;10855:37;;;;;;;;;;;;;;;;;;10926:7;10903:47;;;10951:10;10963:6;10979:4;10986;10903: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;10903:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10903:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10903:88:0;;;;11009:4;11002:11;;10673:348;;;;;:::o;1595:23::-;;;;;;;;;;;;;:::o;8189:204::-;8296:12;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8348:12;8333:37;;;8371:5;;;;;;;;;;;8378:6;8333:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8333:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8333:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8333:52:0;;;;;;;;;;;;;;;;8326:59;;8189:204;;;;:::o;10498:167::-;10590:14;10629:7;:19;10637:10;10629:19;;;;;;;;;;;;;;;:28;10649:7;10629:28;;;;;;;;;;;;;;;;10622:35;;10498:167;;;;:::o;1877:102::-;1824:5;;;;;;;;;;;1810:19;;:10;:19;;;1802:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:9;1951:8;;:20;;;;;;;;;;;;;;;;;;1877:102;:::o;19864:123::-;19922:7;19954:1;19949;:6;;19942:14;;;;;;19978:1;19974;:5;19967:12;;19864:123;;;;:::o;13965:511::-;14191:21;14061:3;3003:42;2988:58;;:3;:58;;;;2980:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2656:1;2643:10;:8;:10::i;:::-;:14;2635:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14137:8;:13;14146:3;14137:13;;;;;;;;;;;;;;;;14128:6;14112:8;:13;14121:3;14112:13;;;;;;;;;;;;;;;;:22;:38;14104:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14233:8;:13;14242:3;14233:13;;;;;;;;;;;;;;;;14215:8;:15;14224:5;14215:15;;;;;;;;;;;;;;;;:31;14191:55;;14275:27;14295:6;14275:8;:15;14284:5;14275:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;14257:8;:15;14266:5;14257:15;;;;;;;;;;;;;;;:45;;;;14329:25;14347:6;14329:8;:13;14338:3;14329:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;14313:8;:13;14322:3;14313:13;;;;;;;;;;;;;;;:41;;;;14386:3;14370:28;;14379:5;14370:28;;;14391:6;14370:28;;;;;;;;;;;;;;;;;;14451:16;14434:8;:13;14443:3;14434:13;;;;;;;;;;;;;;;;14416:8;:15;14425:5;14416:15;;;;;;;;;;;;;;;;:31;:51;14409:59;;;;;;13965:511;;;;;:::o;17415:285::-;17498:7;4483:1;4043:2;4474:10;4469:16;;4465:2;:20;17527:12;:29;17523:169;;;17578:77;4043:2;4211:14;;4207:2;:18;4198:6;:27;17579:55;17614:19;17630:2;4043;4402:14;;4398:2;:18;17614:15;;:19;;;;:::i;:::-;17580:28;17595:12;;4043:2;4136:14;;4132:2;:18;4122:7;:28;17580:14;;:28;;;;:::i;:::-;17579:34;;:55;;;;:::i;:::-;17578:61;;:77;;;;:::i;:::-;17571:84;;;;17523:169;17691:1;17684:8;;17415:285;;;;:::o;13822:135::-;13877:7;13909:40;13919:29;4483:1;4043:2;4474:10;4469:16;;4465:2;:20;13919:14;:29::i;:::-;13909:5;;:9;;:40;;;;:::i;:::-;13902:47;;13822:135;:::o;14484:1598::-;14573:4;14595:24;14643:21;14695:23;14753:13;14808:15;14867:9;14900:6;15013:16;15052:17;3344:1;3331:10;;:14;3323:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14622:10;14595:37;;14677:6;14667:17;14643:41;;14731:10;;14721:21;14695:47;;14769:28;14780:13;14795:1;14769:10;:28::i;:::-;14753:44;;14826:30;14837:15;14854:1;14826:10;:30::i;:::-;14808:48;;14879:5;14867:17;;14909:1;14900:10;;14895:1158;14916:1;14912;:5;14895:1158;;;14942:37;14957:8;14966:10;14977:1;14942:14;:37::i;:::-;14938:1104;;;15032:1;15013:20;;15080:4;15072:21;;;15052:41;;15121:1;15116;:6;15112:186;;;15157:28;15181:3;15158:17;15172:2;15158:9;:13;;:17;;;;:::i;:::-;15157:23;;:28;;;;:::i;:::-;15146:39;;15222:9;15211:8;:20;15208:70;;;15269:9;15258:20;;15208:70;15112:186;15325:1;15320;:6;15316:183;;;15361:27;15384:3;15362:16;15376:1;15362:9;:13;;:16;;;;:::i;:::-;15361:22;;:27;;;;:::i;:::-;15350:38;;15425:8;15414;:19;15411:68;;;15471:8;15460:19;;15411:68;15316:183;15526:1;15521;:6;15517:182;;;15562:28;15585:4;15563:16;15577:1;15563:9;:13;;:16;;;;:::i;:::-;15562:22;;:28;;;;:::i;:::-;15551:39;;15627:7;15616:8;:18;15613:66;;;15672:7;15661:18;;15613:66;15517:182;15726:1;15721;:6;15717:74;;;15762:9;15751:20;;15717:74;15824:1;15813:8;:12;15809:218;;;15849:16;:25;;:35;15875:8;15849:35;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15849:35:0;15914:4;15907:11;;15941:5;;15809:218;16002:5;15995:12;;14938:1104;14919:3;;;;;;;;14895:1158;;;16070:4;16063:11;;14484:1598;;;;;;;;;;;;:::o;13028:786::-;13106:24;13154:18;13133:10;13106:37;;4043:2;4136:14;;4132:2;:18;4122:7;:28;13187:12;;:26;;13183:410;;;4342:9;13251:4;13243:21;;;:34;;:104;;;;;13298:14;:49;13334:10;13323:22;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13323:22:0;;;13313:33;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;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;;;13313:33:0;;;;;;;;;;;;;;;;13298:49;;;;;;;;;;;;;;;;;;;;;;;;;;;13243:104;13239:296;;;13394:38;13414:17;13394:19;:38::i;:::-;13381:51;;13239:296;;;13486:33;13501:17;13486:14;:33::i;:::-;13473:46;;13239:296;13183:410;;;13580:1;13567:14;;13183:410;13632:42;13663:10;13632:8;:26;13641:16;13632:26;;;;;;;;;;;;;;;;:30;;:42;;;;:::i;:::-;13603:8;:26;13612:16;13603:26;;;;;;;;;;;;;;;:71;;;;13700:28;13717:10;13700:12;;:16;;:28;;;;:::i;:::-;13685:12;:43;;;;13760:16;13744:62;;;13777:17;13795:10;13744:62;;;;;;;;;;;;;;;;;;;;;;;;13028:786;;;:::o;17708:175::-;17791:7;17823:52;4043:2;4402:14;;4398:2;:18;17823:35;17840:17;:15;:17::i;:::-;17823:12;:16;;:35;;;;:::i;:::-;:39;;:52;;;;:::i;:::-;17816:59;;17708:175;;;:::o;16404:820::-;16491:4;16583:10;16608:9;16645;16713:12;16753:9;16803:8;16531:1;16521:11;;:7;:11;;;;:25;;;;;16545:1;16536:6;:10;16521:25;16513:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16596:1;16583:14;;16629:1;16620:6;:10;16608:22;;16674:1;16657:14;:18;16645:30;;;;16641:553;16681:1;16677;:5;16641:553;;;16728:7;16736:1;16728:10;;;;;;;;;;;;16713:25;;16785:2;16776:5;16770:12;;;:17;;;;;;;;;;16765:23;;16753:35;;16845:4;16839:11;;;16834:2;:16;16825:5;16819:12;;;:31;16814:37;;16803:48;;16876:4;16869:11;;:3;:11;;;;;:25;;;;;16890:4;16884:10;;:3;:10;;;;16869:25;16866:125;;;16945:4;16941:2;:8;16935:3;16930:9;;;:20;16922:5;:28;16914:36;;16969:6;;;;;;;;16866:125;17016:4;17008:12;;:4;:12;;;;;:27;;;;;17031:4;17024:11;;:4;:11;;;;17008:27;17005:128;;;17087:4;17083:2;:8;17076:4;17071:10;;;:21;17063:5;:29;17055:37;;17111:6;;;;;;;;17005:128;17157:1;17150:4;:8;17147:35;;;17177:5;;17147:35;16684:3;;;;;;;;16641:553;;;17211:5;17204:12;;16404:820;;;;;;;;;;:::o;20062:147::-;20120:7;20140:9;20156:1;20152;:5;20140:17;;20180:1;20175;:6;;20168:14;;;;;;20200:1;20193:8;;20062:147;;;;;:::o;19153:208::-;19211:7;19288:9;19240:1;19235;:6;19231:47;;;19265:1;19258:8;;;;19231:47;19304:1;19300;:5;19288:17;;19332:1;19327;19323;:5;;;;;;;;:10;19316:18;;;;;;19352:1;19345:8;;19153:208;;;;;;:::o;19456:282::-;19514:7;19610:9;19545:1;19541;:5;19534:13;;;;;;19626:1;19622;:5;;;;;;;;19610:17;;19662:1;19658;:5;;;;;;;;19654:1;19650;:5;:13;19645:1;:18;19638:26;;;;;;19729:1;19722:8;;19456:282;;;;;:::o;16090:306::-;16197:4;16219:13;16268:11;16249:7;16245:2;:11;16235:8;:22;;;;;;;;16219:38;;16298:7;16294:2;:11;16282:10;:24;;;;;;;;16268:38;;16333:6;16321:8;:18;16317:48;;;16361:4;16354:11;;;;16317:48;16383:5;16376:12;;16090:306;;;;;;;;:::o;17232:175::-;17320:7;17352:47;4549:1;4043:2;4540:10;4535:16;;4531:2;:20;17353:29;4043:2;4402:14;;4398:2;:18;17353:12;:16;;:29;;;;:::i;:::-;17352:35;;:47;;;;:::i;:::-;17345:54;;17232:175;;;:::o;17891:316::-;17955:7;17980:18;18013:17;18001:1;17980:22;;18041:4;18033:21;;;18013:41;;18084:1;18069:12;;:16;18065:107;;;18114:46;18147:12;;18115:26;4043:2;4402:14;;4398:2;:18;18115:9;:13;;:26;;;;:::i;:::-;18114:32;;:46;;;;:::i;:::-;18101:59;;18065:107;18189:10;18182:17;;17891:316;;;:::o;2393:16563::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://f10c0d75a64dffb4d0e0ff855947f3fbb0a29eb9c604e4bc13a530609cf75967

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.