ETH Price: $3,912.95 (+0.51%)

Token

CryptoStock KRM Promo Token (CSTK_KRM)
 

Overview

Max Total Supply

100,000,000 CSTK_KRM

Holders

201

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 5 Decimals)

Filtered by Token Holder
Uex
Balance
40,000 CSTK_KRM

Value
$0.00
0x2f1233Ec3a4930Fd95874291DB7da9E90dfB2F03
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:
CSTK_KRM

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-09-21
*/

pragma solidity ^0.4.24;

library SafeMath {
  function add(uint a, uint b) internal pure returns (uint c) {
    c = a + b;
    require(c >= a);
  }
  function sub(uint a, uint b) internal pure returns (uint c) {
    require(b <= a);
    c = a - b;
  }
  function mul(uint a, uint b) internal pure returns (uint c) {
    c = a * b;
    require(a == 0 || c / a == b);
  }
  function div(uint a, uint b) internal pure returns (uint c) {
    require(b > 0);
    c = a / b;
  }
}

contract ERC20 {
  function totalSupply() public constant returns (uint256);
  function balanceOf(address tokenOwner) public constant returns (uint256 balance);
  function allowance(address tokenOwner, address spender) public constant returns (uint256 remaining);
  function transfer(address to, uint tokens) public returns (bool success);
  function approve(address spender, uint tokens) public returns (bool success);
  function transferFrom(address from, address to, uint tokens) public returns (bool success);

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

contract Owned {
  address public owner;

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

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

  function transferOwnership(address newOwner) public onlyOwner returns (address account) {
    owner = newOwner;
    return owner;
  }
}

contract CSTKDropToken is ERC20, Owned {
  using SafeMath for uint256;

  string public symbol;
  string public  name;
  uint256 public decimals;
  uint256 _totalSupply;

  bool public started;

  address public token;

  struct Level {
    uint256 price;
    uint256 available;
  }

  Level[] levels;

  mapping(address => uint256) balances;
  mapping(address => mapping(string => uint256)) orders;

  event TransferETH(address indexed from, address indexed to, uint256 eth);
  event Sell(address indexed to, uint256 tokens, uint256 eth);

  // ------------------------------------------------------------------------
  // Constructor
  // ------------------------------------------------------------------------
  constructor(string _symbol, string _name, uint256 _supply, uint256 _decimals, address _token) public {
    symbol = _symbol;
    name = _name;
    decimals = _decimals;
    token = _token;
    _totalSupply = _supply;
    balances[owner] = _totalSupply;
    started = false;
    emit Transfer(address(0), owner, _totalSupply);
  }

  function destruct() public onlyOwner {
    ERC20 tokenInstance = ERC20(token);

    uint256 balance = tokenInstance.balanceOf(this);

    if (balance > 0) {
      tokenInstance.transfer(owner, balance);
    }

    selfdestruct(owner);
  }

  // ------------------------------------------------------------------------
  // Changes the address of the supported token
  // ------------------------------------------------------------------------
  function setToken(address newTokenAddress) public onlyOwner returns (bool success) {
    token = newTokenAddress;
    return true;
  }

  // ------------------------------------------------------------------------
  // Total supply
  // ------------------------------------------------------------------------
  function totalSupply() public view returns (uint256) {
    return _totalSupply.sub(balances[address(0)]);
  }

  // ------------------------------------------------------------------------
  // Changes the total supply value
  //
  // a new supply must be no less then the current supply
  // or the owner must have enough amount to cover supply reduction
  // ------------------------------------------------------------------------
  function changeTotalSupply(uint256 newSupply) public onlyOwner returns (bool success) {
    require(newSupply >= 0 && (
      newSupply >= _totalSupply || _totalSupply - newSupply <= balances[owner]
    ));
    uint256 diff = 0;
    if (newSupply >= _totalSupply) {
      diff = newSupply.sub(_totalSupply);
      balances[owner] = balances[owner].add(diff);
      emit Transfer(address(0), owner, diff);
    } else {
      diff = _totalSupply.sub(newSupply);
      balances[owner] = balances[owner].sub(diff);
      emit Transfer(owner, address(0), diff);
    }
    _totalSupply = newSupply;
    return true;
  }

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

  // ------------------------------------------------------------------------
  // Start accept orders
  // ------------------------------------------------------------------------
  function start() public onlyOwner {
    started = true;
  }

  // ------------------------------------------------------------------------
  // Start accept orders
  // ------------------------------------------------------------------------
  function stop() public onlyOwner {
    started = false;
  }

  // ------------------------------------------------------------------------
  // Adds new Level to the levels array
  // ------------------------------------------------------------------------
  function addLevel(uint256 price, uint256 available) public onlyOwner {
    levels.push(Level(price, available));
  }

  // ------------------------------------------------------------------------
  // Removes a level with specified price from the levels array
  // ------------------------------------------------------------------------
  function removeLevel(uint256 price) public onlyOwner {
    if (levels.length < 1) {
      return;
    }

    Level[] memory tmp = levels;

    delete levels;

    for (uint i = 0; i < tmp.length; i++) {
      if (tmp[i].price != price) {
        levels.push(tmp[i]);
      }
    }
  }

  // ------------------------------------------------------------------------
  // Replaces a particular level index by a new Level values
  // ------------------------------------------------------------------------
  function replaceLevel(uint index, uint256 price, uint256 available) public onlyOwner {
    levels[index] = Level(price, available);
  }

  // ------------------------------------------------------------------------
  // Clears the levels array
  // ------------------------------------------------------------------------
  function clearLevels() public onlyOwner {
    delete levels;
  }

  // ------------------------------------------------------------------------
  // Finds a level with specified price and returns an amount of available tokens on the level
  // ------------------------------------------------------------------------
  function getLevelAmount(uint256 price) public view returns (uint256 available) {
    if (levels.length < 1) {
      return 0;
    }

    for (uint i = 0; i < levels.length; i++) {
      if (levels[i].price == price) {
        return levels[i].available;
      }
    }
  }

  // ------------------------------------------------------------------------
  // Returns a Level by it's array index
  // ------------------------------------------------------------------------
  function getLevelByIndex(uint index) public view returns (uint256 price, uint256 available) {
    price = levels[index].price;
    available = levels[index].available;
  }

  // ------------------------------------------------------------------------
  // Returns a count of levels
  // ------------------------------------------------------------------------
  function getLevelsCount() public view returns (uint) {
    return levels.length;
  }

  // ------------------------------------------------------------------------
  // Returns a Level by it's array index
  // ------------------------------------------------------------------------
  function getCurrentLevel() public view returns (uint256 price, uint256 available) {
    if (levels.length < 1) {
      return;
    }

    for (uint i = 0; i < levels.length; i++) {
      if (levels[i].available > 0) {
        price = levels[i].price;
        available = levels[i].available;
        break;
      }
    }
  }

  // ------------------------------------------------------------------------
  // Get the order's balance of tokens for account `customer`
  // ------------------------------------------------------------------------
  function orderTokensOf(address customer) public view returns (uint256 balance) {
    return orders[customer]['tokens'];
  }

  // ------------------------------------------------------------------------
  // Get the order's balance of ETH for account `customer`
  // ------------------------------------------------------------------------
  function orderEthOf(address customer) public view returns (uint256 balance) {
    return orders[customer]['eth'];
  }

  // ------------------------------------------------------------------------
  // Delete customer's order
  // ------------------------------------------------------------------------
  function cancelOrder(address customer) public onlyOwner returns (bool success) {
    orders[customer]['eth'] = 0;
    orders[customer]['tokens'] = 0;
    return true;
  }

  // ------------------------------------------------------------------------
  // Checks the order values by the customer's address and sends required
  // promo tokens based on the received amount of `this` tokens and ETH
  // ------------------------------------------------------------------------
  function _checkOrder(address customer) private returns (uint256 tokens, uint256 eth) {
    require(started);

    eth = 0;
    tokens = 0;

    if (getLevelsCount() <= 0 || orders[customer]['tokens'] <= 0 || orders[customer]['eth'] <= 0) {
      return;
    }

    ERC20 tokenInstance = ERC20(token);
    uint256 balance = tokenInstance.balanceOf(this);

    uint256 orderEth = orders[customer]['eth'];
    uint256 orderTokens = orders[customer]['tokens'] > balance ? balance : orders[customer]['tokens'];

    for (uint i = 0; i < levels.length; i++) {
      if (levels[i].available <= 0) {
        continue;
      }

      uint256 _tokens = (10**decimals) * orderEth / levels[i].price;

      // check if there enough tokens on the level
      if (_tokens > levels[i].available) {
        _tokens = levels[i].available;
      }

      // check the order tokens limit
      if (_tokens > orderTokens) {
        _tokens = orderTokens;
      }

      uint256 _eth = _tokens * levels[i].price / (10**decimals);
      levels[i].available -= _tokens;

      // accumulate total price and tokens
      eth += _eth;
      tokens += _tokens;

      // reduce remaining limits
      orderEth -= _eth;
      orderTokens -= _tokens;

      if (orderEth <= 0 || orderTokens <= 0 || levels[i].available > 0) {
        // order is calculated
        break;
      }
    }

    // charge required amount of the tokens and ETHs
    orders[customer]['tokens'] = orders[customer]['tokens'].sub(tokens);
    orders[customer]['eth'] = orders[customer]['eth'].sub(eth);

    tokenInstance.transfer(customer, tokens);

    emit Sell(customer, tokens, eth);
  }

  // ------------------------------------------------------------------------
  // public entry point for the `_checkOrder` function
  // ------------------------------------------------------------------------
  function checkOrder(address customer) public onlyOwner returns (uint256 tokens, uint256 eth) {
    return _checkOrder(customer);
  }

  // ------------------------------------------------------------------------
  // Transfer the balance from token owner's account to `to` account
  // - Owner's account must have sufficient balance to transfer
  // - 0 value transfers are allowed
  // - only owner is allowed to send tokens to any address
  // - not owners can transfer the balance only to owner's address
  // ------------------------------------------------------------------------
  function transfer(address to, uint256 tokens) public returns (bool success) {
    require(msg.sender == owner || to == owner || to == address(this));
    address receiver = msg.sender == owner ? to : owner;

    balances[msg.sender] = balances[msg.sender].sub(tokens);
    balances[receiver] = balances[receiver].add(tokens);

    emit Transfer(msg.sender, receiver, tokens);

    if (receiver == owner) {
      orders[msg.sender]['tokens'] = orders[msg.sender]['tokens'].add(tokens);
      _checkOrder(msg.sender);
    }

    return true;
  }

  // ------------------------------------------------------------------------
  // `allowance` is not allowed
  // ------------------------------------------------------------------------
  function allowance(address tokenOwner, address spender) public constant returns (uint256 remaining) {
    tokenOwner;
    spender;
    return uint256(0);
  }

  // ------------------------------------------------------------------------
  // `approve` is not allowed
  // ------------------------------------------------------------------------
  function approve(address spender, uint tokens) public returns (bool success) {
    spender;
    tokens;
    return true;
  }

  // ------------------------------------------------------------------------
  // `transferFrom` is not allowed
  // ------------------------------------------------------------------------
  function transferFrom(address from, address to, uint256 tokens) public returns (bool success) {
    from;
    to;
    tokens;
    return true;
  }

  // ------------------------------------------------------------------------
  // Accept ETH
  // ------------------------------------------------------------------------
  function () public payable {
    owner.transfer(msg.value);
    emit TransferETH(msg.sender, address(this), msg.value);

    orders[msg.sender]['eth'] = orders[msg.sender]['eth'].add(msg.value);
    _checkOrder(msg.sender);
  }

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

  // ------------------------------------------------------------------------
  // Owner can transfer out promo token
  // ------------------------------------------------------------------------
  function transferToken(uint256 tokens) public onlyOwner returns (bool success) {
    return transferAnyERC20Token(token, tokens);
  }

  // ------------------------------------------------------------------------
  // Owner can return specified amount from `tokenOwner`
  // ------------------------------------------------------------------------
  function returnFrom(address tokenOwner, uint256 tokens) public onlyOwner returns (bool success) {
    balances[tokenOwner] = balances[tokenOwner].sub(tokens);
    balances[owner] = balances[owner].add(tokens);
    emit Transfer(tokenOwner, owner, tokens);
    return true;
  }

  // ------------------------------------------------------------------------
  // Owner can return all tokens from `tokenOwner`
  // ------------------------------------------------------------------------
  function nullifyFrom(address tokenOwner) public onlyOwner returns (bool success) {
    return returnFrom(tokenOwner, balances[tokenOwner]);
  }
}

contract CSTK_KRM is CSTKDropToken('CSTK_KRM', 'CryptoStock KRM Promo Token', 100000000 * 10**5, 5, 0x124c801606Be4b90bb46Fbb03fc0264B461B821B) {

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newTokenAddress","type":"address"}],"name":"setToken","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"customer","type":"address"}],"name":"orderTokensOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"started","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"destruct","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":"tokenOwner","type":"address"}],"name":"nullifyFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getLevelsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"price","type":"uint256"}],"name":"getLevelAmount","outputs":[{"name":"available","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"getLevelByIndex","outputs":[{"name":"price","type":"uint256"},{"name":"available","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newSupply","type":"uint256"}],"name":"changeTotalSupply","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"customer","type":"address"}],"name":"checkOrder","outputs":[{"name":"tokens","type":"uint256"},{"name":"eth","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"},{"name":"price","type":"uint256"},{"name":"available","type":"uint256"}],"name":"replaceLevel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentLevel","outputs":[{"name":"price","type":"uint256"},{"name":"available","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"price","type":"uint256"}],"name":"removeLevel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"price","type":"uint256"},{"name":"available","type":"uint256"}],"name":"addLevel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"customer","type":"address"}],"name":"cancelOrder","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokens","type":"uint256"}],"name":"transferToken","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"tokens","type":"uint256"}],"name":"returnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"clearLevels","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"name":"account","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"customer","type":"address"}],"name":"orderEthOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"eth","type":"uint256"}],"name":"TransferETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"eth","type":"uint256"}],"name":"Sell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

