ETH Price: $3,148.81 (+6.24%)

Token

EtherState (ETHS)
 

Overview

Max Total Supply

0 ETHS

Holders

4

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4.166666666666666666 ETHS

Value
$0.00
0x9bd783518ae975bb047ab3792a7f53f0b31e8e37
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:
ReferToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-05-07
*/

pragma solidity ^0.4.18;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    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;
    }

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract ERC20Basic {
    uint256 public totalSupply;

    function balanceOf(address who) public view returns (uint256);

    function transfer(address to, uint256 value) public returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
}

contract ReferTokenERC20Basic is ERC20Basic {
    using SafeMath for uint256;

    mapping(address => uint256) depositBalances;
    mapping(address => uint256) rewardBalances;

    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= rewardBalances[msg.sender]);

        // SafeMath.sub will throw an error if there is not enough balance.
        rewardBalances[msg.sender] = rewardBalances[msg.sender].sub(_value);
        rewardBalances[_to] = rewardBalances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        return true;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        return rewardBalances[_owner];
    }
}

contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    function Ownable() public {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

contract MintableToken is Ownable {
    event Mint(address indexed to, uint256 amount);
    event MintFinished();

    bool public mintingFinished = false;


    modifier canMint() {
        require(!mintingFinished);
        _;
    }

    /**
     * @dev Function to stop minting new tokens.
     * @return True if the operation was successful.
     */
    function finishMinting() onlyOwner canMint public returns (bool) {
        mintingFinished = true;
        MintFinished();
        return true;
    }
}

contract PackageContract is ReferTokenERC20Basic, MintableToken {
    uint constant daysPerMonth = 30;
    mapping(uint => mapping(string => uint256)) internal packageType;

    struct Package {
        uint256 since;
        uint256 tokenValue;
        uint256 kindOf;
    }

    mapping(address => Package) internal userPackages;

    function PackageContract() public {
        packageType[2]['fee'] = 30;
        packageType[2]['reward'] = 20;
        packageType[4]['fee'] = 35;
        packageType[4]['reward'] = 25;
    }

    function depositMint(address _to, uint256 _amount, uint _kindOfPackage) canMint internal returns (bool) {
        return depositMintSince(_to, _amount, _kindOfPackage, now);
    }

    function depositMintSince(address _to, uint256 _amount, uint _kindOfPackage, uint since) canMint internal returns (bool) {
        totalSupply = totalSupply.add(_amount);
        Package memory pac;
        pac = Package({since : since, tokenValue : _amount, kindOf : _kindOfPackage});
        Mint(_to, _amount);
        Transfer(address(0), _to, _amount);
        userPackages[_to] = pac;
        return true;
    }

    function depositBalanceOf(address _owner) public view returns (uint256 balance) {
        return userPackages[_owner].tokenValue;
    }

    function getKindOfPackage(address _owner) public view returns (uint256) {
        return userPackages[_owner].kindOf;
    }

}

contract ColdWalletToken is PackageContract {
    address internal coldWalletAddress;
    uint internal percentageCW = 30;

    event CWStorageTransferred(address indexed previousCWAddress, address indexed newCWAddress);
    event CWPercentageChanged(uint previousPCW, uint newPCW);

    function setColdWalletAddress(address _newCWAddress) onlyOwner public {
        require(_newCWAddress != coldWalletAddress && _newCWAddress != address(0));
        CWStorageTransferred(coldWalletAddress, _newCWAddress);
        coldWalletAddress = _newCWAddress;
    }

    function getColdWalletAddress() onlyOwner public view returns (address) {
        return coldWalletAddress;
    }

    function setPercentageCW(uint _newPCW) onlyOwner public {
        require(_newPCW != percentageCW && _newPCW < 100);
        CWPercentageChanged(percentageCW, _newPCW);
        percentageCW = _newPCW;
    }

    function getPercentageCW() onlyOwner public view returns (uint) {
        return percentageCW;
    }

    function saveToCW() onlyOwner public {
        coldWalletAddress.transfer(this.balance.mul(percentageCW).div(100));
    }
}

contract StatusContract is Ownable {

    mapping(uint => mapping(string => uint[])) internal statusRewardsMap;
    mapping(address => uint) internal statuses;

    event StatusChanged(address participant, uint newStatus);

    function StatusContract() public {
        statusRewardsMap[1]['deposit'] = [3, 2, 1];
        statusRewardsMap[1]['refReward'] = [3, 1, 1];

        statusRewardsMap[2]['deposit'] = [7, 3, 1];
        statusRewardsMap[2]['refReward'] = [5, 3, 1];

        statusRewardsMap[3]['deposit'] = [10, 3, 1, 1, 1];
        statusRewardsMap[3]['refReward'] = [7, 3, 3, 1, 1];

        statusRewardsMap[4]['deposit'] = [10, 5, 3, 3, 1];
        statusRewardsMap[4]['refReward'] = [10, 5, 3, 3, 3];

        statusRewardsMap[5]['deposit'] = [12, 5, 3, 3, 3];
        statusRewardsMap[5]['refReward'] = [10, 7, 5, 3, 3];
    }

    function getStatusOf(address participant) public view returns (uint) {
        return statuses[participant];
    }

    function setStatus(address participant, uint8 status) public onlyOwner returns (bool) {
        return setStatusInternal(participant, status);
    }

    function setStatusInternal(address participant, uint8 status) internal returns (bool) {
        require(statuses[participant] != status && status > 0 && status <= 5);
        statuses[participant] = status;
        StatusChanged(participant, status);
        return true;
    }
}

contract ReferTreeContract is Ownable {
    mapping(address => address) public referTree;

    event TreeStructChanged(address sender, address parentSender);

    function checkTreeStructure(address sender, address parentSender) onlyOwner public {
        setTreeStructure(sender, parentSender);
    }

    function setTreeStructure(address sender, address parentSender) internal {
        require(referTree[sender] == 0x0);
        require(sender != parentSender);
        referTree[sender] = parentSender;
        TreeStructChanged(sender, parentSender);
    }
}

contract ReferToken is ColdWalletToken, StatusContract, ReferTreeContract {
    string public constant name = "EtherState";
    string public constant symbol = "ETHS";
    uint256 public constant decimals = 18;
    uint256 public totalSupply = 0;

    uint256 public constant hardCap = 10000000 * 1 ether;
    mapping(address => uint256) private lastPayoutAddress;
    uint private rate = 100;
    uint public constant depth = 5;

    event RateChanged(uint previousRate, uint newRate);
    event DataReceived(bytes data);
    event RefererAddressReceived(address referer);

    function depositMintAndPay(address _to, uint256 _amount, uint _kindOfPackage) canMint private returns (bool) {
        require(userPackages[_to].since == 0);
        _amount = _amount.mul(rate);
        if (depositMint(_to, _amount, _kindOfPackage)) {
            payToReferer(_to, _amount, 'deposit');
            lastPayoutAddress[_to] = now;
        }
    }

    function rewardMint(address _to, uint256 _amount) private returns (bool) {
        rewardBalances[_to] = rewardBalances[_to].add(_amount);
        Mint(_to, _amount);
        Transfer(address(0), _to, _amount);
        return true;
    }

    function payToReferer(address sender, uint256 _amount, string _key) private {
        address currentReferral = sender;
        uint currentStatus = 0;
        uint256 refValue = 0;

        for (uint level = 0; level < depth; ++level) {
            currentReferral = referTree[currentReferral];
            if (currentReferral == 0x0) {
                break;
            }
            currentStatus = statuses[currentReferral];
            if (currentStatus < 3 && level >= 3) {
                continue;
            }
            refValue = _amount.mul(statusRewardsMap[currentStatus][_key][level]).div(100);
            rewardMint(currentReferral, refValue);
        }
    }

    function AddressDailyReward(address rewarded) public {
        require(lastPayoutAddress[rewarded] != 0 && (now - lastPayoutAddress[rewarded]).div(1 days) > 0);
        uint256 n = (now - lastPayoutAddress[rewarded]).div(1 days);
        uint256 refValue = 0;

        if (userPackages[rewarded].kindOf != 0) {
            refValue = userPackages[rewarded].tokenValue.mul(n).mul(packageType[userPackages[rewarded].kindOf]['reward']).div(30).div(100);
            rewardMint(rewarded, refValue);
            payToReferer(rewarded, userPackages[rewarded].tokenValue, 'refReward');
        }
        if (n > 0) {
            lastPayoutAddress[rewarded] = now;
        }
    }

    function() external payable {
        require(totalSupply < hardCap);
        coldWalletAddress.transfer(msg.value.mul(percentageCW).div(100));
        bytes memory data = bytes(msg.data);
        DataReceived(data);
        address referer = getRefererAddress(data);
        RefererAddressReceived(referer);
        setTreeStructure(msg.sender, referer);
        setStatusInternal(msg.sender, 1);
        uint8 kind = getReferralPackageKind(data);
        depositMintAndPay(msg.sender, msg.value, kind);
    }

    function getRefererAddress(bytes data) private pure returns (address) {
        if (data.length == 1 || data.length == 0) {
            return address(0);
        }
        uint256 referer_address;
        uint256 factor = 1;
        for (uint i = 20; i > 0; i--) {
            referer_address += uint8(data[i - 1]) * factor;
            factor = factor * 256;
        }
        return address(referer_address);
    }

    function getReferralPackageKind(bytes data) private pure returns (uint8) {
        if (data.length == 0) {
            return 4;
        }
        if (data.length == 1) {
            return uint8(data[0]);
        }
        return uint8(data[20]);
    }

    function withdraw() public {
        require(userPackages[msg.sender].tokenValue != 0);
        uint256 withdrawValue = userPackages[msg.sender].tokenValue.div(rate);
        uint256 dateDiff = now - userPackages[msg.sender].since;
        if (dateDiff < userPackages[msg.sender].kindOf.mul(30 days)) {
            uint256 fee = withdrawValue.mul(packageType[userPackages[msg.sender].kindOf]['fee']).div(100);
            withdrawValue = withdrawValue.sub(fee);
            coldWalletAddress.transfer(fee);
            userPackages[msg.sender].tokenValue = 0;
        }
        msg.sender.transfer(withdrawValue);
    }

    function createRawDeposit(address sender, uint256 _value, uint d, uint since) onlyOwner public {
        depositMintSince(sender, _value, d, since);
    }

    function createDeposit(address sender, uint256 _value, uint d) onlyOwner public {
        depositMintAndPay(sender, _value, d);
    }

    function setRate(uint _newRate) onlyOwner public {
        require(_newRate != rate && _newRate > 0);
        RateChanged(rate, _newRate);
        rate = _newRate;
    }

    function getRate() public view returns (uint) {
        return rate;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referTree","outputs":[{"name":"","type":"address"}],"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":"sender","type":"address"},{"name":"_value","type":"uint256"},{"name":"d","type":"uint256"},{"name":"since","type":"uint256"}],"name":"createRawDeposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"rewarded","type":"address"}],"name":"AddressDailyReward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"participant","type":"address"},{"name":"status","type":"uint8"}],"name":"setStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"_value","type":"uint256"},{"name":"d","type":"uint256"}],"name":"createDeposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newRate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"depth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"participant","type":"address"}],"name":"getStatusOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"parentSender","type":"address"}],"name":"checkTreeStructure","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newPCW","type":"uint256"}],"name":"setPercentageCW","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"getKindOfPackage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getColdWalletAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPercentageCW","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newCWAddress","type":"address"}],"name":"setColdWalletAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"depositBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"saveToCW","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousRate","type":"uint256"},{"indexed":false,"name":"newRate","type":"uint256"}],"name":"RateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"data","type":"bytes"}],"name":"DataReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"referer","type":"address"}],"name":"RefererAddressReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"parentSender","type":"address"}],"name":"TreeStructChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"participant","type":"address"},{"indexed":false,"name":"newStatus","type":"uint256"}],"name":"StatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousCWAddress","type":"address"},{"indexed":true,"name":"newCWAddress","type":"address"}],"name":"CWStorageTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousPCW","type":"uint256"},{"indexed":false,"name":"newPCW","type":"uint256"}],"name":"CWPercentageChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"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"}]

