ETH Price: $2,421.37 (+2.93%)

Token

SUPM token (SUPMT)
 

Overview

Max Total Supply

600,000,000 SUPMT

Holders

636

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
166,666 SUPMT

Value
$0.00
0xdf113a524146eefe788f33bf8abe34e10b120030
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-08-18
*/

pragma solidity ^0.4.18;

/*
// --
// --
// --
//   ___       ___       ___       ___       ___
//   /\  \     /\__\     /\  \     /\__\     /\  \
//   /::\  \   /:/ _/_   /::\  \   /::L_L_    \:\  \
//   /\:\:\__\ /:/_/\__\ /::\:\__\ /:/L:\__\   /::\__\
//   \:\:\/__/ \:\/:/  / \/\::/  / \/_/:/  /  /:/\/__/
//   \::/  /   \::/  /     \/__/    /:/  /   \/__/
//   \/__/     \/__/               \/__/
// --
// --
// --
*/

// Contract must have an owner
contract Owned {
    address public owner;

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

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function setOwner(address _owner) onlyOwner public {
        owner = _owner;
    }
}

// SafeMath methods
contract SafeMath {
    function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
        uint256 c = _a + _b;
        assert(c >= _a);
        return c;
    }

    function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
        assert(_a >= _b);
        return _a - _b;
    }

    function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
        uint256 c = _a * _b;
        assert(_a == 0 || c / _a == _b);
        return c;
    }
}

// for safety methods
interface ERC20Token {
  function transfer(address _to, uint256 _value) external returns (bool);
  function balanceOf(address _addr) external view returns (uint256);
  function decimals() external view returns (uint8);
}