600860808181527f4353544b5f4b524d00000000000000000000000000000000000000000000000060a0908152610100604052601b60c09081527f43727970746f53746f636b204b524d2050726f6d6f20546f6b656e000000000060e05260008054600160a060020a0319163317905591926509184e72a0009160059173124c801606be4b90bb46fbb03fc0264b461b821b91620000a191600191906200014b565b508351620000b79060029060208701906200014b565b50600382905560058054600160a060020a038084166101000261010060a860020a031990921691909117825560048590556000805482168152600760209081526040808320889055845460ff191690945581548451888152945193169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050505050620001f0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200018e57805160ff1916838001178555620001be565b82800160010185558215620001be579182015b82811115620001be578251825591602001919060010190620001a1565b50620001cc929150620001d0565b5090565b620001ed91905b80821115620001cc5760008155600101620001d7565b90565b611b5080620002006000396000f3006080604052600436106101ab5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146102a357806307da68f51461032d578063095ea7b314610344578063144fa6d71461037c5780631786e3621461039d57806318160ddd146103d05780631f2698ab146103e557806323b872dd146103fa5780632b68b9c614610424578063313ce567146104395780633551a6ca1461044e57806338756a891461046f578063478cd032146104845780634d894d241461049c57806352e97326146104cd5780635fb1ef8e146104e5578063601960081461050657806370a082311461052457806377c78df9146105455780637c23d1cb1461055a57806388eccb09146105725780638da5cb5b1461058d57806395d89b41146105be57806399c49852146105d35780639fc71b31146105f4578063a9059cbb1461060c578063be9a655514610630578063c8e3207414610645578063dc39d06d14610669578063dd62ed3e1461068d578063e7bfdc93146106b4578063f2fde38b146106c9578063f3868555146106ea578063fc0c546a1461070b575b60008054604051600160a060020a03909116913480156108fc02929091818181858888f193505050501580156101e5573d6000803e3d6000fd5b50604080513481529051309133917fb417e19f030bde3b90ec59aeed617934f679c9071dde0be604082db6586346a69181900360200190a33360009081526008602052604090819020815160eb60020a620cae8d0281526003810191909152905190819003602301902054610260903463ffffffff61072016565b3360008181526008602052604090819020815160eb60020a620cae8d028152600381019190915290519081900360230190209190915561029f90610736565b5050005b3480156102af57600080fd5b506102b8610cc3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102f25781810151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033957600080fd5b50610342610d4e565b005b34801561035057600080fd5b50610368600160a060020a0360043516602435610d71565b604080519115158252519081900360200190f35b34801561038857600080fd5b50610368600160a060020a0360043516610d79565b3480156103a957600080fd5b506103be600160a060020a0360043516610dc8565b60408051918252519081900360200190f35b3480156103dc57600080fd5b506103be610e0c565b3480156103f157600080fd5b50610368610e50565b34801561040657600080fd5b50610368600160a060020a0360043581169060243516604435610e59565b34801561043057600080fd5b50610342610e62565b34801561044557600080fd5b506103be610fcb565b34801561045a57600080fd5b50610368600160a060020a0360043516610fd1565b34801561047b57600080fd5b506103be61100d565b34801561049057600080fd5b506103be600435611013565b3480156104a857600080fd5b506104b4600435611098565b6040805192835260208301919091528051918290030190f35b3480156104d957600080fd5b506103686004356110e6565b3480156104f157600080fd5b506104b4600160a060020a036004351661126e565b34801561051257600080fd5b5061034260043560243560443561129a565b34801561053057600080fd5b506103be600160a060020a03600435166112f7565b34801561055157600080fd5b506104b4611312565b34801561056657600080fd5b506103426004356113b8565b34801561057e57600080fd5b506103426004356024356114d1565b34801561059957600080fd5b506105a2611560565b60408051600160a060020a039092168252519081900360200190f35b3480156105ca57600080fd5b506102b861156f565b3480156105df57600080fd5b50610368600160a060020a03600435166115c9565b34801561060057600080fd5b50610368600435611651565b34801561061857600080fd5b50610368600160a060020a0360043516602435611684565b34801561063c57600080fd5b50610342611833565b34801561065157600080fd5b50610368600160a060020a0360043516602435611859565b34801561067557600080fd5b50610368600160a060020a0360043516602435611922565b34801561069957600080fd5b506103be600160a060020a03600435811690602435166119dd565b3480156106c057600080fd5b506103426119e5565b3480156106d557600080fd5b506105a2600160a060020a0360043516611a0a565b3480156106f657600080fd5b506103be600160a060020a0360043516611a52565b34801561071757600080fd5b506105a2611a93565b8181018281101561073057600080fd5b92915050565b6000806000806000806000806000600560009054906101000a900460ff16151561075f57600080fd5b6000975060009850600061077161100d565b1115806107ba5750600160a060020a038a16600090815260086020526040808220815160d060020a65746f6b656e73028152600681019190915290519081900360260190205411155b806107fe5750600160a060020a038a16600090815260086020526040808220815160eb60020a620cae8d028152600381019190915290519081900360230190205411155b1561080857610cb7565b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610100909204600160a060020a0316985088916370a08231916024808201926020929091908290030181600087803b15801561087557600080fd5b505af1158015610889573d6000803e3d6000fd5b505050506040513d602081101561089f57600080fd5b5051600160a060020a038b166000818152600860208181526040808420815160eb60020a620cae8d02815260038101829052825190819003602301812054969095529290915260d060020a65746f6b656e73028352600683019190915251908190036026019020549197509550861061095657600160a060020a038a1660009081526008602052604090819020815160d060020a65746f6b656e730281526006810191909152905190819003602601902054610958565b855b9350600092505b600654831015610ae457600060068481548110151561097a57fe5b90600052602060002090600202016001015411151561099857610ad9565b60068054849081106109a657fe5b90600052602060002090600202016000015485600354600a0a028115156109c957fe5b0491506006838154811015156109db57fe5b906000526020600020906002020160010154821115610a17576006805484908110610a0257fe5b90600052602060002090600202016001015491505b83821115610a23578391505b600354600a0a600684815481101515610a3857fe5b9060005260206000209060020201600001548302811515610a5557fe5b04905081600684815481101515610a6857fe5b60009182526020822060016002909202010180549290920390915598820198978101979481900394938290039385111580610aa4575060008411155b80610acf57506000600684815481101515610abb57fe5b906000526020600020906002020160010154115b15610ad957610ae4565b60019092019161095f565b600160a060020a038a1660009081526008602052604090819020815160d060020a65746f6b656e730281526006810191909152905190819003602601902054610b33908a63ffffffff611aa716565b600160a060020a038b166000818152600860208181526040808420815160d060020a65746f6b656e7302815260068101829052825190819003602601812097909755949093525260eb60020a620cae8d02835260038301919091525190819003602301902054610ba9908963ffffffff611aa716565b600160a060020a03808c166000818152600860209081526040808320815160eb60020a620cae8d02815260038101919091528151908190036023018120969096557fa9059cbb0000000000000000000000000000000000000000000000000000000086526004860193909352602485018e90529151928b169363a9059cbb936044808301949391928390030190829087803b158015610c4757600080fd5b505af1158015610c5b573d6000803e3d6000fd5b505050506040513d6020811015610c7157600080fd5b5050604080518a8152602081018a90528151600160a060020a038d16927fed7a144fad14804d5c249145e3e0e2b63a9eb455b76aee5bc92d711e9bba3e4a928290030190a25b50505050505050915091565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610d465780601f10610d1b57610100808354040283529160200191610d46565b820191906000526020600020905b815481529060010190602001808311610d2957829003601f168201915b505050505081565b600054600160a060020a03163314610d6557600080fd5b6005805460ff19169055565b600192915050565b60008054600160a060020a03163314610d9157600080fd5b5060058054600160a060020a0383166101000274ffffffffffffffffffffffffffffffffffffffff00199091161790556001919050565b600160a060020a03811660009081526008602052604090819020815160d060020a65746f6b656e730281526006810191909152905190819003602601902054919050565b600080805260076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df54600454610e4a9163ffffffff611aa716565b90505b90565b60055460ff1681565b60019392505050565b600080548190600160a060020a03163314610e7c57600080fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610100909204600160a060020a0316935083916370a08231916024808201926020929091908290030181600087803b158015610ee957600080fd5b505af1158015610efd573d6000803e3d6000fd5b505050506040513d6020811015610f1357600080fd5b505190506000811115610fbd5760008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519185169263a9059cbb926044808401936020939083900390910190829087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050506040513d6020811015610fba57600080fd5b50505b600054600160a060020a0316ff5b60035481565b60008054600160a060020a03163314610fe957600080fd5b600160a060020a038216600090815260076020526040902054610730908390611859565b60065490565b6000806001600680549050101561102d5760009150611092565b5060005b600654811015611092578260068281548110151561104b57fe5b906000526020600020906002020160000154141561108a57600680548290811061107157fe5b9060005260206000209060020201600101549150611092565b600101611031565b50919050565b6000806006838154811015156110aa57fe5b90600052602060002090600202016000015491506006838154811015156110cd57fe5b9060005260206000209060020201600101549050915091565b600080548190600160a060020a0316331461110057600080fd5b6000831015801561113a57506004548310158061113a575060008054600160a060020a031681526007602052604090205460045484900311155b151561114557600080fd5b5060045460009083106111dd5760045461116690849063ffffffff611aa716565b60008054600160a060020a0316815260076020526040902054909150611192908263ffffffff61072016565b60008054600160a060020a03908116825260076020908152604080842094909455825484518681529451921693600080516020611b05833981519152929081900390910190a3611264565b6004546111f0908463ffffffff611aa716565b60008054600160a060020a031681526007602052604090205490915061121c908263ffffffff611aa716565b60008054600160a060020a039081168252600760209081526040808420949094558254845186815294519394921692600080516020611b058339815191529281900390910190a35b5050600455600190565b600080548190600160a060020a0316331461128857600080fd5b61129183610736565b91509150915091565b600054600160a060020a031633146112b157600080fd5b604080518082019091528281526020810182905260068054859081106112d357fe5b60009182526020918290208351600290920201908155910151600190910155505050565b600160a060020a031660009081526007602052604090205490565b60008060006001600680549050101561132a576113b3565b5060005b6006548110156113b357600060068281548110151561134957fe5b90600052602060002090600202016001015411156113ab57600680548290811061136f57fe5b906000526020600020906002020160000154925060068181548110151561139257fe5b90600052602060002090600202016001015491506113b3565b60010161132e565b509091565b6000805460609190600160a060020a031633146113d457600080fd5b600654600111156113e4576114cc565b6006805480602002602001604051908101604052809291908181526020016000905b82821015611445576000848152602090819020604080518082019091526002850290910180548252600190810154828401529083529092019101611406565b505050509150600660006114599190611abc565b5060005b81518110156114cc5782828281518110151561147557fe5b6020908102909101015151146114c4576006828281518110151561149557fe5b602090810290910181015182546001818101855560009485529383902082516002909202019081559101519101555b60010161145d565b505050565b600054600160a060020a031633146114e857600080fd5b60408051808201909152918252602082019081526006805460018101825560009190915291517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290930292830155517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090910155565b600054600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610d465780601f10610d1b57610100808354040283529160200191610d46565b60008054600160a060020a031633146115e157600080fd5b50600160a060020a0381166000818152600860208181526040808420815160eb60020a620cae8d0281526003810182905282519081900360230181208690559585529290915260d060020a65746f6b656e7302845260068401919091525191829003602601909120556001919050565b60008054600160a060020a0316331461166957600080fd5b600554610730906101009004600160a060020a031683611922565b600080548190600160a060020a03163314806116ad5750600054600160a060020a038581169116145b806116c05750600160a060020a03841630145b15156116cb57600080fd5b600054600160a060020a031633146116ee57600054600160a060020a03166116f0565b835b33600090815260076020526040902054909150611713908463ffffffff611aa716565b3360009081526007602052604080822092909255600160a060020a03831681522054611745908463ffffffff61072016565b600160a060020a038216600081815260076020908152604091829020939093558051868152905191923392600080516020611b058339815191529281900390910190a3600054600160a060020a0382811691161415611829573360009081526008602052604090819020815160d060020a65746f6b656e7302815260068101919091529051908190036026019020546117e4908463ffffffff61072016565b3360008181526008602052604090819020815160d060020a65746f6b656e73028152600681019190915290519081900360260190209190915561182690610736565b50505b5060019392505050565b600054600160a060020a0316331461184a57600080fd5b6005805460ff19166001179055565b60008054600160a060020a0316331461187157600080fd5b600160a060020a03831660009081526007602052604090205461189a908363ffffffff611aa716565b600160a060020a03808516600090815260076020526040808220939093558054909116815220546118d1908363ffffffff61072016565b60008054600160a060020a039081168252600760209081526040808420949094559154835186815293519082169391871692600080516020611b05833981519152928290030190a350600192915050565b60008054600160a060020a0316331461193a57600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b1580156119aa57600080fd5b505af11580156119be573d6000803e3d6000fd5b505050506040513d60208110156119d457600080fd5b50519392505050565b600092915050565b600054600160a060020a031633146119fc57600080fd5b611a0860066000611abc565b565b60008054600160a060020a03163314611a2257600080fd5b506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551690565b600160a060020a03811660009081526008602052604090819020815160eb60020a620cae8d0281526003810191909152905190819003602301902054919050565b6005546101009004600160a060020a031681565b600082821115611ab657600080fd5b50900390565b5080546000825560020290600052602060002090810190611add9190611ae0565b50565b610e4d91905b80821115611b005760008082556001820155600201611ae6565b50905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820eb55193af384bd3464b38c6da89f8f717900fe86db51724ea44e936dd6d4ab980029