6060604090815260038054601e60078190556000600b8190556064600d55600160a860020a031990921633600160a060020a031617909255600290526004602052906000805160206200207783398151915290517f66656500000000000000000000000000000000000000000000000000000000008152600381019190915260230160405190819003902055600260005260046020526014600080516020620020778339815191526040517f72657761726400000000000000000000000000000000000000000000000000008152600681019190915260260160405190819003902055600460008190526020526023600080516020620020178339815191526040517f66656500000000000000000000000000000000000000000000000000000000008152600381019190915260230160405190819003902055600460008190526020526019600080516020620020178339815191526040517f726577617264000000000000000000000000000000000000000000000000000081526006810191909152602601604051908190039020556060604051908101604090815260038252600260208084019190915260018284018190526000526008905260008051602062001ff783398151915290517f6465706f736974000000000000000000000000000000000000000000000000008152600781019190915260270160405190819003902062000211916003620006fe565b506060604051908101604090815260038252600160208084018290528284018290526000919091526008905260008051602062001ff783398151915290517f72656652657761726400000000000000000000000000000000000000000000008152600981019190915260290160405190819003902062000293916003620006fe565b506060604051908101604090815260078252600360208084019190915260018284015260026000526008905260008051602062001fd783398151915290517f6465706f736974000000000000000000000000000000000000000000000000008152600781019190915260270160405190819003902062000315916003620006fe565b506060604051908101604090815260058252600360208084019190915260018284015260026000526008905260008051602062001fd783398151915290517f72656652657761726400000000000000000000000000000000000000000000008152600981019190915260290160405190819003902062000397916003620006fe565b5060a06040519081016040908152600a82526003602080840182905260018385018190526060850181905260808501526000919091526008905260008051602062001fb783398151915290517f6465706f736974000000000000000000000000000000000000000000000000008152600781019190915260270160405190819003902062000427916005620006fe565b5060a06040519081016040908152600782526003602080840182905282840182905260016060850181905260808501526000919091526008905260008051602062001fb783398151915290517f726566526577617264000000000000000000000000000000000000000000000081526009810191909152602901604051908190039020620004b7916005620006fe565b5060a06040519081016040908152600a8252600560208084019190915260038284018190526060840152600160808401526004600052600890526000805160206200205783398151915290517f6465706f736974000000000000000000000000000000000000000000000000008152600781019190915260270160405190819003902062000547916005620006fe565b5060a06040519081016040908152600a8252600560208084019190915260038284018190526060840181905260808401526004600052600890526000805160206200205783398151915290517f726566526577617264000000000000000000000000000000000000000000000081526009810191909152602901604051908190039020620005d7916005620006fe565b5060a06040519081016040908152600c8252600560208084018290526003838501819052606085018190526080850152600091909152600890526000805160206200203783398151915290517f6465706f736974000000000000000000000000000000000000000000000000008152600781019190915260270160405190819003902062000667916005620006fe565b5060a06040519081016040908152600a8252600760208084019190915260058284018190526003606085018190526080850152600052600890526000805160206200203783398151915290517f726566526577617264000000000000000000000000000000000000000000000081526009810191909152602901604051908190039020620006f7916005620006fe565b5062000773565b82805482825590600052602060002090810192821562000741579160200282015b8281111562000741578251829060ff169055916020019190600101906200071f565b506200074f92915062000753565b5090565b6200077091905b808211156200074f57600081556001016200075a565b90565b61183480620007836000396000f3006060604052600436106101745763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461034357806306fdde031461036a57806310706798146103f457806318160ddd1461042f57806322734c0c1461045457806324463cbe1461047e578063278e07ce1461049d5780632f9c1df6146104c2578063313ce567146104e757806334fcf437146104fa5780633ccfd60b14610510578063631c56ef14610523578063679aefce146105365780636b89bfc71461054957806370a08231146105685780637d64bcb4146105875780637eb30cd01461059a5780638da5cb5b146105bf57806392a8424d146105d257806395d89b41146105e8578063a9059cbb146105fb578063b955b95c1461061d578063d5477d371461063c578063e863a1221461064f578063f2fde38b14610662578063f477c2b914610681578063fb86a404146106a0578063fba13bd0146106b3578063fcb5ced3146106d2575b61017c6117d4565b6000806a084595161401484a000000600b5410151561019a57600080fd5b600654600754600160a060020a03909116906108fc906101d4906064906101c890349063ffffffff6106e516565b9063ffffffff61071b16565b9081150290604051600060405180830381858888f1935050505015156101f957600080fd5b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505092507fc0629c5930c116f6e8c1eed6df81fc90be33cc9a751b2188394105dea097b0248360405160208082528190810183818151815260200191508051906020019080838360005b8381101561028c578082015183820152602001610274565b50505050905090810190601f1680156102b95780820380516001836020036101000a031916815260200191505b509250505060405180910390a16102cf83610732565b91507fb710fec1570d614bb4e2a9b6c2fef7fdbccbc73f3988a20dd02e4ba7dacc7d4682604051600160a060020a03909116815260200160405180910390a161031833836107ad565b610323336001610874565b5061032d8361092e565b905061033d33348360ff166109a5565b50505050005b341561034e57600080fd5b610356610a69565b604051901515815260200160405180910390f35b341561037557600080fd5b61037d610a79565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103b95780820151838201526020016103a1565b50505050905090810190601f1680156103e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103ff57600080fd5b610413600160a060020a0360043516610ab0565b604051600160a060020a03909116815260200160405180910390f35b341561043a57600080fd5b610442610acb565b60405190815260200160405180910390f35b341561045f57600080fd5b61047c600160a060020a0360043516602435604435606435610ad1565b005b341561048957600080fd5b61047c600160a060020a0360043516610aff565b34156104a857600080fd5b610356600160a060020a036004351660ff60243516610cf0565b34156104cd57600080fd5b61047c600160a060020a0360043516602435604435610d18565b34156104f257600080fd5b610442610d44565b341561050557600080fd5b61047c600435610d49565b341561051b57600080fd5b61047c610dc2565b341561052e57600080fd5b610442610f6d565b341561054157600080fd5b610442610f72565b341561055457600080fd5b610442600160a060020a0360043516610f78565b341561057357600080fd5b610442600160a060020a0360043516610f93565b341561059257600080fd5b610356610fae565b34156105a557600080fd5b61047c600160a060020a0360043581169060243516611039565b34156105ca57600080fd5b610413611062565b34156105dd57600080fd5b61047c600435611071565b34156105f357600080fd5b61037d6110ea565b341561060657600080fd5b610356600160a060020a0360043516602435611121565b341561062857600080fd5b610442600160a060020a036004351661121c565b341561064757600080fd5b61041361123a565b341561065a57600080fd5b610442611268565b341561066d57600080fd5b61047c600160a060020a036004351661128d565b341561068c57600080fd5b61047c600160a060020a0360043516611328565b34156106ab57600080fd5b6104426113df565b34156106be57600080fd5b610442600160a060020a03600435166113ee565b34156106dd57600080fd5b61047c61140c565b6000808315156106f85760009150610714565b5082820282848281151561070857fe5b041461071057fe5b8091505b5092915050565b600080828481151561072957fe5b04949350505050565b60008060008084516001148061074757508451155b1561075557600093506107a5565b506001905060145b60008111156107a1578185600183038151811061077657fe5b016020015160f860020a9081900481020460ff1602929092019161010091909102906000190161075d565b8293505b505050919050565b600160a060020a038083166000908152600a602052604090205416156107d257600080fd5b600160a060020a0382811690821614156107eb57600080fd5b600160a060020a038281166000908152600a602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916928416929092179091557f8605db4fd34b21902199dd05165b79bd4bc899ae42bd9cb38852d735aacc3f07908390839051600160a060020a039283168152911660208201526040908101905180910390a15050565b600160a060020a03821660009081526009602052604081205460ff8316148015906108a2575060008260ff16115b80156108b2575060058260ff1611155b15156108bd57600080fd5b600160a060020a0383166000908152600960205260409081902060ff841690557fe1ed16dd06bcc126f351434bbb6b798e0790aaa1eb908db3d9e3c83f001f1e25908490849051600160a060020a03909216825260ff1660208201526040908101905180910390a150600192915050565b600081511515610940575060046109a0565b815160011415610977578160008151811061095757fe5b016020015160f860020a900460f860020a0260f860020a900490506109a0565b8160148151811061098457fe5b016020015160f860020a900460f860020a0260f860020a900490505b919050565b60035460009060a060020a900460ff16156109bf57600080fd5b600160a060020a038416600090815260056020526040902054156109e257600080fd5b600d546109f690849063ffffffff6106e516565b9250610a0384848461147e565b15610a6257610a46848460408051908101604052600781527f6465706f7369740000000000000000000000000000000000000000000000000060208201526114ac565b600160a060020a0384166000908152600c602052604090204290555b9392505050565b60035460a060020a900460ff1681565b60408051908101604052600a81527f4574686572537461746500000000000000000000000000000000000000000000602082015281565b600a60205260009081526040902054600160a060020a031681565b600b5481565b60035433600160a060020a03908116911614610aec57600080fd5b610af8848484846115de565b5050505050565b600160a060020a0381166000908152600c6020526040812054819015801590610b535750600160a060020a0383166000908152600c6020526040812054610b519042036201518063ffffffff61071b16565b115b1515610b5e57600080fd5b600160a060020a0383166000908152600c6020526040902054610b8c9042036201518063ffffffff61071b16565b600160a060020a038416600090815260056020526040812060020154919350915015610cc657600160a060020a0383166000908152600560209081526040808320600201548352600490915290819020610c5d916064916101c891601e918391517f72657761726400000000000000000000000000000000000000000000000000008152600681019190915260260160405190819003902054600160a060020a038916600090815260056020526040902060010154610c51908963ffffffff6106e516565b9063ffffffff6106e516565b9050610c6983826116f0565b50600160a060020a0383166000908152600560205260409081902060010154610cc6918591908051908101604052600981527f726566526577617264000000000000000000000000000000000000000000000060208201526114ac565b6000821115610ceb57600160a060020a0383166000908152600c602052604090204290555b505050565b60035460009033600160a060020a03908116911614610d0e57600080fd5b610a628383610874565b60035433600160a060020a03908116911614610d3357600080fd5b610d3e8383836109a5565b50505050565b601281565b60035433600160a060020a03908116911614610d6457600080fd5b600d548114158015610d765750600081115b1515610d8157600080fd5b7f4ac9052a820bf4f8c02d7588587cae835573b5b99ea7ad4ca002f17f319f7186600d548260405191825260208201526040908101905180910390a1600d55565b600160a060020a033316600090815260056020526040812060010154819081901515610ded57600080fd5b600d54600160a060020a033316600090815260056020526040902060010154610e1b9163ffffffff61071b16565b600160a060020a0333166000908152600560205260409020805460029091015491945042039250610e559062278d0063ffffffff6106e516565b821015610f3c57600160a060020a0333166000908152600560209081526040808320600201548352600490915290819020610ed7916064916101c891517f66656500000000000000000000000000000000000000000000000000000000008152600381019190915260230160405190819003902054869063ffffffff6106e516565b9050610ee9838263ffffffff6117b316565b600654909350600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610f1f57600080fd5b600160a060020a0333166000908152600560205260408120600101555b600160a060020a03331683156108fc0284604051600060405180830381858888f193505050501515610ceb57600080fd5b600581565b600d5490565b600160a060020a031660009081526009602052604090205490565b600160a060020a031660009081526002602052604090205490565b60035460009033600160a060020a03908116911614610fcc57600080fd5b60035460a060020a900460ff1615610fe357600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b60035433600160a060020a0390811691161461105457600080fd5b61105e82826107ad565b5050565b600354600160a060020a031681565b60035433600160a060020a0390811691161461108c57600080fd5b600754811415801561109e5750606481105b15156110a957600080fd5b7f409fbdae1e75481800c0fd2ee10e1409eace4268aae109448a54c016778fef6f6007548260405191825260208201526040908101905180910390a1600755565b60408051908101604052600481527f4554485300000000000000000000000000000000000000000000000000000000602082015281565b6000600160a060020a038316151561113857600080fd5b600160a060020a03331660009081526002602052604090205482111561115d57600080fd5b600160a060020a033316600090815260026020526040902054611186908363ffffffff6117b316565b600160a060020a0333811660009081526002602052604080822093909355908516815220546111bb908363ffffffff6117c516565b600160a060020a0380851660008181526002602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a031660009081526005602052604090206002015490565b60035460009033600160a060020a0390811691161461125857600080fd5b50600654600160a060020a031690565b60035460009033600160a060020a0390811691161461128657600080fd5b5060075490565b60035433600160a060020a039081169116146112a857600080fd5b600160a060020a03811615156112bd57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035433600160a060020a0390811691161461134357600080fd5b600654600160a060020a038281169116148015906113695750600160a060020a03811615155b151561137457600080fd5b600654600160a060020a0380831691167fdd44c10ac5ae897c0468d19fcc13436e02d0fd4762ee70adaaa49eb2af44db1760405160405180910390a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6a084595161401484a00000081565b600160a060020a031660009081526005602052604090206001015490565b60035433600160a060020a0390811691161461142757600080fd5b600654600754600160a060020a03918216916108fc91611457916064916101c8913016319063ffffffff6106e516565b9081150290604051600060405180830381858888f19350505050151561147c57600080fd5b565b60035460009060a060020a900460ff161561149857600080fd5b6114a4848484426115de565b949350505050565b82600080805b60058110156115d557600160a060020a039384166000908152600a6020526040902054909316928315156114e5576115d5565b600160a060020a0384166000908152600960205260409020549250600383108015611511575060038110155b1561151b576115cd565b6115bf60646101c860086000878152602001908152602001600020886040518082805190602001908083835b602083106115665780518252601f199092019160209182019101611547565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020848154811015156115a657fe5b600091825260209091200154899063ffffffff6106e516565b91506115cb84836116f0565b505b6001016114b2565b50505050505050565b60006115e86117e6565b60035460a060020a900460ff16156115ff57600080fd5b600054611612908663ffffffff6117c516565b60005560606040519081016040528084815260200186815260200185815250905085600160a060020a03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858660405190815260200160405180910390a2600160a060020a03861660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405190815260200160405180910390a3600160a060020a0386166000908152600560205260409020819081518155602082015181600101556040820151600290910155506001915050949350505050565b600160a060020a038216600090815260026020526040812054611719908363ffffffff6117c516565b600160a060020a0384166000818152600260205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b6000828211156117bf57fe5b50900390565b60008282018381101561071057fe5b60206040519081016040526000815290565b60606040519081016040528060008152602001600081526020016000815250905600a165627a7a723058204cd679f42240e39c4c00ec9e4c8da8f342326132c9ee2760e34f8db61d65d71d0029625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d264556add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea9041ad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f1a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f91238f30f286c9a1c6e901c4eda3b214c381c846e3dbe48df95c21488e8e1fdb9321edea6e3be4df59a344b401fab4f888b556fda1f954244cff9204bad624b891da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a7

