ETH Price: $3,132.27 (-4.35%)

Token

Tablow Club (TC)
 

Overview

Max Total Supply

118,000,000 TC

Holders

37,613

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
300 TC

Value
$0.00
0x4587783ba264b13ec79f64f17039859d21901e0d
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Tablow is a blockchain based loyality reward platform that aims at creating a vast crypto community and to extended crypto based reward campaign to user.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Tablow

Compiler Version
v0.4.10+commit.f0d539ae

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-06-18
*/

pragma solidity ^0.4.10;


/**
 * Math operations with safety checks
 */
library SafeMath {
  function mul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint a, uint b) internal returns (uint) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

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

  function max64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }

  function assert(bool assertion) internal {
    if (!assertion) {
      throw;
    }
  }
}
contract ERC223ReceivingContract { 
/**
 * @dev Standard ERC223 function that will handle incoming token transfers.
 *
 * @param _from  Token sender address.
 * @param _value Amount of tokens.
 * @param _data  Transaction metadata.
 */
    function tokenFallback(address _from, uint _value, bytes _data);
}
contract ERC223  {
   
    function balanceOf(address who) constant returns (uint);
    
    event Transfer(address indexed from, address indexed to, uint value, bytes data);
}
contract ForeignToken {
    function balanceOf(address _owner) constant public returns (uint256);
    function transfer(address _to, uint256 _value) public returns (bool);
}

 
contract Tablow is ERC223 {
     
    using SafeMath for uint;

    string public symbol = "TC";
    string public name = "Tablow Club";
    uint8 public constant decimals = 18;
    uint256 _totalSupply = 0;
    uint256 _MaxDistribPublicSupply = 0;
    uint256 _OwnerDistribSupply = 0;
    uint256 _CurrentDistribPublicSupply = 0;
    uint256 _FreeTokens = 0;
    uint256 _Multiplier1 = 2;
    uint256 _Multiplier2 = 3;
    uint256 _LimitMultiplier1 = 4e15;
    uint256 _LimitMultiplier2 = 8e15;
    uint256 _HighDonateLimit = 5e16;
    uint256 _BonusTokensPerETHdonated = 0;
    address _DistribFundsReceiverAddress = 0;
    address _remainingTokensReceiverAddress = 0;
    address owner = 0;
    bool setupDone = false;
    bool IsDistribRunning = false;
    bool DistribStarted = false;

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    event Burn(address indexed _owner, uint256 _value);

    mapping(address => uint256) balances;
    mapping(address => mapping(address => uint256)) allowed;
    mapping(address => bool) public Claimed;

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

    function Tablow() public {
        owner = msg.sender;
    }

    function() public payable {
        if (IsDistribRunning) {
            uint256 _amount;
            if (((_CurrentDistribPublicSupply + _amount) > _MaxDistribPublicSupply) && _MaxDistribPublicSupply > 0) revert();
            if (!_DistribFundsReceiverAddress.send(msg.value)) revert();
            if (Claimed[msg.sender] == false) {
                _amount = _FreeTokens * 1e18;
                _CurrentDistribPublicSupply += _amount;
                balances[msg.sender] += _amount;
                _totalSupply += _amount;
                Transfer(this, msg.sender, _amount);
                Claimed[msg.sender] = true;
            }

            require(msg.value <= _HighDonateLimit);

            if (msg.value >= 1e15) {
                if (msg.value >= _LimitMultiplier2) {
                    _amount = msg.value * _BonusTokensPerETHdonated * _Multiplier2;
                } else {
                    if (msg.value >= _LimitMultiplier1) {
                        _amount = msg.value * _BonusTokensPerETHdonated * _Multiplier1;
                    } else {

                        _amount = msg.value * _BonusTokensPerETHdonated;

                    }

                }

                _CurrentDistribPublicSupply += _amount;
                balances[msg.sender] += _amount;
                _totalSupply += _amount;
                Transfer(this, msg.sender, _amount);
            }



        } else {
            revert();
        }
    }

    function SetupToken(string tokenName, string tokenSymbol, uint256 BonusTokensPerETHdonated, uint256 MaxDistribPublicSupply, uint256 OwnerDistribSupply, address remainingTokensReceiverAddress, address DistribFundsReceiverAddress, uint256 FreeTokens) public {
        if (msg.sender == owner && !setupDone) {
            symbol = tokenSymbol;
            name = tokenName;
            _FreeTokens = FreeTokens;
            _BonusTokensPerETHdonated = BonusTokensPerETHdonated;
            _MaxDistribPublicSupply = MaxDistribPublicSupply * 1e18;
            if (OwnerDistribSupply > 0) {
                _OwnerDistribSupply = OwnerDistribSupply * 1e18;
                _totalSupply = _OwnerDistribSupply;
                balances[owner] = _totalSupply;
                _CurrentDistribPublicSupply += _totalSupply;
                Transfer(this, owner, _totalSupply);
            }
            _DistribFundsReceiverAddress = DistribFundsReceiverAddress;
            if (_DistribFundsReceiverAddress == 0) _DistribFundsReceiverAddress = owner;
            _remainingTokensReceiverAddress = remainingTokensReceiverAddress;

            setupDone = true;
        }
    }

    function SetupMultipliers(uint256 Multiplier1inX, uint256 Multiplier2inX, uint256 LimitMultiplier1inWei, uint256 LimitMultiplier2inWei, uint256 HighDonateLimitInWei) onlyOwner public {
        _Multiplier1 = Multiplier1inX;
        _Multiplier2 = Multiplier2inX;
        _LimitMultiplier1 = LimitMultiplier1inWei;
        _LimitMultiplier2 = LimitMultiplier2inWei;
        _HighDonateLimit = HighDonateLimitInWei;
    }

    function SetBonus(uint256 BonusTokensPerETHdonated) onlyOwner public {
        _BonusTokensPerETHdonated = BonusTokensPerETHdonated;
    }

    function SetFreeTokens(uint256 FreeTokens) onlyOwner public {
        _FreeTokens = FreeTokens;
    }

    function StartDistrib() public returns(bool success) {
        if (msg.sender == owner && !DistribStarted && setupDone) {
            DistribStarted = true;
            IsDistribRunning = true;
        } else {
            revert();
        }
        return true;
    }

    function StopDistrib() public returns(bool success) {
        if (msg.sender == owner && IsDistribRunning) {
            if (_remainingTokensReceiverAddress != 0 && _MaxDistribPublicSupply > 0) {
                uint256 _remainingAmount = _MaxDistribPublicSupply - _CurrentDistribPublicSupply;
                if (_remainingAmount > 0) {
                    balances[_remainingTokensReceiverAddress] += _remainingAmount;
                    _totalSupply += _remainingAmount;
                    Transfer(this, _remainingTokensReceiverAddress, _remainingAmount);
                }
            }
            DistribStarted = false;
            IsDistribRunning = false;
        } else {
            revert();
        }
        return true;
    }

    function distribution(address[] addresses, uint256 _amount) onlyOwner public {

        uint256 _remainingAmount = _MaxDistribPublicSupply - _CurrentDistribPublicSupply;
        require(addresses.length <= 255);
        require(_amount <= _remainingAmount);
        _amount = _amount * 1e18;

        for (uint i = 0; i < addresses.length; i++) {
            require(_amount <= _remainingAmount);
            _CurrentDistribPublicSupply += _amount;
            balances[addresses[i]] += _amount;
            _totalSupply += _amount;
            Transfer(this, addresses[i], _amount);

        }

        if (_CurrentDistribPublicSupply >= _MaxDistribPublicSupply) {
            DistribStarted = false;
            IsDistribRunning = false;
        }
    }

    function distributeAmounts(address[] addresses, uint256[] amounts) onlyOwner public {

        uint256 _remainingAmount = _MaxDistribPublicSupply - _CurrentDistribPublicSupply;
        uint256 _amount;

        require(addresses.length <= 255);
        require(addresses.length == amounts.length);

        for (uint8 i = 0; i < addresses.length; i++) {
            _amount = amounts[i] * 1e18;
            require(_amount <= _remainingAmount);
            _CurrentDistribPublicSupply += _amount;
            balances[addresses[i]] += _amount;
            _totalSupply += _amount;
            Transfer(this, addresses[i], _amount);


            if (_CurrentDistribPublicSupply >= _MaxDistribPublicSupply) {
                DistribStarted = false;
                IsDistribRunning = false;
            }
        }
    }

    function BurnTokens(uint256 amount) public returns(bool success) {
        uint256 _amount = amount * 1e18;
        if (balances[msg.sender] >= _amount) {
            balances[msg.sender] -= _amount;
            _totalSupply -= _amount;
            Burn(msg.sender, _amount);
            Transfer(msg.sender, 0, _amount);
        } else {
            revert();
        }
        return true;
    }

    function totalSupply() public constant returns(uint256 totalSupplyValue) {
        return _totalSupply;
    }

    function MaxDistribPublicSupply_() public constant returns(uint256 MaxDistribPublicSupply) {
        return _MaxDistribPublicSupply;
    }

    function OwnerDistribSupply_() public constant returns(uint256 OwnerDistribSupply) {
        return _OwnerDistribSupply;
    }

    function CurrentDistribPublicSupply_() public constant returns(uint256 CurrentDistribPublicSupply) {
        return _CurrentDistribPublicSupply;
    }

    function RemainingTokensReceiverAddress() public constant returns(address remainingTokensReceiverAddress) {
        return _remainingTokensReceiverAddress;
    }

    function DistribFundsReceiverAddress() public constant returns(address DistribfundsReceiver) {
        return _DistribFundsReceiverAddress;
    }

    function Owner() public constant returns(address ownerAddress) {
        return owner;
    }

    function SetupDone() public constant returns(bool setupDoneFlag) {
        return setupDone;
    }

    function IsDistribRunningFalg_() public constant returns(bool IsDistribRunningFalg) {
        return IsDistribRunning;
    }

    function IsDistribStarted() public constant returns(bool IsDistribStartedFlag) {
        return DistribStarted;
    }
    
     
    /**
     * @dev Transfer the specified amount of tokens to the specified address.
     *      This function works the same with the previous one
     *      but doesn't contain `_data` param.
     *      Added due to backwards compatibility reasons.
     *
     * @param _to    Receiver address.
     * @param _value Amount of tokens that will be transferred.
     */
    
    function transfer(address _to, uint _value) returns (bool success) {
        if (balances[msg.sender] >= _value
            && _value > 0
            && balances[_to] + _value > balances[_to]) {
            bytes memory empty;
            if(isContract(_to)) {
                return transferToContract(_to, _value, empty);
            } else {
                return transferToAddress(_to, _value, empty);
            }
        } else {
            return false;
        }
    }

    /* Withdraws to address _to form the address _from up to the amount _value */
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        if (balances[_from] >= _value
            && allowed[_from][msg.sender] >= _value
            && _value > 0
            && balances[_to] + _value > balances[_to]) {
            balances[_from] -= _value;
            allowed[_from][msg.sender] -= _value;
            balances[_to] += _value;
            Transfer(_from, _to, _value);
            return true;
        } else {
            return false;
        }
    }

    /* Allows _spender to withdraw the _allowance amount form sender */
    function approve(address _spender, uint256 _allowance) returns (bool success) {
        if (_allowance <= _totalSupply) {
            allowed[msg.sender][_spender] = _allowance;
            Approval(msg.sender, _spender, _allowance);
            return true;
        } else {
            return false;
        }
    }

    /* Checks how much _spender can withdraw from _owner */
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
     
     
     function transfer(address _to, uint _value, bytes _data) returns (bool success) {
        if (balances[msg.sender] >= _value
            && _value > 0
            && balances[_to] + _value > balances[_to]) {
            if(isContract(_to)) {
                return transferToContract(_to, _value, _data);
            } else {
                return transferToAddress(_to, _value, _data);
            }
        } else {
            return false;
        }
    }

    /* Transfer function when _to represents a regular address */
    function transferToAddress(address _to, uint _value, bytes _data) internal returns (bool success) {
        balances[msg.sender] -= _value;
        balances[_to] += _value;
        Transfer(msg.sender, _to, _value);
        Transfer(msg.sender, _to, _value, _data);
        return true;
    }

    /* Transfer function when _to represents a contract address, with the caveat
    that the contract needs to implement the tokenFallback function in order to receive tokens */
    function transferToContract(address _to, uint _value, bytes _data) internal returns (bool success) {
        balances[msg.sender] -= _value;
        balances[_to] += _value;
        ERC223ReceivingContract receiver = ERC223ReceivingContract(_to);
        receiver.tokenFallback(msg.sender, _value, _data);
        Transfer(msg.sender, _to, _value);
        Transfer(msg.sender, _to, _value, _data);
        return true;
    }

    /* Infers if whether _address is a contract based on the presence of bytecode */
    function isContract(address _address) internal returns (bool is_contract) {
        uint length;
        if (_address == 0) return false;
        assembly {
            length := extcodesize(_address)
        }
        if(length > 0) {
            return true;
        } else {
            return false;
        }
    }


    
    function withdrawForeignTokens(address _tokenContract) onlyOwner public returns (bool) {
        ForeignToken token = ForeignToken(_tokenContract);
        uint256 amount = token.balanceOf(address(this));
        return token.transfer(owner, amount);
    }

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

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_allowance","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"Multiplier1inX","type":"uint256"},{"name":"Multiplier2inX","type":"uint256"},{"name":"LimitMultiplier1inWei","type":"uint256"},{"name":"LimitMultiplier2inWei","type":"uint256"},{"name":"HighDonateLimitInWei","type":"uint256"}],"name":"SetupMultipliers","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"totalSupplyValue","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"StopDistrib","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"CurrentDistribPublicSupply_","outputs":[{"name":"CurrentDistribPublicSupply","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"StartDistrib","outputs":[{"name":"success","type":"bool"}],"payable":false,"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,"type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"BurnTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"IsDistribStarted","outputs":[{"name":"IsDistribStartedFlag","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"},{"name":"BonusTokensPerETHdonated","type":"uint256"},{"name":"MaxDistribPublicSupply","type":"uint256"},{"name":"OwnerDistribSupply","type":"uint256"},{"name":"remainingTokensReceiverAddress","type":"address"},{"name":"DistribFundsReceiverAddress","type":"address"},{"name":"FreeTokens","type":"uint256"}],"name":"SetupToken","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"BonusTokensPerETHdonated","type":"uint256"}],"name":"SetBonus","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"FreeTokens","type":"uint256"}],"name":"SetFreeTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"distributeAmounts","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"IsDistribRunningFalg_","outputs":[{"name":"IsDistribRunningFalg","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"Claimed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"Owner","outputs":[{"name":"ownerAddress","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"DistribFundsReceiverAddress","outputs":[{"name":"DistribfundsReceiver","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"SetupDone","outputs":[{"name":"setupDoneFlag","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"OwnerDistribSupply_","outputs":[{"name":"OwnerDistribSupply","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"RemainingTokensReceiverAddress","outputs":[{"name":"remainingTokensReceiverAddress","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MaxDistribPublicSupply_","outputs":[{"name":"MaxDistribPublicSupply","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"}],"name":"withdrawForeignTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"addresses","type":"address[]"},{"name":"_amount","type":"uint256"}],"name":"distribution","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"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":"_owner","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"}]

60a0604052600260608190527f5443000000000000000000000000000000000000000000000000000000000000608090815262000040916000919062000128565b5060408051808201909152600b8082527f5461626c6f7720436c75620000000000000000000000000000000000000000006020909201918252620000879160019162000128565b50600060028181556003828155600483905560058390556006839055600791909155600855660e35fa931a0000600955661c6bf526340000600a5566b1a2bc2ec50000600b55600c55600d8054600160a060020a0319908116909155600e80549091169055600f8054600160b860020a031916905534156200010557fe5b5b600f8054600160a060020a03191633600160a060020a03161790555b620001d2565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016b57805160ff19168380011785556200019b565b828001600101855582156200019b579182015b828111156200019b5782518255916020019190600101906200017e565b5b50620001aa929150620001ae565b5090565b620001cf91905b80821115620001aa5760008155600101620001b5565b5090565b90565b611b9480620001e26000396000f300606060405236156101645763ffffffff60e060020a60003504166306fdde038114610340578063095ea7b3146103d057806310eca9451461040357806318160ddd1461042457806318d69faa146104465780631d1cc6221461046a5780632092970f1461048c57806323b872dd146104b05780632cd3fd70146104e9578063313ce567146105105780634d9a81d41461053657806370a082311461055a57806374c77b521461058857806380ea82731461064557806390c6d1b91461065a57806395d89b411461066f578063a8c310d5146106ff578063a9059cbb1461078c578063accbdfd0146107bf578063b449c24d146107e3578063b4a99a4e14610813578063be45fd621461083f578063becf917f146108b6578063c21bbe56146108e2578063c52cb00314610906578063d21ceba014610928578063d8489a8114610954578063dd62ed3e14610976578063e58fc54c146109aa578063f3e4877c146109da575b61033e5b600f5460009060a860020a900460ff161561033457600354816005540111801561019457506000600354115b1561019f5760006000fd5b600d54604051600160a060020a03909116903480156108fc02916000818181858888f1935050505015156101d35760006000fd5b600160a060020a03331660009081526012602052604090205460ff161515610281575060065460058054670de0b6b3a76400009092029182019055600160a060020a033381166000818152601060209081526040918290208054860190556002805486019055815185815291519293301692600080516020611b498339815191529281900390910190a3600160a060020a0333166000908152601260205260409020805460ff191660011790555b600b543411156102915760006000fd5b66038d7ea4c68000341061032f57600a5434106102b75750600854600c543402026102d6565b60095434106102cf5750600754600c543402026102d6565b50600c5434025b5b6005805482019055600160a060020a033381166000818152601060209081526040918290208054860190556002805486019055815185815291519293301692600080516020611b498339815191529281900390910190a35b61033a565b60006000fd5b5b50565b005b341561034857fe5b610350610a31565b604080516020808252835181830152835191928392908301918501908083838215610396575b80518252602083111561039657601f199092019160209182019101610376565b505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103d857fe5b6103ef600160a060020a0360043516602435610abe565b604080519115158252519081900360200190f35b341561040b57fe5b61033e600435602435604435606435608435610b3a565b005b341561042c57fe5b610434610b78565b60408051918252519081900360200190f35b341561044e57fe5b6103ef610b7f565b604080519115158252519081900360200190f35b341561047257fe5b610434610c60565b60408051918252519081900360200190f35b341561049457fe5b6103ef610c67565b604080519115158252519081900360200190f35b34156104b857fe5b6103ef600160a060020a0360043581169060243516604435610d05565b604080519115158252519081900360200190f35b34156104f157fe5b6103ef600435610e0d565b604080519115158252519081900360200190f35b341561051857fe5b610520610edb565b6040805160ff9092168252519081900360200190f35b341561053e57fe5b6103ef610ee0565b604080519115158252519081900360200190f35b341561056257fe5b610434600160a060020a0360043516610ef1565b60408051918252519081900360200190f35b341561059057fe5b61033e600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f89358b01803591820183900483028401830190945280835297999881019791965091820194509250829150840183828082843750949650508435946020810135945060408101359350600160a060020a03606082013581169350608082013516915060a00135610f10565b005b341561064d57fe5b61033e600435611088565b005b341561066257fe5b61033e6004356110ae565b005b341561067757fe5b6103506110d4565b604080516020808252835181830152835191928392908301918501908083838215610396575b80518252602083111561039657601f199092019160209182019101610376565b505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561070757fe5b61033e600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750506040805187358901803560208181028481018201909552818452989a99890198929750908201955093508392508501908490808284375094965061116295505050505050565b005b341561079457fe5b6103ef600160a060020a03600435166024356112c8565b604080519115158252519081900360200190f35b34156107c757fe5b6103ef611369565b604080519115158252519081900360200190f35b34156107eb57fe5b6103ef600160a060020a036004351661137a565b604080519115158252519081900360200190f35b341561081b57fe5b61082361138f565b60408051600160a060020a039092168252519081900360200190f35b341561084757fe5b604080516020600460443581810135601f81018490048402850184019095528484526103ef948235600160a060020a031694602480359560649492939190920191819084018382808284375094965061139f95505050505050565b604080519115158252519081900360200190f35b34156108be57fe5b610823611439565b60408051600160a060020a039092168252519081900360200190f35b34156108ea57fe5b6103ef611449565b604080519115158252519081900360200190f35b341561090e57fe5b61043461145a565b60408051918252519081900360200190f35b341561093057fe5b610823611461565b60408051600160a060020a039092168252519081900360200190f35b341561095c57fe5b610434611471565b60408051918252519081900360200190f35b341561097e57fe5b610434600160a060020a0360043581169060243516611478565b60408051918252519081900360200190f35b34156109b257fe5b6103ef600160a060020a03600435166114a5565b604080519115158252519081900360200190f35b34156109e257fe5b61033e60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965050933593506115d392505050565b005b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ab65780601f10610a8b57610100808354040283529160200191610ab6565b820191906000526020600020905b815481529060010190602001808311610a9957829003601f168201915b505050505081565b6002546000908211610b2f57600160a060020a03338116600081815260116020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3506001610b33565b5060005b5b92915050565b600f5433600160a060020a03908116911614610b565760006000fd5b600785905560088490556009839055600a829055600b8190555b5b5050505050565b6002545b90565b600f54600090819033600160a060020a039081169116148015610bab5750600f5460a860020a900460ff165b1561033457600e54600160a060020a031615801590610bcc57506000600354115b15610c3a5750600554600354036000811115610c3a57600e8054600160a060020a039081166000908152601060209081526040918290208054860190556002805486019055925481518581529151908316933090931692600080516020611b49833981519152928290030190a35b5b600f805460a860020a61ffff0219169055610c57565b60006000fd5b600191505b5090565b6005545b90565b600f5460009033600160a060020a039081169116148015610c925750600f5460b060020a900460ff16155b8015610ca75750600f5460a060020a900460ff165b1561033457600f805475ff0000000000000000000000000000000000000000001976ff000000000000000000000000000000000000000000001990911660b060020a171660a860020a179055610cfe565b60006000fd5b5060015b90565b600160a060020a038316600090815260106020526040812054829010801590610d555750600160a060020a0380851660009081526011602090815260408083203390941683529290522054829010155b8015610d615750600082115b8015610d865750600160a060020a038316600090815260106020526040902054828101115b15610e0157600160a060020a0380851660008181526010602081815260408084208054899003905560118252808420338716855282528084208054899003905594881680845291815291849020805487019055835186815293519093600080516020611b4983398151915292908290030190a3506001610e05565b5060005b5b9392505050565b600160a060020a033316600090815260106020526040812054670de0b6b3a764000083029081901061033457600160a060020a03331660008181526010602090815260409182902080548590039055600280548590039055815184815291517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59281900390910190a2604080518281529051600091600160a060020a03331691600080516020611b498339815191529181900360200190a3610ed0565b60006000fd5b600191505b50919050565b601281565b600f5460b060020a900460ff165b90565b600160a060020a0381166000908152601060205260409020545b919050565b600f5433600160a060020a039081169116148015610f385750600f5460a060020a900460ff16155b1561107d578651610f509060009060208a0190611a96565b508751610f649060019060208b0190611a96565b506006819055600c869055670de0b6b3a764000085026003556000841115610ff057670de0b6b3a7640000840260048190556002819055600f8054600160a060020a039081166000908152601060209081526040918290208590556005805486019055925481519485529051908216933090921692600080516020611b49833981519152928290030190a35b600d8054600160a060020a031916600160a060020a03848116919091179182905516151561103b57600f54600d8054600160a060020a031916600160a060020a039092169190911790555b600e8054600160a060020a038516600160a060020a0319909116179055600f805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b5050505050505050565b600f5433600160a060020a039081169116146110a45760006000fd5b600c8190555b5b50565b600f5433600160a060020a039081169116146110ca5760006000fd5b60068190555b5b50565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ab65780601f10610a8b57610100808354040283529160200191610ab6565b820191906000526020600020905b815481529060010190602001808311610a9957829003601f168201915b505050505081565b600f546000908190819033600160a060020a039081169116146111855760006000fd5b60055460035403925060ff8551111515156111a05760006000fd5b83518551146111af5760006000fd5b5060005b84518160ff161015610b7057838160ff168151811015156111d057fe5b60209081029091010151670de0b6b3a7640000029150828211156111f45760006000fd5b600580548301905584518290601090600090889060ff861690811061121557fe5b6020908102909101810151600160a060020a031682528101919091526040016000208054909101905560028054830190558451859060ff831690811061125757fe5b90602001906020020151600160a060020a031630600160a060020a0316600080516020611b49833981519152846040518082815260200191505060405180910390a3600354600554106112b657600f805460a860020a61ffff02191690555b5b6001016111b3565b5b5b5050505050565b60006112d2611b15565b600160a060020a0333166000908152601060205260409020548390108015906112fb5750600083115b80156113205750600160a060020a038416600090815260106020526040902054838101115b1561135c5761132e84611712565b156113455761133e848483611753565b9150611361565b61133e848483611972565b9150611361565b611361565b600091505b5b5092915050565b600f5460a860020a900460ff165b90565b60126020526000908152604090205460ff1681565b600f54600160a060020a03165b90565b600160a060020a0333166000908152601060205260408120548390108015906113c85750600083115b80156113ed5750600160a060020a038416600090815260106020526040902054838101115b15610e01576113fb84611712565b156114125761140b848484611753565b9050610e05565b61140b848484611972565b9050610e05565b610e05565b506000610e05565b5b9392505050565b600d54600160a060020a03165b90565b600f5460a060020a900460ff165b90565b6004545b90565b600e54600160a060020a03165b90565b6003545b90565b600160a060020a038083166000908152601160209081526040808320938516835292905220545b92915050565b600f546000908190819033600160a060020a039081169116146114c85760006000fd5b83915081600160a060020a03166370a08231306000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561152b57fe5b60325a03f1151561153857fe5b5050604080518051600f546000602093840181905284517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529451929650908716945063a9059cbb936044808201949392918390030190829087803b15156115b457fe5b60325a03f115156115c157fe5b5050604051519350505b5b5050919050565b600f54600090819033600160a060020a039081169116146115f45760006000fd5b60055460035403915060ff84511115151561160f5760006000fd5b8183111561161d5760006000fd5b50670de0b6b3a76400009091029060005b83518110156116ed57818311156116455760006000fd5b60058054840190558351839060109060009087908590811061166357fe5b6020908102909101810151600160a060020a0316825281019190915260400160002080549091019055600280548401905583518490829081106116a257fe5b90602001906020020151600160a060020a031630600160a060020a0316600080516020611b49833981519152856040518082815260200191505060405180910390a35b60010161162e565b6003546005541061170a57600f805460a860020a61ffff02191690555b5b5b50505050565b600080600160a060020a038316151561172e5760009150610ed5565b50813b60008111156117435760019150610ed5565b60009150610ed5565b5b50919050565b33600160a060020a0381811660008181526010602090815260408083208054899003905593881680835284832080548901905593517fc0ee0b8a000000000000000000000000000000000000000000000000000000008152600481019384526024810188905260606044820190815287516064830152875193968a969563c0ee0b8a9591948b948b9492936084909101918501908083838215611811575b80518252602083111561181157601f1990920191602091820191016117f1565b505050905090810190601f16801561183d5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b151561185a57fe5b60325a03f1151561186757fe5b50505084600160a060020a031633600160a060020a0316600080516020611b49833981519152866040518082815260200191505060405180910390a384600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168686604051808381526020018060200182810382528381815181526020019150805190602001908083836000831461192b575b80518252602083111561192b57601f19909201916020918201910161190b565b505050905090810190601f1680156119575780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3600191505b509392505050565b600160a060020a03338116600081815260106020908152604080832080548890039055938716808352848320805488019055845187815294519294909392600080516020611b49833981519152929181900390910190a383600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040518083815260200180602001828103825283818151815260200191508051906020019080838360008314611a51575b805182526020831115611a5157601f199092019160209182019101611a31565b505050905090810190601f168015611a7d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a35060015b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ad757805160ff1916838001178555611b04565b82800160010185558215611b04579182015b82811115611b04578251825591602001919060010190611ae9565b5b50610c5c929150611b27565b5090565b60408051602081019091526000815290565b610b7c91905b80821115610c5c5760008155600101611b2d565b5090565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058202e86f119bbbb6df070795c9a8eabb29580273ecf65df7c3d6f172994f5e37ac50029

Deployed Bytecode

0x606060405236156101645763ffffffff60e060020a60003504166306fdde038114610340578063095ea7b3146103d057806310eca9451461040357806318160ddd1461042457806318d69faa146104465780631d1cc6221461046a5780632092970f1461048c57806323b872dd146104b05780632cd3fd70146104e9578063313ce567146105105780634d9a81d41461053657806370a082311461055a57806374c77b521461058857806380ea82731461064557806390c6d1b91461065a57806395d89b411461066f578063a8c310d5146106ff578063a9059cbb1461078c578063accbdfd0146107bf578063b449c24d146107e3578063b4a99a4e14610813578063be45fd621461083f578063becf917f146108b6578063c21bbe56146108e2578063c52cb00314610906578063d21ceba014610928578063d8489a8114610954578063dd62ed3e14610976578063e58fc54c146109aa578063f3e4877c146109da575b61033e5b600f5460009060a860020a900460ff161561033457600354816005540111801561019457506000600354115b1561019f5760006000fd5b600d54604051600160a060020a03909116903480156108fc02916000818181858888f1935050505015156101d35760006000fd5b600160a060020a03331660009081526012602052604090205460ff161515610281575060065460058054670de0b6b3a76400009092029182019055600160a060020a033381166000818152601060209081526040918290208054860190556002805486019055815185815291519293301692600080516020611b498339815191529281900390910190a3600160a060020a0333166000908152601260205260409020805460ff191660011790555b600b543411156102915760006000fd5b66038d7ea4c68000341061032f57600a5434106102b75750600854600c543402026102d6565b60095434106102cf5750600754600c543402026102d6565b50600c5434025b5b6005805482019055600160a060020a033381166000818152601060209081526040918290208054860190556002805486019055815185815291519293301692600080516020611b498339815191529281900390910190a35b61033a565b60006000fd5b5b50565b005b341561034857fe5b610350610a31565b604080516020808252835181830152835191928392908301918501908083838215610396575b80518252602083111561039657601f199092019160209182019101610376565b505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103d857fe5b6103ef600160a060020a0360043516602435610abe565b604080519115158252519081900360200190f35b341561040b57fe5b61033e600435602435604435606435608435610b3a565b005b341561042c57fe5b610434610b78565b60408051918252519081900360200190f35b341561044e57fe5b6103ef610b7f565b604080519115158252519081900360200190f35b341561047257fe5b610434610c60565b60408051918252519081900360200190f35b341561049457fe5b6103ef610c67565b604080519115158252519081900360200190f35b34156104b857fe5b6103ef600160a060020a0360043581169060243516604435610d05565b604080519115158252519081900360200190f35b34156104f157fe5b6103ef600435610e0d565b604080519115158252519081900360200190f35b341561051857fe5b610520610edb565b6040805160ff9092168252519081900360200190f35b341561053e57fe5b6103ef610ee0565b604080519115158252519081900360200190f35b341561056257fe5b610434600160a060020a0360043516610ef1565b60408051918252519081900360200190f35b341561059057fe5b61033e600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375050604080516020601f89358b01803591820183900483028401830190945280835297999881019791965091820194509250829150840183828082843750949650508435946020810135945060408101359350600160a060020a03606082013581169350608082013516915060a00135610f10565b005b341561064d57fe5b61033e600435611088565b005b341561066257fe5b61033e6004356110ae565b005b341561067757fe5b6103506110d4565b604080516020808252835181830152835191928392908301918501908083838215610396575b80518252602083111561039657601f199092019160209182019101610376565b505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561070757fe5b61033e600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750506040805187358901803560208181028481018201909552818452989a99890198929750908201955093508392508501908490808284375094965061116295505050505050565b005b341561079457fe5b6103ef600160a060020a03600435166024356112c8565b604080519115158252519081900360200190f35b34156107c757fe5b6103ef611369565b604080519115158252519081900360200190f35b34156107eb57fe5b6103ef600160a060020a036004351661137a565b604080519115158252519081900360200190f35b341561081b57fe5b61082361138f565b60408051600160a060020a039092168252519081900360200190f35b341561084757fe5b604080516020600460443581810135601f81018490048402850184019095528484526103ef948235600160a060020a031694602480359560649492939190920191819084018382808284375094965061139f95505050505050565b604080519115158252519081900360200190f35b34156108be57fe5b610823611439565b60408051600160a060020a039092168252519081900360200190f35b34156108ea57fe5b6103ef611449565b604080519115158252519081900360200190f35b341561090e57fe5b61043461145a565b60408051918252519081900360200190f35b341561093057fe5b610823611461565b60408051600160a060020a039092168252519081900360200190f35b341561095c57fe5b610434611471565b60408051918252519081900360200190f35b341561097e57fe5b610434600160a060020a0360043581169060243516611478565b60408051918252519081900360200190f35b34156109b257fe5b6103ef600160a060020a03600435166114a5565b604080519115158252519081900360200190f35b34156109e257fe5b61033e60048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284375094965050933593506115d392505050565b005b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ab65780601f10610a8b57610100808354040283529160200191610ab6565b820191906000526020600020905b815481529060010190602001808311610a9957829003601f168201915b505050505081565b6002546000908211610b2f57600160a060020a03338116600081815260116020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3506001610b33565b5060005b5b92915050565b600f5433600160a060020a03908116911614610b565760006000fd5b600785905560088490556009839055600a829055600b8190555b5b5050505050565b6002545b90565b600f54600090819033600160a060020a039081169116148015610bab5750600f5460a860020a900460ff165b1561033457600e54600160a060020a031615801590610bcc57506000600354115b15610c3a5750600554600354036000811115610c3a57600e8054600160a060020a039081166000908152601060209081526040918290208054860190556002805486019055925481518581529151908316933090931692600080516020611b49833981519152928290030190a35b5b600f805460a860020a61ffff0219169055610c57565b60006000fd5b600191505b5090565b6005545b90565b600f5460009033600160a060020a039081169116148015610c925750600f5460b060020a900460ff16155b8015610ca75750600f5460a060020a900460ff165b1561033457600f805475ff0000000000000000000000000000000000000000001976ff000000000000000000000000000000000000000000001990911660b060020a171660a860020a179055610cfe565b60006000fd5b5060015b90565b600160a060020a038316600090815260106020526040812054829010801590610d555750600160a060020a0380851660009081526011602090815260408083203390941683529290522054829010155b8015610d615750600082115b8015610d865750600160a060020a038316600090815260106020526040902054828101115b15610e0157600160a060020a0380851660008181526010602081815260408084208054899003905560118252808420338716855282528084208054899003905594881680845291815291849020805487019055835186815293519093600080516020611b4983398151915292908290030190a3506001610e05565b5060005b5b9392505050565b600160a060020a033316600090815260106020526040812054670de0b6b3a764000083029081901061033457600160a060020a03331660008181526010602090815260409182902080548590039055600280548590039055815184815291517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59281900390910190a2604080518281529051600091600160a060020a03331691600080516020611b498339815191529181900360200190a3610ed0565b60006000fd5b600191505b50919050565b601281565b600f5460b060020a900460ff165b90565b600160a060020a0381166000908152601060205260409020545b919050565b600f5433600160a060020a039081169116148015610f385750600f5460a060020a900460ff16155b1561107d578651610f509060009060208a0190611a96565b508751610f649060019060208b0190611a96565b506006819055600c869055670de0b6b3a764000085026003556000841115610ff057670de0b6b3a7640000840260048190556002819055600f8054600160a060020a039081166000908152601060209081526040918290208590556005805486019055925481519485529051908216933090921692600080516020611b49833981519152928290030190a35b600d8054600160a060020a031916600160a060020a03848116919091179182905516151561103b57600f54600d8054600160a060020a031916600160a060020a039092169190911790555b600e8054600160a060020a038516600160a060020a0319909116179055600f805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b5050505050505050565b600f5433600160a060020a039081169116146110a45760006000fd5b600c8190555b5b50565b600f5433600160a060020a039081169116146110ca5760006000fd5b60068190555b5b50565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ab65780601f10610a8b57610100808354040283529160200191610ab6565b820191906000526020600020905b815481529060010190602001808311610a9957829003601f168201915b505050505081565b600f546000908190819033600160a060020a039081169116146111855760006000fd5b60055460035403925060ff8551111515156111a05760006000fd5b83518551146111af5760006000fd5b5060005b84518160ff161015610b7057838160ff168151811015156111d057fe5b60209081029091010151670de0b6b3a7640000029150828211156111f45760006000fd5b600580548301905584518290601090600090889060ff861690811061121557fe5b6020908102909101810151600160a060020a031682528101919091526040016000208054909101905560028054830190558451859060ff831690811061125757fe5b90602001906020020151600160a060020a031630600160a060020a0316600080516020611b49833981519152846040518082815260200191505060405180910390a3600354600554106112b657600f805460a860020a61ffff02191690555b5b6001016111b3565b5b5b5050505050565b60006112d2611b15565b600160a060020a0333166000908152601060205260409020548390108015906112fb5750600083115b80156113205750600160a060020a038416600090815260106020526040902054838101115b1561135c5761132e84611712565b156113455761133e848483611753565b9150611361565b61133e848483611972565b9150611361565b611361565b600091505b5b5092915050565b600f5460a860020a900460ff165b90565b60126020526000908152604090205460ff1681565b600f54600160a060020a03165b90565b600160a060020a0333166000908152601060205260408120548390108015906113c85750600083115b80156113ed5750600160a060020a038416600090815260106020526040902054838101115b15610e01576113fb84611712565b156114125761140b848484611753565b9050610e05565b61140b848484611972565b9050610e05565b610e05565b506000610e05565b5b9392505050565b600d54600160a060020a03165b90565b600f5460a060020a900460ff165b90565b6004545b90565b600e54600160a060020a03165b90565b6003545b90565b600160a060020a038083166000908152601160209081526040808320938516835292905220545b92915050565b600f546000908190819033600160a060020a039081169116146114c85760006000fd5b83915081600160a060020a03166370a08231306000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b151561152b57fe5b60325a03f1151561153857fe5b5050604080518051600f546000602093840181905284517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529451929650908716945063a9059cbb936044808201949392918390030190829087803b15156115b457fe5b60325a03f115156115c157fe5b5050604051519350505b5b5050919050565b600f54600090819033600160a060020a039081169116146115f45760006000fd5b60055460035403915060ff84511115151561160f5760006000fd5b8183111561161d5760006000fd5b50670de0b6b3a76400009091029060005b83518110156116ed57818311156116455760006000fd5b60058054840190558351839060109060009087908590811061166357fe5b6020908102909101810151600160a060020a0316825281019190915260400160002080549091019055600280548401905583518490829081106116a257fe5b90602001906020020151600160a060020a031630600160a060020a0316600080516020611b49833981519152856040518082815260200191505060405180910390a35b60010161162e565b6003546005541061170a57600f805460a860020a61ffff02191690555b5b5b50505050565b600080600160a060020a038316151561172e5760009150610ed5565b50813b60008111156117435760019150610ed5565b60009150610ed5565b5b50919050565b33600160a060020a0381811660008181526010602090815260408083208054899003905593881680835284832080548901905593517fc0ee0b8a000000000000000000000000000000000000000000000000000000008152600481019384526024810188905260606044820190815287516064830152875193968a969563c0ee0b8a9591948b948b9492936084909101918501908083838215611811575b80518252602083111561181157601f1990920191602091820191016117f1565b505050905090810190601f16801561183d5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b151561185a57fe5b60325a03f1151561186757fe5b50505084600160a060020a031633600160a060020a0316600080516020611b49833981519152866040518082815260200191505060405180910390a384600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168686604051808381526020018060200182810382528381815181526020019150805190602001908083836000831461192b575b80518252602083111561192b57601f19909201916020918201910161190b565b505050905090810190601f1680156119575780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3600191505b509392505050565b600160a060020a03338116600081815260106020908152604080832080548890039055938716808352848320805488019055845187815294519294909392600080516020611b49833981519152929181900390910190a383600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c1685856040518083815260200180602001828103825283818151815260200191508051906020019080838360008314611a51575b805182526020831115611a5157601f199092019160209182019101611a31565b505050905090810190601f168015611a7d5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a35060015b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611ad757805160ff1916838001178555611b04565b82800160010185558215611b04579182015b82811115611b04578251825591602001919060010190611ae9565b5b50610c5c929150611b27565b5090565b60408051602081019091526000815290565b610b7c91905b80821115610c5c5760008155600101611b2d565b5090565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058202e86f119bbbb6df070795c9a8eabb29580273ecf65df7c3d6f172994f5e37ac50029

Swarm Source

bzzr://2e86f119bbbb6df070795c9a8eabb29580273ecf65df7c3d6f172994f5e37ac5
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.