Deployed Bytecode

0x6080604052600436106101ab5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146102a357806307da68f51461032d578063095ea7b314610344578063144fa6d71461037c5780631786e3621461039d57806318160ddd146103d05780631f2698ab146103e557806323b872dd146103fa5780632b68b9c614610424578063313ce567146104395780633551a6ca1461044e57806338756a891461046f578063478cd032146104845780634d894d241461049c57806352e97326146104cd5780635fb1ef8e146104e5578063601960081461050657806370a082311461052457806377c78df9146105455780637c23d1cb1461055a57806388eccb09146105725780638da5cb5b1461058d57806395d89b41146105be57806399c49852146105d35780639fc71b31146105f4578063a9059cbb1461060c578063be9a655514610630578063c8e3207414610645578063dc39d06d14610669578063dd62ed3e1461068d578063e7bfdc93146106b4578063f2fde38b146106c9578063f3868555146106ea578063fc0c546a1461070b575b60008054604051600160a060020a03909116913480156108fc02929091818181858888f193505050501580156101e5573d6000803e3d6000fd5b50604080513481529051309133917fb417e19f030bde3b90ec59aeed617934f679c9071dde0be604082db6586346a69181900360200190a33360009081526008602052604090819020815160eb60020a620cae8d0281526003810191909152905190819003602301902054610260903463ffffffff61072016565b3360008181526008602052604090819020815160eb60020a620cae8d028152600381019190915290519081900360230190209190915561029f90610736565b5050005b3480156102af57600080fd5b506102b8610cc3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102f25781810151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033957600080fd5b50610342610d4e565b005b34801561035057600080fd5b50610368600160a060020a0360043516602435610d71565b604080519115158252519081900360200190f35b34801561038857600080fd5b50610368600160a060020a0360043516610d79565b3480156103a957600080fd5b506103be600160a060020a0360043516610dc8565b60408051918252519081900360200190f35b3480156103dc57600080fd5b506103be610e0c565b3480156103f157600080fd5b50610368610e50565b34801561040657600080fd5b50610368600160a060020a0360043581169060243516604435610e59565b34801561043057600080fd5b50610342610e62565b34801561044557600080fd5b506103be610fcb565b34801561045a57600080fd5b50610368600160a060020a0360043516610fd1565b34801561047b57600080fd5b506103be61100d565b34801561049057600080fd5b506103be600435611013565b3480156104a857600080fd5b506104b4600435611098565b6040805192835260208301919091528051918290030190f35b3480156104d957600080fd5b506103686004356110e6565b3480156104f157600080fd5b506104b4600160a060020a036004351661126e565b34801561051257600080fd5b5061034260043560243560443561129a565b34801561053057600080fd5b506103be600160a060020a03600435166112f7565b34801561055157600080fd5b506104b4611312565b34801561056657600080fd5b506103426004356113b8565b34801561057e57600080fd5b506103426004356024356114d1565b34801561059957600080fd5b506105a2611560565b60408051600160a060020a039092168252519081900360200190f35b3480156105ca57600080fd5b506102b861156f565b3480156105df57600080fd5b50610368600160a060020a03600435166115c9565b34801561060057600080fd5b50610368600435611651565b34801561061857600080fd5b50610368600160a060020a0360043516602435611684565b34801561063c57600080fd5b50610342611833565b34801561065157600080fd5b50610368600160a060020a0360043516602435611859565b34801561067557600080fd5b50610368600160a060020a0360043516602435611922565b34801561069957600080fd5b506103be600160a060020a03600435811690602435166119dd565b3480156106c057600080fd5b506103426119e5565b3480156106d557600080fd5b506105a2600160a060020a0360043516611a0a565b3480156106f657600080fd5b506103be600160a060020a0360043516611a52565b34801561071757600080fd5b506105a2611a93565b8181018281101561073057600080fd5b92915050565b6000806000806000806000806000600560009054906101000a900460ff16151561075f57600080fd5b6000975060009850600061077161100d565b1115806107ba5750600160a060020a038a16600090815260086020526040808220815160d060020a65746f6b656e73028152600681019190915290519081900360260190205411155b806107fe5750600160a060020a038a16600090815260086020526040808220815160eb60020a620cae8d028152600381019190915290519081900360230190205411155b1561080857610cb7565b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610100909204600160a060020a0316985088916370a08231916024808201926020929091908290030181600087803b15801561087557600080fd5b505af1158015610889573d6000803e3d6000fd5b505050506040513d602081101561089f57600080fd5b5051600160a060020a038b166000818152600860208181526040808420815160eb60020a620cae8d02815260038101829052825190819003602301812054969095529290915260d060020a65746f6b656e73028352600683019190915251908190036026019020549197509550861061095657600160a060020a038a1660009081526008602052604090819020815160d060020a65746f6b656e730281526006810191909152905190819003602601902054610958565b855b9350600092505b600654831015610ae457600060068481548110151561097a57fe5b90600052602060002090600202016001015411151561099857610ad9565b60068054849081106109a657fe5b90600052602060002090600202016000015485600354600a0a028115156109c957fe5b0491506006838154811015156109db57fe5b906000526020600020906002020160010154821115610a17576006805484908110610a0257fe5b90600052602060002090600202016001015491505b83821115610a23578391505b600354600a0a600684815481101515610a3857fe5b9060005260206000209060020201600001548302811515610a5557fe5b04905081600684815481101515610a6857fe5b60009182526020822060016002909202010180549290920390915598820198978101979481900394938290039385111580610aa4575060008411155b80610acf57506000600684815481101515610abb57fe5b906000526020600020906002020160010154115b15610ad957610ae4565b60019092019161095f565b600160a060020a038a1660009081526008602052604090819020815160d060020a65746f6b656e730281526006810191909152905190819003602601902054610b33908a63ffffffff611aa716565b600160a060020a038b166000818152600860208181526040808420815160d060020a65746f6b656e7302815260068101829052825190819003602601812097909755949093525260eb60020a620cae8d02835260038301919091525190819003602301902054610ba9908963ffffffff611aa716565b600160a060020a03808c166000818152600860209081526040808320815160eb60020a620cae8d02815260038101919091528151908190036023018120969096557fa9059cbb0000000000000000000000000000000000000000000000000000000086526004860193909352602485018e90529151928b169363a9059cbb936044808301949391928390030190829087803b158015610c4757600080fd5b505af1158015610c5b573d6000803e3d6000fd5b505050506040513d6020811015610c7157600080fd5b5050604080518a8152602081018a90528151600160a060020a038d16927fed7a144fad14804d5c249145e3e0e2b63a9eb455b76aee5bc92d711e9bba3e4a928290030190a25b50505050505050915091565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610d465780601f10610d1b57610100808354040283529160200191610d46565b820191906000526020600020905b815481529060010190602001808311610d2957829003601f168201915b505050505081565b600054600160a060020a03163314610d6557600080fd5b6005805460ff19169055565b600192915050565b60008054600160a060020a03163314610d9157600080fd5b5060058054600160a060020a0383166101000274ffffffffffffffffffffffffffffffffffffffff00199091161790556001919050565b600160a060020a03811660009081526008602052604090819020815160d060020a65746f6b656e730281526006810191909152905190819003602601902054919050565b600080805260076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df54600454610e4a9163ffffffff611aa716565b90505b90565b60055460ff1681565b60019392505050565b600080548190600160a060020a03163314610e7c57600080fd5b600554604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610100909204600160a060020a0316935083916370a08231916024808201926020929091908290030181600087803b158015610ee957600080fd5b505af1158015610efd573d6000803e3d6000fd5b505050506040513d6020811015610f1357600080fd5b505190506000811115610fbd5760008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519185169263a9059cbb926044808401936020939083900390910190829087803b158015610f9057600080fd5b505af1158015610fa4573d6000803e3d6000fd5b505050506040513d6020811015610fba57600080fd5b50505b600054600160a060020a0316ff5b60035481565b60008054600160a060020a03163314610fe957600080fd5b600160a060020a038216600090815260076020526040902054610730908390611859565b60065490565b6000806001600680549050101561102d5760009150611092565b5060005b600654811015611092578260068281548110151561104b57fe5b906000526020600020906002020160000154141561108a57600680548290811061107157fe5b9060005260206000209060020201600101549150611092565b600101611031565b50919050565b6000806006838154811015156110aa57fe5b90600052602060002090600202016000015491506006838154811015156110cd57fe5b9060005260206000209060020201600101549050915091565b600080548190600160a060020a0316331461110057600080fd5b6000831015801561113a57506004548310158061113a575060008054600160a060020a031681526007602052604090205460045484900311155b151561114557600080fd5b5060045460009083106111dd5760045461116690849063ffffffff611aa716565b60008054600160a060020a0316815260076020526040902054909150611192908263ffffffff61072016565b60008054600160a060020a03908116825260076020908152604080842094909455825484518681529451921693600080516020611b05833981519152929081900390910190a3611264565b6004546111f0908463ffffffff611aa716565b60008054600160a060020a031681526007602052604090205490915061121c908263ffffffff611aa716565b60008054600160a060020a039081168252600760209081526040808420949094558254845186815294519394921692600080516020611b058339815191529281900390910190a35b5050600455600190565b600080548190600160a060020a0316331461128857600080fd5b61129183610736565b91509150915091565b600054600160a060020a031633146112b157600080fd5b604080518082019091528281526020810182905260068054859081106112d357fe5b60009182526020918290208351600290920201908155910151600190910155505050565b600160a060020a031660009081526007602052604090205490565b60008060006001600680549050101561132a576113b3565b5060005b6006548110156113b357600060068281548110151561134957fe5b90600052602060002090600202016001015411156113ab57600680548290811061136f57fe5b906000526020600020906002020160000154925060068181548110151561139257fe5b90600052602060002090600202016001015491506113b3565b60010161132e565b509091565b6000805460609190600160a060020a031633146113d457600080fd5b600654600111156113e4576114cc565b6006805480602002602001604051908101604052809291908181526020016000905b82821015611445576000848152602090819020604080518082019091526002850290910180548252600190810154828401529083529092019101611406565b505050509150600660006114599190611abc565b5060005b81518110156114cc5782828281518110151561147557fe5b6020908102909101015151146114c4576006828281518110151561149557fe5b602090810290910181015182546001818101855560009485529383902082516002909202019081559101519101555b60010161145d565b505050565b600054600160a060020a031633146114e857600080fd5b60408051808201909152918252602082019081526006805460018101825560009190915291517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290930292830155517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d4090910155565b600054600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610d465780601f10610d1b57610100808354040283529160200191610d46565b60008054600160a060020a031633146115e157600080fd5b50600160a060020a0381166000818152600860208181526040808420815160eb60020a620cae8d0281526003810182905282519081900360230181208690559585529290915260d060020a65746f6b656e7302845260068401919091525191829003602601909120556001919050565b60008054600160a060020a0316331461166957600080fd5b600554610730906101009004600160a060020a031683611922565b600080548190600160a060020a03163314806116ad5750600054600160a060020a038581169116145b806116c05750600160a060020a03841630145b15156116cb57600080fd5b600054600160a060020a031633146116ee57600054600160a060020a03166116f0565b835b33600090815260076020526040902054909150611713908463ffffffff611aa716565b3360009081526007602052604080822092909255600160a060020a03831681522054611745908463ffffffff61072016565b600160a060020a038216600081815260076020908152604091829020939093558051868152905191923392600080516020611b058339815191529281900390910190a3600054600160a060020a0382811691161415611829573360009081526008602052604090819020815160d060020a65746f6b656e7302815260068101919091529051908190036026019020546117e4908463ffffffff61072016565b3360008181526008602052604090819020815160d060020a65746f6b656e73028152600681019190915290519081900360260190209190915561182690610736565b50505b5060019392505050565b600054600160a060020a0316331461184a57600080fd5b6005805460ff19166001179055565b60008054600160a060020a0316331461187157600080fd5b600160a060020a03831660009081526007602052604090205461189a908363ffffffff611aa716565b600160a060020a03808516600090815260076020526040808220939093558054909116815220546118d1908363ffffffff61072016565b60008054600160a060020a039081168252600760209081526040808420949094559154835186815293519082169391871692600080516020611b05833981519152928290030190a350600192915050565b60008054600160a060020a0316331461193a57600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b1580156119aa57600080fd5b505af11580156119be573d6000803e3d6000fd5b505050506040513d60208110156119d457600080fd5b50519392505050565b600092915050565b600054600160a060020a031633146119fc57600080fd5b611a0860066000611abc565b565b60008054600160a060020a03163314611a2257600080fd5b506000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392831617908190551690565b600160a060020a03811660009081526008602052604090819020815160eb60020a620cae8d0281526003810191909152905190819003602301902054919050565b6005546101009004600160a060020a031681565b600082821115611ab657600080fd5b50900390565b5080546000825560020290600052602060002090810190611add9190611ae0565b50565b610e4d91905b80821115611b005760008082556001820155600201611ae6565b50905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820eb55193af384bd3464b38c6da89f8f717900fe86db51724ea44e936dd6d4ab980029

Swarm Source

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