// the main ERC20-compliant contract
contract Token is SafeMath, Owned {
    uint256 constant DAY_IN_SECONDS = 86400;
    string public constant standard = "0.66";
    string public name = "";
    string public symbol = "";
    uint8 public decimals = 0;
    uint256 public totalSupply = 0;
    mapping (address => uint256) public balanceP;
    mapping (address => mapping (address => uint256)) public allowance;

    mapping (address => uint256[]) public lockTime;
    mapping (address => uint256[]) public lockValue;
    mapping (address => uint256) public lockNum;
    mapping (address => bool) public locker;
    uint256 public later = 0;
    uint256 public earlier = 0;

    // standard ERC20 events
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    // timelock-related events
    event TransferLocked(address indexed _from, address indexed _to, uint256 _time, uint256 _value);
    event TokenUnlocked(address indexed _address, uint256 _value);

    // safety method-related events
    event WrongTokenEmptied(address indexed _token, address indexed _addr, uint256 _amount);
    event WrongEtherEmptied(address indexed _addr, uint256 _amount);

    // constructor for the ERC20 Token
    constructor(string _name, string _symbol, uint8 _decimals, uint256 _totalSupply) public {
        require(bytes(_name).length > 0 && bytes(_symbol).length > 0);

        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        totalSupply = _totalSupply;

        balanceP[msg.sender] = _totalSupply;

    }

    modifier validAddress(address _address) {
        require(_address != 0x0);
        _;
    }

    // owner may add or remove a locker address for the contract
    function addLocker(address _address) public validAddress(_address) onlyOwner {
        locker[_address] = true;
    }

    function removeLocker(address _address) public validAddress(_address) onlyOwner {
        locker[_address] = false;
    }

    // fast-forward the timelocks for all accounts
    function setUnlockEarlier(uint256 _earlier) public onlyOwner {
        earlier = add(earlier, _earlier);
    }

    // delay the timelocks for all accounts
    function setUnlockLater(uint256 _later) public onlyOwner {
        later = add(later, _later);
    }

    // show unlocked balance of an account
    function balanceUnlocked(address _address) public view returns (uint256 _balance) {
        _balance = balanceP[_address];
        uint256 i = 0;
        while (i < lockNum[_address]) {
            if (add(now, earlier) > add(lockTime[_address][i], later)) _balance = add(_balance, lockValue[_address][i]);
            i++;
        }
        return _balance;
    }

    // show timelocked balance of an account
    function balanceLocked(address _address) public view returns (uint256 _balance) {
        _balance = 0;
        uint256 i = 0;
        while (i < lockNum[_address]) {
            if (add(now, earlier) < add(lockTime[_address][i], later)) _balance = add(_balance, lockValue[_address][i]);
            i++;
        }
        return  _balance;
    }

    // standard ERC20 balanceOf with timelock added
    function balanceOf(address _address) public view returns (uint256 _balance) {
        _balance = balanceP[_address];
        uint256 i = 0;
        while (i < lockNum[_address]) {
            _balance = add(_balance, lockValue[_address][i]);
            i++;
        }
        return _balance;
    }

    // show timelocks in an account
    function showTime(address _address) public view validAddress(_address) returns (uint256[] _time) {
        uint i = 0;
        uint256[] memory tempLockTime = new uint256[](lockNum[_address]);
        while (i < lockNum[_address]) {
            tempLockTime[i] = sub(add(lockTime[_address][i], later), earlier);
            i++;
        }
        return tempLockTime;
    }

    // show values locked in an account's timelocks
    function showValue(address _address) public view validAddress(_address) returns (uint256[] _value) {
        return lockValue[_address];
    }

    // Calculate and process the timelock states of an account
    function calcUnlock(address _address) private {
        uint256 i = 0;
        uint256 j = 0;
        uint256[] memory currentLockTime;
        uint256[] memory currentLockValue;
        uint256[] memory newLockTime = new uint256[](lockNum[_address]);
        uint256[] memory newLockValue = new uint256[](lockNum[_address]);
        currentLockTime = lockTime[_address];
        currentLockValue = lockValue[_address];
        while (i < lockNum[_address]) {
            if (add(now, earlier) > add(currentLockTime[i], later)) {
                balanceP[_address] = add(balanceP[_address], currentLockValue[i]);
                emit TokenUnlocked(_address, currentLockValue[i]);
            } else {
                newLockTime[j] = currentLockTime[i];
                newLockValue[j] = currentLockValue[i];
                j++;
            }
            i++;
        }
        uint256[] memory trimLockTime = new uint256[](j);
        uint256[] memory trimLockValue = new uint256[](j);
        i = 0;
        while (i < j) {
            trimLockTime[i] = newLockTime[i];
            trimLockValue[i] = newLockValue[i];
            i++;
        }
        lockTime[_address] = trimLockTime;
        lockValue[_address] = trimLockValue;
        lockNum[_address] = j;
    }

    // standard ERC20 transfer
    function transfer(address _to, uint256 _value) public validAddress(_to) returns (bool success) {
        if (lockNum[msg.sender] > 0) calcUnlock(msg.sender);
        if (balanceP[msg.sender] >= _value && _value > 0) {
            balanceP[msg.sender] = sub(balanceP[msg.sender], _value);
            balanceP[_to] = add(balanceP[_to], _value);
            emit Transfer(msg.sender, _to, _value);
            return true;
        }
        else {
            return false;
        }
    }

    // transfer Token with timelocks
    function transferLocked(address _to, uint256[] _time, uint256[] _value) public validAddress(_to) returns (bool success) {
        require(_value.length == _time.length);

        if (lockNum[msg.sender] > 0) calcUnlock(msg.sender);
        uint256 i = 0;
        uint256 totalValue = 0;
        while (i < _value.length) {
            totalValue = add(totalValue, _value[i]);
            i++;
        }
        if (balanceP[msg.sender] >= totalValue && totalValue > 0) {
            i = 0;
            while (i < _time.length) {
                balanceP[msg.sender] = sub(balanceP[msg.sender], _value[i]);
                lockTime[_to].length = lockNum[_to]+1;
                lockValue[_to].length = lockNum[_to]+1;
                lockTime[_to][lockNum[_to]] = add(now, _time[i]);
                lockValue[_to][lockNum[_to]] = _value[i];

                // emit custom TransferLocked event
                emit TransferLocked(msg.sender, _to, lockTime[_to][lockNum[_to]], lockValue[_to][lockNum[_to]]);

                // emit standard Transfer event for wallets
                emit Transfer(msg.sender, _to, lockValue[_to][lockNum[_to]]);
                lockNum[_to]++;
                i++;
            }
            return true;
        }
        else {
            return false;
        }
    }

    // lockers set by owners may transfer Token with timelocks
    function transferLockedFrom(address _from, address _to, uint256[] _time, uint256[] _value) public
	    validAddress(_from) validAddress(_to) returns (bool success) {
        require(locker[msg.sender]);
        require(_value.length == _time.length);

        if (lockNum[_from] > 0) calcUnlock(_from);
        uint256 i = 0;
        uint256 totalValue = 0;
        while (i < _value.length) {
            totalValue = add(totalValue, _value[i]);
            i++;
        }
        if (balanceP[_from] >= totalValue && totalValue > 0 && allowance[_from][msg.sender] >= totalValue) {
            i = 0;
            while (i < _time.length) {
                balanceP[_from] = sub(balanceP[_from], _value[i]);
                allowance[_from][msg.sender] = sub(allowance[_from][msg.sender], _value[i]);
                lockTime[_to].length = lockNum[_to]+1;
                lockValue[_to].length = lockNum[_to]+1;
                lockTime[_to][lockNum[_to]] = add(now, _time[i]);
                lockValue[_to][lockNum[_to]] = _value[i];

                // emit custom TransferLocked event
                emit TransferLocked(_from, _to, lockTime[_to][lockNum[_to]], lockValue[_to][lockNum[_to]]);

                // emit standard Transfer event for wallets
                emit Transfer(_from, _to, lockValue[_to][lockNum[_to]]);
                lockNum[_to]++;
                i++;
            }
            return true;
        }
        else {
            return false;
        }
    }

    // standard ERC20 transferFrom
    function transferFrom(address _from, address _to, uint256 _value) public validAddress(_from) validAddress(_to) returns (bool success) {
        if (lockNum[_from] > 0) calcUnlock(_from);
        if (balanceP[_from] >= _value && _value > 0 && allowance[_from][msg.sender] >= _value) {
            allowance[_from][msg.sender] = sub(allowance[_from][msg.sender], _value);
            balanceP[_from] = sub(balanceP[_from], _value);
            balanceP[_to] = add(balanceP[_to], _value);
            emit Transfer(_from, _to, _value);
            return true;
        }
        else {
            return false;
        }
    }

    // should only be called when first setting an allowance
    function approve(address _spender, uint256 _value) public validAddress(_spender) returns (bool success) {
        require(allowance[msg.sender][_spender] == 0);

        if (lockNum[msg.sender] > 0) calcUnlock(msg.sender);
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    // increase or decrease allowance
    function increaseApproval(address _spender, uint _value) public returns (bool) {
      allowance[msg.sender][_spender] = add(allowance[msg.sender][_spender], _value);
      emit Approval(msg.sender, _spender, allowance[msg.sender][_spender]);
      return true;
    }

    function decreaseApproval(address _spender, uint _value) public returns (bool) {
      if(_value > allowance[msg.sender][_spender]) {
        allowance[msg.sender][_spender] = 0;
      } else {
        allowance[msg.sender][_spender] = sub(allowance[msg.sender][_spender], _value);
      }
      emit Approval(msg.sender, _spender, allowance[msg.sender][_spender]);
      return true;
    }

    // safety methods
    function () public payable {
        revert();
    }

    function emptyWrongToken(address _addr) onlyOwner public {
      ERC20Token wrongToken = ERC20Token(_addr);
      uint256 amount = wrongToken.balanceOf(address(this));
      require(amount > 0);
      require(wrongToken.transfer(msg.sender, amount));

      emit WrongTokenEmptied(_addr, msg.sender, amount);
    }

    // shouldn't happen, just in case
    function emptyWrongEther() onlyOwner public {
      uint256 amount = address(this).balance;
      require(amount > 0);
      msg.sender.transfer(amount);

      emit WrongEtherEmptied(msg.sender, amount);
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceUnlocked","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_time","type":"uint256[]"},{"name":"_value","type":"uint256[]"}],"name":"transferLockedFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"showValue","outputs":[{"name":"_value","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockNum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","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":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lockValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lockTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"addLocker","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceLocked","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"earlier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"showTime","outputs":[{"name":"_time","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"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":"_to","type":"address"},{"name":"_time","type":"uint256[]"},{"name":"_value","type":"uint256[]"}],"name":"transferLocked","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"later","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_later","type":"uint256"}],"name":"setUnlockLater","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"removeLocker","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"locker","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"emptyWrongToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"emptyWrongEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_earlier","type":"uint256"}],"name":"setUnlockEarlier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"},{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_time","type":"uint256"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"TransferLocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"TokenUnlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_addr","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"WrongTokenEmptied","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_addr","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"WrongEtherEmptied","type":"event"}]

60a06040819052600060808190526200001b9160019162000127565b506040805160208101918290526000908190526200003c9160029162000127565b506003805460ff1916905560006004819055600b819055600c553480156200006357600080fd5b5060405162002364380380620023648339810160409081528151602083015191830151606084015160008054600160a060020a0319163317815592850180519095949094019391929091118015620000bc575060008351115b1515620000c857600080fd5b8351620000dd90600190602087019062000127565b508251620000f390600290602086019062000127565b506003805460ff191660ff939093169290921790915560048190553360009081526005602052604090205550620001cc9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016a57805160ff19168380011785556200019a565b828001600101855582156200019a579182015b828111156200019a5782518255916020019190600101906200017d565b50620001a8929150620001ac565b5090565b620001c991905b80821115620001a85760008155600101620001b3565b90565b61218880620001dc6000396000f3006080604052600436106101a05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630451f52081146101a557806306fdde03146101d8578063095ea7b3146102625780630fce887b1461029a57806310e24db51461033e57806313af4035146103af57806316b81889146103d2578063170f8a51146103f357806318160ddd1461041457806323b872dd14610429578063313ce5671461045357806332308cce1461047e57806334af370f146104a257806345cc5890146104c65780635a3b7e42146104e75780635fc3a312146104fc578063661884631461051d57806366fbc1541461054157806370a0823114610556578063885cb436146105775780638da5cb5b1461059857806395d89b41146105c9578063a9059cbb146105de578063b91aedab14610602578063c7cc4ee91461069e578063ca0cd7c0146106b3578063ce62cd4a146106cb578063d71c9c12146106ec578063d72901811461070d578063d73dd6231461072e578063d80b205614610752578063dd62ed3e14610767578063df51d46b1461078e575b600080fd5b3480156101b157600080fd5b506101c6600160a060020a03600435166107a6565b60408051918252519081900360200190f35b3480156101e457600080fd5b506101ed61087a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022757818101518382015260200161020f565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026e57600080fd5b50610286600160a060020a0360043516602435610907565b604080519115158252519081900360200190f35b3480156102a657600080fd5b506040805160206004604435818101358381028086018501909652808552610286958335600160a060020a039081169660248035909216963696956064959294930192829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506109d69650505050505050565b34801561034a57600080fd5b5061035f600160a060020a0360043516610dfd565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561039b578181015183820152602001610383565b505050509050019250505060405180910390f35b3480156103bb57600080fd5b506103d0600160a060020a0360043516610e80565b005b3480156103de57600080fd5b506101c6600160a060020a0360043516610ec6565b3480156103ff57600080fd5b506101c6600160a060020a0360043516610ed8565b34801561042057600080fd5b506101c6610eea565b34801561043557600080fd5b50610286600160a060020a0360043581169060243516604435610ef0565b34801561045f57600080fd5b50610468611096565b6040805160ff9092168252519081900360200190f35b34801561048a57600080fd5b506101c6600160a060020a036004351660243561109f565b3480156104ae57600080fd5b506101c6600160a060020a03600435166024356110cf565b3480156104d257600080fd5b506103d0600160a060020a03600435166110ea565b3480156104f357600080fd5b506101ed61113c565b34801561050857600080fd5b506101c6600160a060020a0360043516611173565b34801561052957600080fd5b50610286600160a060020a0360043516602435611207565b34801561054d57600080fd5b506101c6611313565b34801561056257600080fd5b506101c6600160a060020a0360043516611319565b34801561058357600080fd5b5061035f600160a060020a0360043516611388565b3480156105a457600080fd5b506105ad611479565b60408051600160a060020a039092168252519081900360200190f35b3480156105d557600080fd5b506101ed611488565b3480156105ea57600080fd5b50610286600160a060020a03600435166024356114e0565b34801561060e57600080fd5b50604080516020600460248035828101358481028087018601909752808652610286968435600160a060020a031696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506115d69650505050505050565b3480156106aa57600080fd5b506101c661190b565b3480156106bf57600080fd5b506103d0600435611911565b3480156106d757600080fd5b506103d0600160a060020a036004351661193a565b3480156106f857600080fd5b50610286600160a060020a0360043516611989565b34801561071957600080fd5b506103d0600160a060020a036004351661199e565b34801561073a57600080fd5b50610286600160a060020a0360043516602435611b3b565b34801561075e57600080fd5b506103d0611b69565b34801561077357600080fd5b506101c6600160a060020a0360043581169060243516611bf8565b34801561079a57600080fd5b506103d0600435611c15565b600160a060020a038116600090815260056020526040812054905b600160a060020a03831660009081526009602052604090205481101561087457600160a060020a0383166000908152600760205260409020805461081d91908390811061080a57fe5b9060005260206000200154600b54611c3e565b61082942600c54611c3e565b111561086c57600160a060020a038316600090815260086020526040902080546108699184918490811061085957fe5b9060005260206000200154611c3e565b91505b6001016107c1565b50919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108ff5780601f106108d4576101008083540402835291602001916108ff565b820191906000526020600020905b8154815290600101906020018083116108e257829003601f168201915b505050505081565b600082600160a060020a038116151561091f57600080fd5b336000908152600660209081526040808320600160a060020a03881684529091529020541561094d57600080fd5b33600090815260096020526040812054111561096c5761096c33611c54565b336000818152600660209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3600191505b5092915050565b6000808086600160a060020a03811615156109f057600080fd5b86600160a060020a0381161515610a0657600080fd5b336000908152600a602052604090205460ff161515610a2457600080fd5b8651865114610a3257600080fd5b600160a060020a0389166000908152600960205260408120541115610a5a57610a5a89611c54565b60009350600092505b8551841015610a9a57610a8d838786815181101515610a7e57fe5b90602001906020020151611c3e565b6001909401939250610a63565b600160a060020a0389166000908152600560205260409020548311801590610ac25750600083115b8015610af15750600160a060020a03891660009081526006602090815260408083203384529091529020548311155b15610dec57600093505b8651841015610de357600160a060020a0389166000908152600560205260409020548651610b3f9190889087908110610b3057fe5b90602001906020020151612099565b600160a060020a038a1660009081526005602090815260408083209390935560068152828220338352905220548651610b7f9190889087908110610b3057fe5b600160a060020a03808b166000908152600660209081526040808320338452825280832094909455918b1681526009825282812054600790925291909120600190910190610bcd90826120ab565b50600160a060020a0388166000908152600960209081526040808320546008909252909120600190910190610c0290826120ab565b50610c15428886815181101515610a7e57fe5b600160a060020a038916600090815260076020908152604080832060099092529091205481548110610c4357fe5b6000918252602090912001558551869085908110610c5d57fe5b6020908102909101810151600160a060020a038a166000908152600883526040808220600990945290205482549192918110610c9557fe5b6000918252602080832090910192909255600160a060020a03808b1680835260078452604080842060099095529092205483549293918d16927f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e9291908110610cfa57fe5b6000918252602080832090910154600160a060020a038e16835260088252604080842060099093529092205481548110610d3057fe5b6000918252602091829020015460408051938452918301528051918290030190a3600160a060020a038089166000818152600860209081526040808320600990925290912054815492938d169260008051602061213d8339815191529291908110610d9757fe5b90600052602060002001546040518082815260200191505060405180910390a3600160a060020a0388166000908152600960205260409020805460019081019091559390930192610afb565b60019450610df1565b600094505b50505050949350505050565b606081600160a060020a0381161515610e1557600080fd5b600160a060020a03831660009081526008602090815260409182902080548351818402810184019094528084529091830182828015610e7357602002820191906000526020600020905b815481526020019060010190808311610e5f575b5050505050915050919050565b600054600160a060020a03163314610e9757600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60096020526000908152604090205481565b60056020526000908152604090205481565b60045481565b600083600160a060020a0381161515610f0857600080fd5b83600160a060020a0381161515610f1e57600080fd5b600160a060020a0386166000908152600960205260408120541115610f4657610f4686611c54565b600160a060020a0386166000908152600560205260409020548411801590610f6e5750600084115b8015610f9d5750600160a060020a03861660009081526006602090815260408083203384529091529020548411155b1561108857600160a060020a0386166000908152600660209081526040808320338452909152902054610fd09085612099565b600160a060020a03871660008181526006602090815260408083203384528252808320949094559181526005909152205461100b9085612099565b600160a060020a03808816600090815260056020526040808220939093559087168152205461103a9085611c3e565b600160a060020a0380871660008181526005602090815260409182902094909455805188815290519193928a169260008051602061213d83398151915292918290030190a36001925061108d565b600092505b50509392505050565b60035460ff1681565b6008602052816000526040600020818154811015156110ba57fe5b90600052602060002001600091509150505481565b6007602052816000526040600020818154811015156110ba57fe5b80600160a060020a038116151561110057600080fd5b600054600160a060020a0316331461111757600080fd5b50600160a060020a03166000908152600a60205260409020805460ff19166001179055565b60408051808201909152600481527f302e363600000000000000000000000000000000000000000000000000000000602082015281565b6000805b600160a060020a03831660009081526009602052604090205481101561087457600160a060020a038316600090815260076020526040902080546111c091908390811061080a57fe5b6111cc42600c54611c3e565b10156111ff57600160a060020a038316600090815260086020526040902080546111fc9184918490811061085957fe5b91505b600101611177565b336000908152600660209081526040808320600160a060020a038616845290915281205482111561125b57336000908152600660209081526040808320600160a060020a03871684529091528120556112ae565b336000908152600660209081526040808320600160a060020a03871684529091529020546112899083612099565b336000908152600660209081526040808320600160a060020a03881684529091529020555b336000818152600660209081526040808320600160a060020a0388168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600c5481565b600160a060020a038116600090815260056020526040812054905b600160a060020a03831660009081526009602052604090205481101561087457600160a060020a0383166000908152600860205260409020805461137e9184918490811061085957fe5b9150600101611334565b606060008183600160a060020a03811615156113a357600080fd5b600092506009600086600160a060020a0316600160a060020a03168152602001908152602001600020546040519080825280602002602001820160405280156113f6578160200160208202803883390190505b5091505b600160a060020a03851660009081526009602052604090205483101561147157600160a060020a0385166000908152600760205260409020805461144e91611446918690811061080a57fe5b600c54612099565b828481518110151561145c57fe5b602090810290910101526001909201916113fa565b509392505050565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156108ff5780601f106108d4576101008083540402835291602001916108ff565b600082600160a060020a03811615156114f857600080fd5b3360009081526009602052604081205411156115175761151733611c54565b3360009081526005602052604090205483118015906115365750600083115b156115cd57336000908152600560205260409020546115559084612099565b3360009081526005602052604080822092909255600160a060020a038616815220546115819084611c3e565b600160a060020a03851660008181526005602090815260409182902093909355805186815290519192339260008051602061213d8339815191529281900390910190a3600191506109cf565b600091506109cf565b6000808085600160a060020a03811615156115f057600080fd5b85518551146115fe57600080fd5b33600090815260096020526040812054111561161d5761161d33611c54565b60009250600091505b845183101561164e57611641828685815181101515610a7e57fe5b6001909301929150611626565b33600090815260056020526040902054821180159061166d5750600082115b156118fc57600092505b85518310156118f3573360009081526005602052604090205485516116a39190879086908110610b3057fe5b33600090815260056020908152604080832093909355600160a060020a038a168252600981528282205460079091529190206001909101906116e590826120ab565b50600160a060020a038716600090815260096020908152604080832054600890925290912060019091019061171a90826120ab565b5061172d428785815181101515610a7e57fe5b600160a060020a03881660009081526007602090815260408083206009909252909120548154811061175b57fe5b600091825260209091200155845185908490811061177557fe5b6020908102909101810151600160a060020a03891660009081526008835260408082206009909452902054825491929181106117ad57fe5b6000918252602080832090910192909255600160a060020a0389168082526007835260408083206009909452909120548254919233927f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e9290811061180e57fe5b6000918252602080832090910154600160a060020a038d1683526008825260408084206009909352909220548154811061184457fe5b6000918252602091829020015460408051938452918301528051918290030190a3600160a060020a03871660008181526008602090815260408083206009909252909120548154339260008051602061213d83398151915292909181106118a757fe5b90600052602060002001546040518082815260200191505060405180910390a3600160a060020a0387166000908152600960205260409020805460019081019091559290920191611677565b60019350611901565b600093505b5050509392505050565b600b5481565b600054600160a060020a0316331461192857600080fd5b611934600b5482611c3e565b600b5550565b80600160a060020a038116151561195057600080fd5b600054600160a060020a0316331461196757600080fd5b50600160a060020a03166000908152600a60205260409020805460ff19169055565b600a6020526000908152604090205460ff1681565b600080548190600160a060020a031633146119b857600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611a1c57600080fd5b505af1158015611a30573d6000803e3d6000fd5b505050506040513d6020811015611a4657600080fd5b5051905060008111611a5757600080fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390529051600160a060020a0384169163a9059cbb9160448083019260209291908290030181600087803b158015611abf57600080fd5b505af1158015611ad3573d6000803e3d6000fd5b505050506040513d6020811015611ae957600080fd5b50511515611af657600080fd5b6040805182815290513391600160a060020a038616917f5d8daa04d680e083e2ab17a35494ba9f290f554edf76a78f0103a8a599b5c4249181900360200190a3505050565b336000908152600660209081526040808320600160a060020a03861684529091528120546112899083611c3e565b60008054600160a060020a03163314611b8157600080fd5b50303160008111611b9157600080fd5b604051339082156108fc029083906000818181858888f19350505050158015611bbe573d6000803e3d6000fd5b5060408051828152905133917faea7a96dc17068a25e51e08f8ed45b86bd34b10af65af8e757af57b7e7b9e55d919081900360200190a250565b600660209081526000928352604080842090915290825290205481565b600054600160a060020a03163314611c2c57600080fd5b611c38600c5482611c3e565b600c5550565b600082820183811015611c4d57fe5b9392505050565b6000806060806060806060806000975060009650600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611cb7578160200160208202803883390190505b509350600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611d09578160200160208202803883390190505b50600160a060020a038a166000908152600760209081526040918290208054835181840281018401909452808452939650919290830182828015611d6c57602002820191906000526020600020905b815481526020019060010190808311611d58575b50505050509550600860008a600160a060020a0316600160a060020a03168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611de257602002820191906000526020600020905b815481526020019060010190808311611dce575b505050505094505b600160a060020a038916600090815260096020526040902054881015611f4d57611e2d8689815181101515611e1b57fe5b90602001906020020151600b54611c3e565b611e3942600c54611c3e565b1115611edb57600160a060020a0389166000908152600560205260409020548551611e6b919087908b908110610a7e57fe5b600160a060020a038a1660008181526005602052604090209190915585517f613edbda9d1e6bda8af8e869a973f88cccf93854a11f351589038de07e1ab4e39087908b908110611eb757fe5b906020019060200201516040518082815260200191505060405180910390a2611f42565b8588815181101515611ee957fe5b906020019060200201518488815181101515611f0157fe5b602090810290910101528451859089908110611f1957fe5b906020019060200201518388815181101515611f3157fe5b602090810290910101526001909601955b600190970196611dea565b86604051908082528060200260200182016040528015611f77578160200160208202803883390190505b50915086604051908082528060200260200182016040528015611fa4578160200160208202803883390190505b509050600097505b8688101561201f578388815181101515611fc257fe5b906020019060200201518289815181101515611fda57fe5b602090810290910101528251839089908110611ff257fe5b90602001906020020151818981518110151561200a57fe5b60209081029091010152600190970196611fac565b600160a060020a03891660009081526007602090815260409091208351612048928501906120d4565b50600160a060020a03891660009081526008602090815260409091208251612072928401906120d4565b505050600160a060020a039096166000908152600960205260409020939093555050505050565b6000818310156120a557fe5b50900390565b8154818355818111156120cf576000838152602090206120cf91810190830161211f565b505050565b82805482825590600052602060002090810192821561210f579160200282015b8281111561210f5782518255916020019190600101906120f4565b5061211b92915061211f565b5090565b61213991905b8082111561211b5760008155600101612125565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820d5685c7dd1cdc910cfbcd2e1babbeef04be1dbae98e1ff442b4bcce2607640640029000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000001f04ef12cb04cf158000000000000000000000000000000000000000000000000000000000000000000000a5355504d20746f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055355504d54000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101a05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630451f52081146101a557806306fdde03146101d8578063095ea7b3146102625780630fce887b1461029a57806310e24db51461033e57806313af4035146103af57806316b81889146103d2578063170f8a51146103f357806318160ddd1461041457806323b872dd14610429578063313ce5671461045357806332308cce1461047e57806334af370f146104a257806345cc5890146104c65780635a3b7e42146104e75780635fc3a312146104fc578063661884631461051d57806366fbc1541461054157806370a0823114610556578063885cb436146105775780638da5cb5b1461059857806395d89b41146105c9578063a9059cbb146105de578063b91aedab14610602578063c7cc4ee91461069e578063ca0cd7c0146106b3578063ce62cd4a146106cb578063d71c9c12146106ec578063d72901811461070d578063d73dd6231461072e578063d80b205614610752578063dd62ed3e14610767578063df51d46b1461078e575b600080fd5b3480156101b157600080fd5b506101c6600160a060020a03600435166107a6565b60408051918252519081900360200190f35b3480156101e457600080fd5b506101ed61087a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022757818101518382015260200161020f565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026e57600080fd5b50610286600160a060020a0360043516602435610907565b604080519115158252519081900360200190f35b3480156102a657600080fd5b506040805160206004604435818101358381028086018501909652808552610286958335600160a060020a039081169660248035909216963696956064959294930192829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506109d69650505050505050565b34801561034a57600080fd5b5061035f600160a060020a0360043516610dfd565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561039b578181015183820152602001610383565b505050509050019250505060405180910390f35b3480156103bb57600080fd5b506103d0600160a060020a0360043516610e80565b005b3480156103de57600080fd5b506101c6600160a060020a0360043516610ec6565b3480156103ff57600080fd5b506101c6600160a060020a0360043516610ed8565b34801561042057600080fd5b506101c6610eea565b34801561043557600080fd5b50610286600160a060020a0360043581169060243516604435610ef0565b34801561045f57600080fd5b50610468611096565b6040805160ff9092168252519081900360200190f35b34801561048a57600080fd5b506101c6600160a060020a036004351660243561109f565b3480156104ae57600080fd5b506101c6600160a060020a03600435166024356110cf565b3480156104d257600080fd5b506103d0600160a060020a03600435166110ea565b3480156104f357600080fd5b506101ed61113c565b34801561050857600080fd5b506101c6600160a060020a0360043516611173565b34801561052957600080fd5b50610286600160a060020a0360043516602435611207565b34801561054d57600080fd5b506101c6611313565b34801561056257600080fd5b506101c6600160a060020a0360043516611319565b34801561058357600080fd5b5061035f600160a060020a0360043516611388565b3480156105a457600080fd5b506105ad611479565b60408051600160a060020a039092168252519081900360200190f35b3480156105d557600080fd5b506101ed611488565b3480156105ea57600080fd5b50610286600160a060020a03600435166024356114e0565b34801561060e57600080fd5b50604080516020600460248035828101358481028087018601909752808652610286968435600160a060020a031696369660449591949091019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506115d69650505050505050565b3480156106aa57600080fd5b506101c661190b565b3480156106bf57600080fd5b506103d0600435611911565b3480156106d757600080fd5b506103d0600160a060020a036004351661193a565b3480156106f857600080fd5b50610286600160a060020a0360043516611989565b34801561071957600080fd5b506103d0600160a060020a036004351661199e565b34801561073a57600080fd5b50610286600160a060020a0360043516602435611b3b565b34801561075e57600080fd5b506103d0611b69565b34801561077357600080fd5b506101c6600160a060020a0360043581169060243516611bf8565b34801561079a57600080fd5b506103d0600435611c15565b600160a060020a038116600090815260056020526040812054905b600160a060020a03831660009081526009602052604090205481101561087457600160a060020a0383166000908152600760205260409020805461081d91908390811061080a57fe5b9060005260206000200154600b54611c3e565b61082942600c54611c3e565b111561086c57600160a060020a038316600090815260086020526040902080546108699184918490811061085957fe5b9060005260206000200154611c3e565b91505b6001016107c1565b50919050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156108ff5780601f106108d4576101008083540402835291602001916108ff565b820191906000526020600020905b8154815290600101906020018083116108e257829003601f168201915b505050505081565b600082600160a060020a038116151561091f57600080fd5b336000908152600660209081526040808320600160a060020a03881684529091529020541561094d57600080fd5b33600090815260096020526040812054111561096c5761096c33611c54565b336000818152600660209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3600191505b5092915050565b6000808086600160a060020a03811615156109f057600080fd5b86600160a060020a0381161515610a0657600080fd5b336000908152600a602052604090205460ff161515610a2457600080fd5b8651865114610a3257600080fd5b600160a060020a0389166000908152600960205260408120541115610a5a57610a5a89611c54565b60009350600092505b8551841015610a9a57610a8d838786815181101515610a7e57fe5b90602001906020020151611c3e565b6001909401939250610a63565b600160a060020a0389166000908152600560205260409020548311801590610ac25750600083115b8015610af15750600160a060020a03891660009081526006602090815260408083203384529091529020548311155b15610dec57600093505b8651841015610de357600160a060020a0389166000908152600560205260409020548651610b3f9190889087908110610b3057fe5b90602001906020020151612099565b600160a060020a038a1660009081526005602090815260408083209390935560068152828220338352905220548651610b7f9190889087908110610b3057fe5b600160a060020a03808b166000908152600660209081526040808320338452825280832094909455918b1681526009825282812054600790925291909120600190910190610bcd90826120ab565b50600160a060020a0388166000908152600960209081526040808320546008909252909120600190910190610c0290826120ab565b50610c15428886815181101515610a7e57fe5b600160a060020a038916600090815260076020908152604080832060099092529091205481548110610c4357fe5b6000918252602090912001558551869085908110610c5d57fe5b6020908102909101810151600160a060020a038a166000908152600883526040808220600990945290205482549192918110610c9557fe5b6000918252602080832090910192909255600160a060020a03808b1680835260078452604080842060099095529092205483549293918d16927f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e9291908110610cfa57fe5b6000918252602080832090910154600160a060020a038e16835260088252604080842060099093529092205481548110610d3057fe5b6000918252602091829020015460408051938452918301528051918290030190a3600160a060020a038089166000818152600860209081526040808320600990925290912054815492938d169260008051602061213d8339815191529291908110610d9757fe5b90600052602060002001546040518082815260200191505060405180910390a3600160a060020a0388166000908152600960205260409020805460019081019091559390930192610afb565b60019450610df1565b600094505b50505050949350505050565b606081600160a060020a0381161515610e1557600080fd5b600160a060020a03831660009081526008602090815260409182902080548351818402810184019094528084529091830182828015610e7357602002820191906000526020600020905b815481526020019060010190808311610e5f575b5050505050915050919050565b600054600160a060020a03163314610e9757600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60096020526000908152604090205481565b60056020526000908152604090205481565b60045481565b600083600160a060020a0381161515610f0857600080fd5b83600160a060020a0381161515610f1e57600080fd5b600160a060020a0386166000908152600960205260408120541115610f4657610f4686611c54565b600160a060020a0386166000908152600560205260409020548411801590610f6e5750600084115b8015610f9d5750600160a060020a03861660009081526006602090815260408083203384529091529020548411155b1561108857600160a060020a0386166000908152600660209081526040808320338452909152902054610fd09085612099565b600160a060020a03871660008181526006602090815260408083203384528252808320949094559181526005909152205461100b9085612099565b600160a060020a03808816600090815260056020526040808220939093559087168152205461103a9085611c3e565b600160a060020a0380871660008181526005602090815260409182902094909455805188815290519193928a169260008051602061213d83398151915292918290030190a36001925061108d565b600092505b50509392505050565b60035460ff1681565b6008602052816000526040600020818154811015156110ba57fe5b90600052602060002001600091509150505481565b6007602052816000526040600020818154811015156110ba57fe5b80600160a060020a038116151561110057600080fd5b600054600160a060020a0316331461111757600080fd5b50600160a060020a03166000908152600a60205260409020805460ff19166001179055565b60408051808201909152600481527f302e363600000000000000000000000000000000000000000000000000000000602082015281565b6000805b600160a060020a03831660009081526009602052604090205481101561087457600160a060020a038316600090815260076020526040902080546111c091908390811061080a57fe5b6111cc42600c54611c3e565b10156111ff57600160a060020a038316600090815260086020526040902080546111fc9184918490811061085957fe5b91505b600101611177565b336000908152600660209081526040808320600160a060020a038616845290915281205482111561125b57336000908152600660209081526040808320600160a060020a03871684529091528120556112ae565b336000908152600660209081526040808320600160a060020a03871684529091529020546112899083612099565b336000908152600660209081526040808320600160a060020a03881684529091529020555b336000818152600660209081526040808320600160a060020a0388168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600c5481565b600160a060020a038116600090815260056020526040812054905b600160a060020a03831660009081526009602052604090205481101561087457600160a060020a0383166000908152600860205260409020805461137e9184918490811061085957fe5b9150600101611334565b606060008183600160a060020a03811615156113a357600080fd5b600092506009600086600160a060020a0316600160a060020a03168152602001908152602001600020546040519080825280602002602001820160405280156113f6578160200160208202803883390190505b5091505b600160a060020a03851660009081526009602052604090205483101561147157600160a060020a0385166000908152600760205260409020805461144e91611446918690811061080a57fe5b600c54612099565b828481518110151561145c57fe5b602090810290910101526001909201916113fa565b509392505050565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156108ff5780601f106108d4576101008083540402835291602001916108ff565b600082600160a060020a03811615156114f857600080fd5b3360009081526009602052604081205411156115175761151733611c54565b3360009081526005602052604090205483118015906115365750600083115b156115cd57336000908152600560205260409020546115559084612099565b3360009081526005602052604080822092909255600160a060020a038616815220546115819084611c3e565b600160a060020a03851660008181526005602090815260409182902093909355805186815290519192339260008051602061213d8339815191529281900390910190a3600191506109cf565b600091506109cf565b6000808085600160a060020a03811615156115f057600080fd5b85518551146115fe57600080fd5b33600090815260096020526040812054111561161d5761161d33611c54565b60009250600091505b845183101561164e57611641828685815181101515610a7e57fe5b6001909301929150611626565b33600090815260056020526040902054821180159061166d5750600082115b156118fc57600092505b85518310156118f3573360009081526005602052604090205485516116a39190879086908110610b3057fe5b33600090815260056020908152604080832093909355600160a060020a038a168252600981528282205460079091529190206001909101906116e590826120ab565b50600160a060020a038716600090815260096020908152604080832054600890925290912060019091019061171a90826120ab565b5061172d428785815181101515610a7e57fe5b600160a060020a03881660009081526007602090815260408083206009909252909120548154811061175b57fe5b600091825260209091200155845185908490811061177557fe5b6020908102909101810151600160a060020a03891660009081526008835260408082206009909452902054825491929181106117ad57fe5b6000918252602080832090910192909255600160a060020a0389168082526007835260408083206009909452909120548254919233927f34c966766e471b87b7ce8d0d0358378cf20008a30bbb36246a3413c8a286834e9290811061180e57fe5b6000918252602080832090910154600160a060020a038d1683526008825260408084206009909352909220548154811061184457fe5b6000918252602091829020015460408051938452918301528051918290030190a3600160a060020a03871660008181526008602090815260408083206009909252909120548154339260008051602061213d83398151915292909181106118a757fe5b90600052602060002001546040518082815260200191505060405180910390a3600160a060020a0387166000908152600960205260409020805460019081019091559290920191611677565b60019350611901565b600093505b5050509392505050565b600b5481565b600054600160a060020a0316331461192857600080fd5b611934600b5482611c3e565b600b5550565b80600160a060020a038116151561195057600080fd5b600054600160a060020a0316331461196757600080fd5b50600160a060020a03166000908152600a60205260409020805460ff19169055565b600a6020526000908152604090205460ff1681565b600080548190600160a060020a031633146119b857600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b158015611a1c57600080fd5b505af1158015611a30573d6000803e3d6000fd5b505050506040513d6020811015611a4657600080fd5b5051905060008111611a5757600080fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018390529051600160a060020a0384169163a9059cbb9160448083019260209291908290030181600087803b158015611abf57600080fd5b505af1158015611ad3573d6000803e3d6000fd5b505050506040513d6020811015611ae957600080fd5b50511515611af657600080fd5b6040805182815290513391600160a060020a038616917f5d8daa04d680e083e2ab17a35494ba9f290f554edf76a78f0103a8a599b5c4249181900360200190a3505050565b336000908152600660209081526040808320600160a060020a03861684529091528120546112899083611c3e565b60008054600160a060020a03163314611b8157600080fd5b50303160008111611b9157600080fd5b604051339082156108fc029083906000818181858888f19350505050158015611bbe573d6000803e3d6000fd5b5060408051828152905133917faea7a96dc17068a25e51e08f8ed45b86bd34b10af65af8e757af57b7e7b9e55d919081900360200190a250565b600660209081526000928352604080842090915290825290205481565b600054600160a060020a03163314611c2c57600080fd5b611c38600c5482611c3e565b600c5550565b600082820183811015611c4d57fe5b9392505050565b6000806060806060806060806000975060009650600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611cb7578160200160208202803883390190505b509350600960008a600160a060020a0316600160a060020a0316815260200190815260200160002054604051908082528060200260200182016040528015611d09578160200160208202803883390190505b50600160a060020a038a166000908152600760209081526040918290208054835181840281018401909452808452939650919290830182828015611d6c57602002820191906000526020600020905b815481526020019060010190808311611d58575b50505050509550600860008a600160a060020a0316600160a060020a03168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611de257602002820191906000526020600020905b815481526020019060010190808311611dce575b505050505094505b600160a060020a038916600090815260096020526040902054881015611f4d57611e2d8689815181101515611e1b57fe5b90602001906020020151600b54611c3e565b611e3942600c54611c3e565b1115611edb57600160a060020a0389166000908152600560205260409020548551611e6b919087908b908110610a7e57fe5b600160a060020a038a1660008181526005602052604090209190915585517f613edbda9d1e6bda8af8e869a973f88cccf93854a11f351589038de07e1ab4e39087908b908110611eb757fe5b906020019060200201516040518082815260200191505060405180910390a2611f42565b8588815181101515611ee957fe5b906020019060200201518488815181101515611f0157fe5b602090810290910101528451859089908110611f1957fe5b906020019060200201518388815181101515611f3157fe5b602090810290910101526001909601955b600190970196611dea565b86604051908082528060200260200182016040528015611f77578160200160208202803883390190505b50915086604051908082528060200260200182016040528015611fa4578160200160208202803883390190505b509050600097505b8688101561201f578388815181101515611fc257fe5b906020019060200201518289815181101515611fda57fe5b602090810290910101528251839089908110611ff257fe5b90602001906020020151818981518110151561200a57fe5b60209081029091010152600190970196611fac565b600160a060020a03891660009081526007602090815260409091208351612048928501906120d4565b50600160a060020a03891660009081526008602090815260409091208251612072928401906120d4565b505050600160a060020a039096166000908152600960205260409020939093555050505050565b6000818310156120a557fe5b50900390565b8154818355818111156120cf576000838152602090206120cf91810190830161211f565b505050565b82805482825590600052602060002090810192821561210f579160200282015b8281111561210f5782518255916020019190600101906120f4565b5061211b92915061211f565b5090565b61213991905b8082111561211b5760008155600101612125565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820d5685c7dd1cdc910cfbcd2e1babbeef04be1dbae98e1ff442b4bcce2607640640029

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000001f04ef12cb04cf158000000000000000000000000000000000000000000000000000000000000000000000a5355504d20746f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055355504d54000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): SUPM token
Arg [1] : _symbol (string): SUPMT
Arg [2] : _decimals (uint8): 18
Arg [3] : _totalSupply (uint256): 600000000000000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000001f04ef12cb04cf158000000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [5] : 5355504d20746f6b656e00000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 5355504d54000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://d5685c7dd1cdc910cfbcd2e1babbeef04be1dbae98e1ff442b4bcce260764064
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.