Deployed Bytecode

0x6060604052600436106101745763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461034357806306fdde031461036a57806310706798146103f457806318160ddd1461042f57806322734c0c1461045457806324463cbe1461047e578063278e07ce1461049d5780632f9c1df6146104c2578063313ce567146104e757806334fcf437146104fa5780633ccfd60b14610510578063631c56ef14610523578063679aefce146105365780636b89bfc71461054957806370a08231146105685780637d64bcb4146105875780637eb30cd01461059a5780638da5cb5b146105bf57806392a8424d146105d257806395d89b41146105e8578063a9059cbb146105fb578063b955b95c1461061d578063d5477d371461063c578063e863a1221461064f578063f2fde38b14610662578063f477c2b914610681578063fb86a404146106a0578063fba13bd0146106b3578063fcb5ced3146106d2575b61017c6117d4565b6000806a084595161401484a000000600b5410151561019a57600080fd5b600654600754600160a060020a03909116906108fc906101d4906064906101c890349063ffffffff6106e516565b9063ffffffff61071b16565b9081150290604051600060405180830381858888f1935050505015156101f957600080fd5b6000368080601f016020809104026020016040519081016040528181529291906020840183838082843782019150505050505092507fc0629c5930c116f6e8c1eed6df81fc90be33cc9a751b2188394105dea097b0248360405160208082528190810183818151815260200191508051906020019080838360005b8381101561028c578082015183820152602001610274565b50505050905090810190601f1680156102b95780820380516001836020036101000a031916815260200191505b509250505060405180910390a16102cf83610732565b91507fb710fec1570d614bb4e2a9b6c2fef7fdbccbc73f3988a20dd02e4ba7dacc7d4682604051600160a060020a03909116815260200160405180910390a161031833836107ad565b610323336001610874565b5061032d8361092e565b905061033d33348360ff166109a5565b50505050005b341561034e57600080fd5b610356610a69565b604051901515815260200160405180910390f35b341561037557600080fd5b61037d610a79565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103b95780820151838201526020016103a1565b50505050905090810190601f1680156103e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103ff57600080fd5b610413600160a060020a0360043516610ab0565b604051600160a060020a03909116815260200160405180910390f35b341561043a57600080fd5b610442610acb565b60405190815260200160405180910390f35b341561045f57600080fd5b61047c600160a060020a0360043516602435604435606435610ad1565b005b341561048957600080fd5b61047c600160a060020a0360043516610aff565b34156104a857600080fd5b610356600160a060020a036004351660ff60243516610cf0565b34156104cd57600080fd5b61047c600160a060020a0360043516602435604435610d18565b34156104f257600080fd5b610442610d44565b341561050557600080fd5b61047c600435610d49565b341561051b57600080fd5b61047c610dc2565b341561052e57600080fd5b610442610f6d565b341561054157600080fd5b610442610f72565b341561055457600080fd5b610442600160a060020a0360043516610f78565b341561057357600080fd5b610442600160a060020a0360043516610f93565b341561059257600080fd5b610356610fae565b34156105a557600080fd5b61047c600160a060020a0360043581169060243516611039565b34156105ca57600080fd5b610413611062565b34156105dd57600080fd5b61047c600435611071565b34156105f357600080fd5b61037d6110ea565b341561060657600080fd5b610356600160a060020a0360043516602435611121565b341561062857600080fd5b610442600160a060020a036004351661121c565b341561064757600080fd5b61041361123a565b341561065a57600080fd5b610442611268565b341561066d57600080fd5b61047c600160a060020a036004351661128d565b341561068c57600080fd5b61047c600160a060020a0360043516611328565b34156106ab57600080fd5b6104426113df565b34156106be57600080fd5b610442600160a060020a03600435166113ee565b34156106dd57600080fd5b61047c61140c565b6000808315156106f85760009150610714565b5082820282848281151561070857fe5b041461071057fe5b8091505b5092915050565b600080828481151561072957fe5b04949350505050565b60008060008084516001148061074757508451155b1561075557600093506107a5565b506001905060145b60008111156107a1578185600183038151811061077657fe5b016020015160f860020a9081900481020460ff1602929092019161010091909102906000190161075d565b8293505b505050919050565b600160a060020a038083166000908152600a602052604090205416156107d257600080fd5b600160a060020a0382811690821614156107eb57600080fd5b600160a060020a038281166000908152600a602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916928416929092179091557f8605db4fd34b21902199dd05165b79bd4bc899ae42bd9cb38852d735aacc3f07908390839051600160a060020a039283168152911660208201526040908101905180910390a15050565b600160a060020a03821660009081526009602052604081205460ff8316148015906108a2575060008260ff16115b80156108b2575060058260ff1611155b15156108bd57600080fd5b600160a060020a0383166000908152600960205260409081902060ff841690557fe1ed16dd06bcc126f351434bbb6b798e0790aaa1eb908db3d9e3c83f001f1e25908490849051600160a060020a03909216825260ff1660208201526040908101905180910390a150600192915050565b600081511515610940575060046109a0565b815160011415610977578160008151811061095757fe5b016020015160f860020a900460f860020a0260f860020a900490506109a0565b8160148151811061098457fe5b016020015160f860020a900460f860020a0260f860020a900490505b919050565b60035460009060a060020a900460ff16156109bf57600080fd5b600160a060020a038416600090815260056020526040902054156109e257600080fd5b600d546109f690849063ffffffff6106e516565b9250610a0384848461147e565b15610a6257610a46848460408051908101604052600781527f6465706f7369740000000000000000000000000000000000000000000000000060208201526114ac565b600160a060020a0384166000908152600c602052604090204290555b9392505050565b60035460a060020a900460ff1681565b60408051908101604052600a81527f4574686572537461746500000000000000000000000000000000000000000000602082015281565b600a60205260009081526040902054600160a060020a031681565b600b5481565b60035433600160a060020a03908116911614610aec57600080fd5b610af8848484846115de565b5050505050565b600160a060020a0381166000908152600c6020526040812054819015801590610b535750600160a060020a0383166000908152600c6020526040812054610b519042036201518063ffffffff61071b16565b115b1515610b5e57600080fd5b600160a060020a0383166000908152600c6020526040902054610b8c9042036201518063ffffffff61071b16565b600160a060020a038416600090815260056020526040812060020154919350915015610cc657600160a060020a0383166000908152600560209081526040808320600201548352600490915290819020610c5d916064916101c891601e918391517f72657761726400000000000000000000000000000000000000000000000000008152600681019190915260260160405190819003902054600160a060020a038916600090815260056020526040902060010154610c51908963ffffffff6106e516565b9063ffffffff6106e516565b9050610c6983826116f0565b50600160a060020a0383166000908152600560205260409081902060010154610cc6918591908051908101604052600981527f726566526577617264000000000000000000000000000000000000000000000060208201526114ac565b6000821115610ceb57600160a060020a0383166000908152600c602052604090204290555b505050565b60035460009033600160a060020a03908116911614610d0e57600080fd5b610a628383610874565b60035433600160a060020a03908116911614610d3357600080fd5b610d3e8383836109a5565b50505050565b601281565b60035433600160a060020a03908116911614610d6457600080fd5b600d548114158015610d765750600081115b1515610d8157600080fd5b7f4ac9052a820bf4f8c02d7588587cae835573b5b99ea7ad4ca002f17f319f7186600d548260405191825260208201526040908101905180910390a1600d55565b600160a060020a033316600090815260056020526040812060010154819081901515610ded57600080fd5b600d54600160a060020a033316600090815260056020526040902060010154610e1b9163ffffffff61071b16565b600160a060020a0333166000908152600560205260409020805460029091015491945042039250610e559062278d0063ffffffff6106e516565b821015610f3c57600160a060020a0333166000908152600560209081526040808320600201548352600490915290819020610ed7916064916101c891517f66656500000000000000000000000000000000000000000000000000000000008152600381019190915260230160405190819003902054869063ffffffff6106e516565b9050610ee9838263ffffffff6117b316565b600654909350600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610f1f57600080fd5b600160a060020a0333166000908152600560205260408120600101555b600160a060020a03331683156108fc0284604051600060405180830381858888f193505050501515610ceb57600080fd5b600581565b600d5490565b600160a060020a031660009081526009602052604090205490565b600160a060020a031660009081526002602052604090205490565b60035460009033600160a060020a03908116911614610fcc57600080fd5b60035460a060020a900460ff1615610fe357600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b60035433600160a060020a0390811691161461105457600080fd5b61105e82826107ad565b5050565b600354600160a060020a031681565b60035433600160a060020a0390811691161461108c57600080fd5b600754811415801561109e5750606481105b15156110a957600080fd5b7f409fbdae1e75481800c0fd2ee10e1409eace4268aae109448a54c016778fef6f6007548260405191825260208201526040908101905180910390a1600755565b60408051908101604052600481527f4554485300000000000000000000000000000000000000000000000000000000602082015281565b6000600160a060020a038316151561113857600080fd5b600160a060020a03331660009081526002602052604090205482111561115d57600080fd5b600160a060020a033316600090815260026020526040902054611186908363ffffffff6117b316565b600160a060020a0333811660009081526002602052604080822093909355908516815220546111bb908363ffffffff6117c516565b600160a060020a0380851660008181526002602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b600160a060020a031660009081526005602052604090206002015490565b60035460009033600160a060020a0390811691161461125857600080fd5b50600654600160a060020a031690565b60035460009033600160a060020a0390811691161461128657600080fd5b5060075490565b60035433600160a060020a039081169116146112a857600080fd5b600160a060020a03811615156112bd57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60035433600160a060020a0390811691161461134357600080fd5b600654600160a060020a038281169116148015906113695750600160a060020a03811615155b151561137457600080fd5b600654600160a060020a0380831691167fdd44c10ac5ae897c0468d19fcc13436e02d0fd4762ee70adaaa49eb2af44db1760405160405180910390a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6a084595161401484a00000081565b600160a060020a031660009081526005602052604090206001015490565b60035433600160a060020a0390811691161461142757600080fd5b600654600754600160a060020a03918216916108fc91611457916064916101c8913016319063ffffffff6106e516565b9081150290604051600060405180830381858888f19350505050151561147c57600080fd5b565b60035460009060a060020a900460ff161561149857600080fd5b6114a4848484426115de565b949350505050565b82600080805b60058110156115d557600160a060020a039384166000908152600a6020526040902054909316928315156114e5576115d5565b600160a060020a0384166000908152600960205260409020549250600383108015611511575060038110155b1561151b576115cd565b6115bf60646101c860086000878152602001908152602001600020886040518082805190602001908083835b602083106115665780518252601f199092019160209182019101611547565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020848154811015156115a657fe5b600091825260209091200154899063ffffffff6106e516565b91506115cb84836116f0565b505b6001016114b2565b50505050505050565b60006115e86117e6565b60035460a060020a900460ff16156115ff57600080fd5b600054611612908663ffffffff6117c516565b60005560606040519081016040528084815260200186815260200185815250905085600160a060020a03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858660405190815260200160405180910390a2600160a060020a03861660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405190815260200160405180910390a3600160a060020a0386166000908152600560205260409020819081518155602082015181600101556040820151600290910155506001915050949350505050565b600160a060020a038216600090815260026020526040812054611719908363ffffffff6117c516565b600160a060020a0384166000818152600260205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b6000828211156117bf57fe5b50900390565b60008282018381101561071057fe5b60206040519081016040526000815290565b60606040519081016040528060008152602001600081526020016000815250905600a165627a7a723058204cd679f42240e39c4c00ec9e4c8da8f342326132c9ee2760e34f8db61d65d71d0029

Swarm Source

bzzr://4cd679f42240e39c4c00ec9e4c8da8f342326132c9ee2760e34f8db61d65d71d
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.