ETH Price: $3,138.94 (-4.15%)

Token

VNDC (VNDC)
 

Overview

Max Total Supply

83,287,085,935 VNDC

Holders

224,835 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH (-0.11%)

Onchain Market Cap

$3,339,812.15

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 0 Decimals)

Balance
999 VNDC

Value
$0.04 ( ~1.2743164950774E-05 Eth) [0.0000%]
0x02b654af983af7807bf8bda772ba45851ac1cec2
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Officially launched in 2017, VNDC is a stable cryptocurrency pegged 1:1 to Vietnam Dong (VND), developed by Jade Labs Singapore., LTD and partners. VNDC is released simultaneously on Ethereum, Binance Smart Chain and ONUS Chain.

Market

Volume (24H):$336.74
Market Capitalization:$0.00
Circulating Supply:0.00 VNDC
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
MiaSwap
0X5DF107F23D3EC5EFA926B999CE285A88955AE56B-0XC1D3A18C32C42D5C033C2D4BFC151DB8FD2C9D81$0.00
0.0000000 Eth
$233.54
14,479.414 0X5DF107F23D3EC5EFA926B999CE285A88955AE56B
0.5556%
2
MiaSwap
0XC1D3A18C32C42D5C033C2D4BFC151DB8FD2C9D81-0XFF276C6BCA1F66FD54A8915E830735D6AB0C7B09$0.00
0.0000000 Eth
$101.66
2,535,344.000 0XC1D3A18C32C42D5C033C2D4BFC151DB8FD2C9D81
97.2901%
3
MiaSwap
0X07430E1482574389BC0E5D33CFB65280E881EE8C-0XC1D3A18C32C42D5C033C2D4BFC151DB8FD2C9D81$0.00
0.0000000 Eth
$19.30
280.620 0X07430E1482574389BC0E5D33CFB65280E881EE8C
0.0108%
4
PancakeSwap V3 (BSC)
0XDDE5B33A56F3F1C22E5A6BD8429E6AD508BFF24E-0X55D398326F99059FF775485246999027B3197955$0.00
0.0000000 Eth
$2.23
55,860.000 0XDDE5B33A56F3F1C22E5A6BD8429E6AD508BFF24E
2.1435%

Contract Source Code Verified (Exact Match)

Contract Name:
VNDCToken

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-08-30
*/

pragma solidity ^0.4.11;

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


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control 
 * functions, this simplifies the implementation of "user permissions". 
 */
contract Ownable {
  address public owner;


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


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


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

}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev modifier to allow actions only when the contract IS paused
   */
  modifier whenNotPaused() {
    if (paused) throw;
    _;
  }

  /**
   * @dev modifier to allow actions only when the contract IS NOT paused
   */
  modifier whenPaused {
    if (!paused) throw;
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused returns (bool) {
    paused = true;
    Pause();
    return true;
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused returns (bool) {
    paused = false;
    Unpause();
    return true;
  }
}

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20Basic {
  uint public _totalSupply;
  function totalSupply() constant returns (uint);
  function balanceOf(address who) constant returns (uint);
  function transfer(address to, uint value);
  event Transfer(address indexed from, address indexed to, uint value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) constant returns (uint);
  function transferFrom(address from, address to, uint value);
  function approve(address spender, uint value);
  event Approval(address indexed owner, address indexed spender, uint value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is Ownable, ERC20Basic {
  using SafeMath for uint;

  mapping(address => uint) balances;

  // additional variables for use if transaction fees ever became necessary
  uint public basisPointsRate = 0;
  uint public maximumFee = 0;
  uint public minimumFee = 0;

  /**
   * @dev Fix for the ERC20 short address attack.
   */
  modifier onlyPayloadSize(uint size) {
     if(msg.data.length < size + 4) {
       throw;
     }
     _;
  }

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) {
    uint fee = (_value.mul(basisPointsRate)).div(100);
    if (fee > maximumFee) {
      fee = maximumFee;
    }
    
    if(basisPointsRate > 0)
    {
        if (fee < minimumFee) {
          fee = minimumFee;
        }
    }
    uint sendAmount = _value.sub(fee);
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(sendAmount);
    balances[owner] = balances[owner].add(fee);
    Transfer(msg.sender, _to, sendAmount);
    Transfer(msg.sender, owner, fee);
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) constant returns (uint balance) {
    return balances[_owner];
  }

}


/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is BasicToken, ERC20 {

  mapping (address => mapping (address => uint)) allowed;

  uint constant MAX_UINT = 2**256 - 1;

  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint _value) onlyPayloadSize(3 * 32) {
    var _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // if (_value > _allowance) throw;

    uint fee = (_value.mul(basisPointsRate)).div(100);
    if (fee > maximumFee) {
      fee = maximumFee;
    }
    
    if(basisPointsRate > 0)
    {
        if (fee < minimumFee) {
          fee = minimumFee;
        }
    }
    
    uint sendAmount = _value.sub(fee);

    balances[_to] = balances[_to].add(sendAmount);
    balances[owner] = balances[owner].add(fee);
    balances[_from] = balances[_from].sub(_value);
    if (_allowance < MAX_UINT) {
      allowed[_from][msg.sender] = _allowance.sub(_value);
    }
    Transfer(_from, _to, sendAmount);
    Transfer(_from, owner, fee);
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint _value) onlyPayloadSize(2 * 32) {

    // To change the approve amount you first have to reduce the addresses`
    //  allowance to zero by calling `approve(_spender, 0)` if it is not
    //  already 0 to mitigate the race condition described here:
    //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) throw;

    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
  }

  /**
   * @dev Function to check the amount of tokens than an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) constant returns (uint remaining) {
    return allowed[_owner][_spender];
  }

}

contract UpgradedStandardToken is StandardToken{
        // those methods are called by the legacy contract
        // and they must ensure msg.sender to be the contract address
        function transferByLegacy(address from, address to, uint value);
        function transferFromByLegacy(address sender, address from, address spender, uint value);
        function approveByLegacy(address from, address spender, uint value);
}
 
/// VNDC Token Contract - vndc.io

contract VNDCToken is Pausable, StandardToken {

  string public name;
  string public symbol;
  uint public decimals;
  address public upgradedAddress;
  bool public deprecated;
  mapping (address => bool) public isBlackListed;
   
  
  //  The contract can be initialized with a number of tokens
  //  All the tokens are deposited to the owner address
  //
  // @param _balance Initial supply of the contract
  // @param _name Token Name
  // @param _symbol Token symbol
  // @param _decimals Token decimals
  function VNDCToken(){
      _totalSupply = 100000000000 * 10**uint(decimals);
      name = "VNDC";
      symbol = "VNDC";
      balances[owner] = 100000000000 * 10**uint(decimals);
      deprecated = false;
      
  }

  // Forward ERC20 methods to upgraded contract if this one is deprecated
  function transfer(address _to, uint _value) whenNotPaused   {
      
        require(!isBlackListed[_to]);
        require(!isBlackListed[msg.sender]);
        if (deprecated) {
          return UpgradedStandardToken(upgradedAddress).transferByLegacy(msg.sender, _to, _value);
        } else {
          return super.transfer(_to, _value);
        }
       
     
  }

  // Forward ERC20 methods to upgraded contract if this one is deprecated
  function transferFrom(address _from, address _to, uint _value) whenNotPaused   {
    
        require(!isBlackListed[_from]);
        require(!isBlackListed[_to]);
        require(!isBlackListed[msg.sender]);

        if (deprecated) {
          return UpgradedStandardToken(upgradedAddress).transferFromByLegacy(msg.sender, _from, _to, _value);
        } else {
          return super.transferFrom(_from, _to, _value);
        }
        
       
  }

  // Forward ERC20 methods to upgraded contract if this one is deprecated
  function balanceOf(address who) constant returns (uint){
    if (deprecated) {
      return UpgradedStandardToken(upgradedAddress).balanceOf(who);
    } else {
      return super.balanceOf(who);
    }
  }

  // Forward ERC20 methods to upgraded contract if this one is deprecated
  function approve(address _spender, uint _value) onlyPayloadSize(2 * 32) {
      
    if (deprecated) {
      return UpgradedStandardToken(upgradedAddress).approveByLegacy(msg.sender, _spender, _value);
    } else {
      return super.approve(_spender, _value);
    }
  }

  // Forward ERC20 methods to upgraded contract if this one is deprecated
  function allowance(address _owner, address _spender) constant returns (uint remaining) {

    if (deprecated) {
      return StandardToken(upgradedAddress).allowance(_owner, _spender);
    } else {
      return super.allowance(_owner, _spender);
    }
  }

  // deprecate current contract in favour of a new one
  function deprecate(address _upgradedAddress) onlyOwner {
    deprecated = true;
    upgradedAddress = _upgradedAddress;
    Deprecate(_upgradedAddress);
  }

  // deprecate current contract if favour of a new one
  function totalSupply() constant returns (uint){
    if (deprecated) {
      return StandardToken(upgradedAddress).totalSupply();
    } else {
      return _totalSupply;
    }
  }

  // Issue a new amount of tokens
  // these tokens are deposited into the owner address
  //
  // @param _amount Number of tokens to be issued
  function issue(uint amount) onlyOwner {
    if (_totalSupply + amount < _totalSupply) throw;
    if (balances[owner] + amount < balances[owner]) throw;

    balances[owner] += amount;
    _totalSupply += amount;
    Issue(amount);
  }

  // Burn tokens.
  // These tokens are burned from the owner address
  // @param _amount Number of tokens to be issued
  function burn(uint amount) onlyOwner {
      if (_totalSupply < amount) throw;
      if (balances[owner] < amount) throw;

      _totalSupply -= amount;
      balances[owner] -= amount;
      Burn(amount);
  }

  function setParams(uint newBasisPoints, uint newMaxFee, uint newMinFee) onlyOwner {
      // Ensure transparency by hardcoding limit beyond which fees can never be added
    
      basisPointsRate = newBasisPoints;
      minimumFee = newMinFee;
      maximumFee = newMaxFee;
      Params(basisPointsRate, maximumFee, minimumFee);
  }
  
   function getBlackListStatus(address _maker) external constant returns (bool) {
        return isBlackListed[_maker];
    }


    
    function addBlackList (address _evilUser) public onlyOwner {
        isBlackListed[_evilUser] = true;
        AddedBlackList(_evilUser);
    }

    function removeBlackList (address _clearedUser) public onlyOwner {
        isBlackListed[_clearedUser] = false;
        RemovedBlackList(_clearedUser);
    }

    function destroyBlackFunds (address _blackListedUser) public onlyOwner {
        require(isBlackListed[_blackListedUser]);
        uint dirtyFunds = balanceOf(_blackListedUser);
        balances[_blackListedUser] = 0;
        _totalSupply -= dirtyFunds;
        DestroyedBlackFunds(_blackListedUser, dirtyFunds);
    }

    event DestroyedBlackFunds(address _blackListedUser, uint _balance);

    event AddedBlackList(address _user);

    event RemovedBlackList(address _user);
    

  // Called when new token are issued
  event Issue(uint amount);

  // Called when tokens are Burned
  event Burn(uint amount);

  // Called when contract is deprecated
  event Deprecate(address newAddress);

  // Called if contract ever adds fees
  event Params(uint feeBasisPoints, uint maxFee, uint minFee);
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_upgradedAddress","type":"address"}],"name":"deprecate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_evilUser","type":"address"}],"name":"addBlackList","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minimumFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"upgradedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maximumFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newBasisPoints","type":"uint256"},{"name":"newMaxFee","type":"uint256"},{"name":"newMinFee","type":"uint256"}],"name":"setParams","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"issue","outputs":[],"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":true,"inputs":[],"name":"basisPointsRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isBlackListed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_clearedUser","type":"address"}],"name":"removeBlackList","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_blackListedUser","type":"address"}],"name":"destroyBlackFunds","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_blackListedUser","type":"address"},{"indexed":false,"name":"_balance","type":"uint256"}],"name":"DestroyedBlackFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_user","type":"address"}],"name":"RemovedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAddress","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"feeBasisPoints","type":"uint256"},{"indexed":false,"name":"maxFee","type":"uint256"},{"indexed":false,"name":"minFee","type":"uint256"}],"name":"Params","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]

60606040526000805460a060020a60ff02191681556003819055600481905560055534156200002a57fe5b5b5b60008054600160a060020a03191633600160a060020a03161790555b600954600a0a64174876e800026001556040805180820190915260048082527f564e44430000000000000000000000000000000000000000000000000000000060209092019182526200009e9160079162000124565b506040805180820190915260048082527f564e4443000000000000000000000000000000000000000000000000000000006020909201918252620000e59160089162000124565b5060095460008054600160a060020a0316815260026020526040902064174876e800600a92830a029055805460a060020a60ff02191690555b620001ce565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016757805160ff191683800117855562000197565b8280016001018555821562000197579182015b82811115620001975782518255916020019190600101906200017a565b5b50620001a6929150620001aa565b5090565b620001cb91905b80821115620001a65760008155600101620001b1565b5090565b90565b61182980620001de6000396000f300606060405236156101725763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101745780630753c30c14610204578063095ea7b3146102225780630e136b19146102435780630ecb93c01461026757806318160ddd146102855780631a7626e7146102a757806323b872dd146102c957806326976e3f146102f0578063313ce5671461031c578063353907141461033e5780633eaaf86b146103605780633f4ba83a1461038257806342966c68146103a657806359bf1abe146103bb5780635a0ce676146103eb5780635c975abb1461040657806370a082311461042a5780638456cb59146104585780638da5cb5b1461047c57806395d89b41146104a8578063a9059cbb14610538578063cc872b6614610559578063dd62ed3e1461056e578063dd644f72146105a2578063e47d6060146105c4578063e4997dc5146105f4578063f2fde38b14610612578063f3bdc22814610630575bfe5b341561017c57fe5b61018461064e565b6040805160208082528351818301528351919283929083019185019080838382156101ca575b8051825260208311156101ca57601f1990920191602091820191016101aa565b505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020c57fe5b610220600160a060020a03600435166106dc565b005b341561022a57fe5b610220600160a060020a036004351660243561077b565b005b341561024b57fe5b610253610838565b604080519115158252519081900360200190f35b341561026f57fe5b610220600160a060020a0360043516610848565b005b341561028d57fe5b6102956108c1565b60408051918252519081900360200190f35b34156102af57fe5b610295610960565b60408051918252519081900360200190f35b34156102d157fe5b610220600160a060020a0360043581169060243516604435610966565b005b34156102f857fe5b610300610aac565b60408051600160a060020a039092168252519081900360200190f35b341561032457fe5b610295610abb565b60408051918252519081900360200190f35b341561034657fe5b610295610ac1565b60408051918252519081900360200190f35b341561036857fe5b610295610ac7565b60408051918252519081900360200190f35b341561038a57fe5b610253610acd565b604080519115158252519081900360200190f35b34156103ae57fe5b610220600435610b51565b005b34156103c357fe5b610253600160a060020a0360043516610c06565b604080519115158252519081900360200190f35b34156103f357fe5b610220600435602435604435610c28565b005b341561040e57fe5b610253610c9a565b604080519115158252519081900360200190f35b341561043257fe5b610295600160a060020a0360043516610caa565b60408051918252519081900360200190f35b341561046057fe5b610253610d60565b604080519115158252519081900360200190f35b341561048457fe5b610300610de9565b60408051600160a060020a039092168252519081900360200190f35b34156104b057fe5b610184610df8565b6040805160208082528351818301528351919283929083019185019080838382156101ca575b8051825260208311156101ca57601f1990920191602091820191016101aa565b505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561054057fe5b610220600160a060020a0360043516602435610e86565b005b341561056157fe5b610220600435610f97565b005b341561057657fe5b610295600160a060020a036004358116906024351661104d565b60408051918252519081900360200190f35b34156105aa57fe5b610295611109565b60408051918252519081900360200190f35b34156105cc57fe5b610253600160a060020a036004351661110f565b604080519115158252519081900360200190f35b34156105fc57fe5b610220600160a060020a0360043516611124565b005b341561061a57fe5b610220600160a060020a036004351661119a565b005b341561063857fe5b610220600160a060020a03600435166111f3565b005b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106d45780601f106106a9576101008083540402835291602001916106d4565b820191906000526020600020905b8154815290600101906020018083116106b757829003601f168201915b505050505081565b60005433600160a060020a039081169116146106f85760006000fd5b600a805460a060020a74ff0000000000000000000000000000000000000000199091161773ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831690811790915560408051918252517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e916020908290030190a15b5b50565b6040604436101561078c5760006000fd5b600a5460a060020a900460ff161561082657600a54604080517faee92d33000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301528681166024830152604482018690529151919092169163aee92d3391606480830192600092919082900301818387803b151561081057fe5b6102c65a03f1151561081e57fe5b505050610830565b61083083836112a7565b5b5b5b505050565b600a5460a060020a900460ff1681565b60005433600160a060020a039081169116146108645760006000fd5b600160a060020a0381166000818152600b6020908152604091829020805460ff19166001179055815192835290517f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9281900390910190a15b5b50565b600a5460009060a060020a900460ff161561095757600a54604080516000602091820181905282517f18160ddd0000000000000000000000000000000000000000000000000000000081529251600160a060020a03909416936318160ddd9360048082019493918390030190829087803b151561093a57fe5b6102c65a03f1151561094857fe5b505060405151915061095c9050565b506001545b5b90565b60055481565b60005460a060020a900460ff161561097e5760006000fd5b600160a060020a0383166000908152600b602052604090205460ff16156109a55760006000fd5b600160a060020a0382166000908152600b602052604090205460ff16156109cc5760006000fd5b600160a060020a0333166000908152600b602052604090205460ff16156109f35760006000fd5b600a5460a060020a900460ff1615610a9557600a54604080517f8b477adb000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152868116602483015285811660448301526064820185905291519190921691638b477adb91608480830192600092919082900301818387803b151561081057fe5b6102c65a03f1151561081e57fe5b505050610830565b61083083838361135a565b610830565b5b5b505050565b600a54600160a060020a031681565b60095481565b60045481565b60015481565b6000805433600160a060020a03908116911614610aea5760006000fd5b60005460a060020a900460ff161515610b035760006000fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a15060015b5b5b90565b60005433600160a060020a03908116911614610b6d5760006000fd5b806001541015610b7d5760006000fd5b60008054600160a060020a031681526002602052604090205481901015610ba45760006000fd5b60018054829003905560008054600160a060020a031681526002602090815260409182902080548490039055815183815291517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9281900390910190a15b5b50565b600160a060020a0381166000908152600b602052604090205460ff165b919050565b60005433600160a060020a03908116911614610c445760006000fd5b600383905560058190556004829055604080518481526020810184905280820183905290517fd16858b87f79d06c5d7f4cdf7f0943a3b343a9eb149c10ec26e7bcaae7f19bc59181900360600190a15b5b505050565b60005460a060020a900460ff1681565b600a5460009060a060020a900460ff1615610d4a57600a54604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152935193909416936370a08231936024808301949391928390030190829087803b1515610d2d57fe5b6102c65a03f11515610d3b57fe5b5050604051519150610c239050565b610d5382611569565b9050610c23565b5b919050565b6000805433600160a060020a03908116911614610d7d5760006000fd5b60005460a060020a900460ff1615610d955760006000fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a15060015b5b5b90565b600054600160a060020a031681565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106d45780601f106106a9576101008083540402835291602001916106d4565b820191906000526020600020905b8154815290600101906020018083116106b757829003601f168201915b505050505081565b60005460a060020a900460ff1615610e9e5760006000fd5b600160a060020a0382166000908152600b602052604090205460ff1615610ec55760006000fd5b600160a060020a0333166000908152600b602052604090205460ff1615610eec5760006000fd5b600a5460a060020a900460ff1615610f8657600a54604080517f6e18980a000000000000000000000000000000000000000000000000000000008152600160a060020a03338116600483015285811660248301526044820185905291519190921691636e18980a91606480830192600092919082900301818387803b1515610f7057fe5b6102c65a03f11515610f7e57fe5b505050610f90565b610f908282611588565b5b5b5b5050565b60005433600160a060020a03908116911614610fb35760006000fd5b6001548181011015610fc55760006000fd5b60008054600160a060020a03168152600260205260409020548181011015610fed5760006000fd5b60008054600160a060020a03168152600260209081526040918290208054840190556001805484019055815183815291517fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a9281900390910190a15b5b50565b600a5460009060a060020a900460ff16156110f557600a54604080516000602091820181905282517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015287811660248301529351939094169363dd62ed3e936044808301949391928390030190829087803b15156110d857fe5b6102c65a03f115156110e657fe5b50506040515191506111029050565b6110ff838361171e565b90505b5b92915050565b60035481565b600b6020526000908152604090205460ff1681565b60005433600160a060020a039081169116146111405760006000fd5b600160a060020a0381166000818152600b6020908152604091829020805460ff19169055815192835290517fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9281900390910190a15b5b50565b60005433600160a060020a039081169116146111b65760006000fd5b600160a060020a03811615610777576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b6000805433600160a060020a039081169116146112105760006000fd5b600160a060020a0382166000908152600b602052604090205460ff1615156112385760006000fd5b61124182610caa565b600160a060020a0383166000818152600260209081526040808320929092556001805485900390558151928352820183905280519293507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c692918290030190a15b5b5050565b604060443610156112b85760006000fd5b81158015906112eb5750600160a060020a0333811660009081526006602090815260408083209387168352929052205415155b156112f65760006000fd5b600160a060020a03338116600081815260066020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35b5b505050565b600080806060606436101561136f5760006000fd5b600160a060020a03808816600090815260066020908152604080832033909416835292905220546003549094506113c0906064906113b490889063ffffffff61174b16565b9063ffffffff61177a16565b92506004548311156113d25760045492505b600060035411156113ed576005548310156113ed5760055492505b5b6113fe858463ffffffff61179716565b600160a060020a03871660009081526002602052604090205490925061142a908363ffffffff6117b016565b600160a060020a0380881660009081526002602052604080822093909355805490911681522054611461908463ffffffff6117b016565b60008054600160a060020a0390811682526002602052604080832093909355891681522054611496908663ffffffff61179716565b600160a060020a0388166000908152600260205260409020556000198410156114f1576114c9848663ffffffff61179716565b600160a060020a03808916600090815260066020908152604080832033909416835292905220555b85600160a060020a031687600160a060020a03166000805160206117de833981519152846040518082815260200191505060405180910390a3600054604080518581529051600160a060020a03928316928a16916000805160206117de833981519152919081900360200190a35b5b50505050505050565b600160a060020a0381166000908152600260205260409020545b919050565b6000806040604436101561159c5760006000fd5b6115c260646113b46003548761174b90919063ffffffff16565b9063ffffffff61177a16565b92506004548311156115d45760045492505b600060035411156115ef576005548310156115ef5760055492505b5b611600848463ffffffff61179716565b600160a060020a03331660009081526002602052604090205490925061162c908563ffffffff61179716565b600160a060020a033381166000908152600260205260408082209390935590871681522054611661908363ffffffff6117b016565b600160a060020a0380871660009081526002602052604080822093909355805490911681522054611698908463ffffffff6117b016565b60008054600160a060020a0390811682526002602090815260409283902093909355815185815291518882169333909216926000805160206117de83398151915292908290030190a3600054604080518581529051600160a060020a03928316923316916000805160206117de833981519152919081900360200190a35b5b5050505050565b600160a060020a038083166000908152600660209081526040808320938516835292905220545b92915050565b600082820261176f84158061176a575083858381151561176757fe5b04145b6117cc565b8091505b5092915050565b60006000828481151561178957fe5b0490508091505b5092915050565b60006117a5838311156117cc565b508082035b92915050565b600082820161176f848210156117cc565b8091505b5092915050565b8015156107775760006000fd5b5b505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058209b27b6d796ed9da03f5c422ec87773362f9945c101005ccb6f12e1234484eb990029

Deployed Bytecode

0x606060405236156101725763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101745780630753c30c14610204578063095ea7b3146102225780630e136b19146102435780630ecb93c01461026757806318160ddd146102855780631a7626e7146102a757806323b872dd146102c957806326976e3f146102f0578063313ce5671461031c578063353907141461033e5780633eaaf86b146103605780633f4ba83a1461038257806342966c68146103a657806359bf1abe146103bb5780635a0ce676146103eb5780635c975abb1461040657806370a082311461042a5780638456cb59146104585780638da5cb5b1461047c57806395d89b41146104a8578063a9059cbb14610538578063cc872b6614610559578063dd62ed3e1461056e578063dd644f72146105a2578063e47d6060146105c4578063e4997dc5146105f4578063f2fde38b14610612578063f3bdc22814610630575bfe5b341561017c57fe5b61018461064e565b6040805160208082528351818301528351919283929083019185019080838382156101ca575b8051825260208311156101ca57601f1990920191602091820191016101aa565b505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020c57fe5b610220600160a060020a03600435166106dc565b005b341561022a57fe5b610220600160a060020a036004351660243561077b565b005b341561024b57fe5b610253610838565b604080519115158252519081900360200190f35b341561026f57fe5b610220600160a060020a0360043516610848565b005b341561028d57fe5b6102956108c1565b60408051918252519081900360200190f35b34156102af57fe5b610295610960565b60408051918252519081900360200190f35b34156102d157fe5b610220600160a060020a0360043581169060243516604435610966565b005b34156102f857fe5b610300610aac565b60408051600160a060020a039092168252519081900360200190f35b341561032457fe5b610295610abb565b60408051918252519081900360200190f35b341561034657fe5b610295610ac1565b60408051918252519081900360200190f35b341561036857fe5b610295610ac7565b60408051918252519081900360200190f35b341561038a57fe5b610253610acd565b604080519115158252519081900360200190f35b34156103ae57fe5b610220600435610b51565b005b34156103c357fe5b610253600160a060020a0360043516610c06565b604080519115158252519081900360200190f35b34156103f357fe5b610220600435602435604435610c28565b005b341561040e57fe5b610253610c9a565b604080519115158252519081900360200190f35b341561043257fe5b610295600160a060020a0360043516610caa565b60408051918252519081900360200190f35b341561046057fe5b610253610d60565b604080519115158252519081900360200190f35b341561048457fe5b610300610de9565b60408051600160a060020a039092168252519081900360200190f35b34156104b057fe5b610184610df8565b6040805160208082528351818301528351919283929083019185019080838382156101ca575b8051825260208311156101ca57601f1990920191602091820191016101aa565b505050905090810190601f1680156101f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561054057fe5b610220600160a060020a0360043516602435610e86565b005b341561056157fe5b610220600435610f97565b005b341561057657fe5b610295600160a060020a036004358116906024351661104d565b60408051918252519081900360200190f35b34156105aa57fe5b610295611109565b60408051918252519081900360200190f35b34156105cc57fe5b610253600160a060020a036004351661110f565b604080519115158252519081900360200190f35b34156105fc57fe5b610220600160a060020a0360043516611124565b005b341561061a57fe5b610220600160a060020a036004351661119a565b005b341561063857fe5b610220600160a060020a03600435166111f3565b005b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106d45780601f106106a9576101008083540402835291602001916106d4565b820191906000526020600020905b8154815290600101906020018083116106b757829003601f168201915b505050505081565b60005433600160a060020a039081169116146106f85760006000fd5b600a805460a060020a74ff0000000000000000000000000000000000000000199091161773ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831690811790915560408051918252517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e916020908290030190a15b5b50565b6040604436101561078c5760006000fd5b600a5460a060020a900460ff161561082657600a54604080517faee92d33000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301528681166024830152604482018690529151919092169163aee92d3391606480830192600092919082900301818387803b151561081057fe5b6102c65a03f1151561081e57fe5b505050610830565b61083083836112a7565b5b5b5b505050565b600a5460a060020a900460ff1681565b60005433600160a060020a039081169116146108645760006000fd5b600160a060020a0381166000818152600b6020908152604091829020805460ff19166001179055815192835290517f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9281900390910190a15b5b50565b600a5460009060a060020a900460ff161561095757600a54604080516000602091820181905282517f18160ddd0000000000000000000000000000000000000000000000000000000081529251600160a060020a03909416936318160ddd9360048082019493918390030190829087803b151561093a57fe5b6102c65a03f1151561094857fe5b505060405151915061095c9050565b506001545b5b90565b60055481565b60005460a060020a900460ff161561097e5760006000fd5b600160a060020a0383166000908152600b602052604090205460ff16156109a55760006000fd5b600160a060020a0382166000908152600b602052604090205460ff16156109cc5760006000fd5b600160a060020a0333166000908152600b602052604090205460ff16156109f35760006000fd5b600a5460a060020a900460ff1615610a9557600a54604080517f8b477adb000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152868116602483015285811660448301526064820185905291519190921691638b477adb91608480830192600092919082900301818387803b151561081057fe5b6102c65a03f1151561081e57fe5b505050610830565b61083083838361135a565b610830565b5b5b505050565b600a54600160a060020a031681565b60095481565b60045481565b60015481565b6000805433600160a060020a03908116911614610aea5760006000fd5b60005460a060020a900460ff161515610b035760006000fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a15060015b5b5b90565b60005433600160a060020a03908116911614610b6d5760006000fd5b806001541015610b7d5760006000fd5b60008054600160a060020a031681526002602052604090205481901015610ba45760006000fd5b60018054829003905560008054600160a060020a031681526002602090815260409182902080548490039055815183815291517fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb9281900390910190a15b5b50565b600160a060020a0381166000908152600b602052604090205460ff165b919050565b60005433600160a060020a03908116911614610c445760006000fd5b600383905560058190556004829055604080518481526020810184905280820183905290517fd16858b87f79d06c5d7f4cdf7f0943a3b343a9eb149c10ec26e7bcaae7f19bc59181900360600190a15b5b505050565b60005460a060020a900460ff1681565b600a5460009060a060020a900460ff1615610d4a57600a54604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152935193909416936370a08231936024808301949391928390030190829087803b1515610d2d57fe5b6102c65a03f11515610d3b57fe5b5050604051519150610c239050565b610d5382611569565b9050610c23565b5b919050565b6000805433600160a060020a03908116911614610d7d5760006000fd5b60005460a060020a900460ff1615610d955760006000fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a15060015b5b5b90565b600054600160a060020a031681565b6008805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106d45780601f106106a9576101008083540402835291602001916106d4565b820191906000526020600020905b8154815290600101906020018083116106b757829003601f168201915b505050505081565b60005460a060020a900460ff1615610e9e5760006000fd5b600160a060020a0382166000908152600b602052604090205460ff1615610ec55760006000fd5b600160a060020a0333166000908152600b602052604090205460ff1615610eec5760006000fd5b600a5460a060020a900460ff1615610f8657600a54604080517f6e18980a000000000000000000000000000000000000000000000000000000008152600160a060020a03338116600483015285811660248301526044820185905291519190921691636e18980a91606480830192600092919082900301818387803b1515610f7057fe5b6102c65a03f11515610f7e57fe5b505050610f90565b610f908282611588565b5b5b5b5050565b60005433600160a060020a03908116911614610fb35760006000fd5b6001548181011015610fc55760006000fd5b60008054600160a060020a03168152600260205260409020548181011015610fed5760006000fd5b60008054600160a060020a03168152600260209081526040918290208054840190556001805484019055815183815291517fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a9281900390910190a15b5b50565b600a5460009060a060020a900460ff16156110f557600a54604080516000602091820181905282517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03888116600483015287811660248301529351939094169363dd62ed3e936044808301949391928390030190829087803b15156110d857fe5b6102c65a03f115156110e657fe5b50506040515191506111029050565b6110ff838361171e565b90505b5b92915050565b60035481565b600b6020526000908152604090205460ff1681565b60005433600160a060020a039081169116146111405760006000fd5b600160a060020a0381166000818152600b6020908152604091829020805460ff19169055815192835290517fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9281900390910190a15b5b50565b60005433600160a060020a039081169116146111b65760006000fd5b600160a060020a03811615610777576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b6000805433600160a060020a039081169116146112105760006000fd5b600160a060020a0382166000908152600b602052604090205460ff1615156112385760006000fd5b61124182610caa565b600160a060020a0383166000818152600260209081526040808320929092556001805485900390558151928352820183905280519293507f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c692918290030190a15b5b5050565b604060443610156112b85760006000fd5b81158015906112eb5750600160a060020a0333811660009081526006602090815260408083209387168352929052205415155b156112f65760006000fd5b600160a060020a03338116600081815260066020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a35b5b505050565b600080806060606436101561136f5760006000fd5b600160a060020a03808816600090815260066020908152604080832033909416835292905220546003549094506113c0906064906113b490889063ffffffff61174b16565b9063ffffffff61177a16565b92506004548311156113d25760045492505b600060035411156113ed576005548310156113ed5760055492505b5b6113fe858463ffffffff61179716565b600160a060020a03871660009081526002602052604090205490925061142a908363ffffffff6117b016565b600160a060020a0380881660009081526002602052604080822093909355805490911681522054611461908463ffffffff6117b016565b60008054600160a060020a0390811682526002602052604080832093909355891681522054611496908663ffffffff61179716565b600160a060020a0388166000908152600260205260409020556000198410156114f1576114c9848663ffffffff61179716565b600160a060020a03808916600090815260066020908152604080832033909416835292905220555b85600160a060020a031687600160a060020a03166000805160206117de833981519152846040518082815260200191505060405180910390a3600054604080518581529051600160a060020a03928316928a16916000805160206117de833981519152919081900360200190a35b5b50505050505050565b600160a060020a0381166000908152600260205260409020545b919050565b6000806040604436101561159c5760006000fd5b6115c260646113b46003548761174b90919063ffffffff16565b9063ffffffff61177a16565b92506004548311156115d45760045492505b600060035411156115ef576005548310156115ef5760055492505b5b611600848463ffffffff61179716565b600160a060020a03331660009081526002602052604090205490925061162c908563ffffffff61179716565b600160a060020a033381166000908152600260205260408082209390935590871681522054611661908363ffffffff6117b016565b600160a060020a0380871660009081526002602052604080822093909355805490911681522054611698908463ffffffff6117b016565b60008054600160a060020a0390811682526002602090815260409283902093909355815185815291518882169333909216926000805160206117de83398151915292908290030190a3600054604080518581529051600160a060020a03928316923316916000805160206117de833981519152919081900360200190a35b5b5050505050565b600160a060020a038083166000908152600660209081526040808320938516835292905220545b92915050565b600082820261176f84158061176a575083858381151561176757fe5b04145b6117cc565b8091505b5092915050565b60006000828481151561178957fe5b0490508091505b5092915050565b60006117a5838311156117cc565b508082035b92915050565b600082820161176f848210156117cc565b8091505b5092915050565b8015156107775760006000fd5b5b505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058209b27b6d796ed9da03f5c422ec87773362f9945c101005ccb6f12e1234484eb990029

Deployed Bytecode Sourcemap

8896:5595:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8949:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18:2:-1;;13:3;7:5;32;59:3;53:5;48:3;41:6;93:2;88:3;85:2;78:6;73:3;67:5;-1:-1;;152:3;;;;117:2;108:3;;;;130;172:5;167:4;181:3;3:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11706:160:0;;;;;;;;-1:-1:-1;;;;;11706:160:0;;;;;;;11024:277;;;;;;;;-1:-1:-1;;;;;11024:277:0;;;;;;;;;9057:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;13347:145;;;;;;;;-1:-1:-1;;;;;13347:145:0;;;;;;;11928:184;;;;;;;;;;;;;;;;;;;;;;;;;;4280:26;;;;;;;;;;;;;;;;;;;;;;;;;;10189:463;;;;;;;;-1:-1:-1;;;;;10189:463:0;;;;;;;;;;;;;;9022:30;;;;;;;;;;;;;;-1:-1:-1;;;;;9022:30:0;;;;;;;;;;;;;;8997:20;;;;;;;;;;;;;;;;;;;;;;;;;;4249:26;;;;;;;;;;;;;;;;;;;;;;;;;;3260:24;;;;;;;;;;;;;;;;;;;;;;;;;;2980:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;12636:216;;;;;;;;;;;;;;13207:124;;;;;;;;-1:-1:-1;;;;;13207:124:0;;;;;;;;;;;;;;;;;;;;;;;12858:340;;;;;;;;;;;;;;;;;;2360:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;10733:210;;;;;;;;-1:-1:-1;;;;;10733:210:0;;;;;;;;;;;;;;;;;;;;;2779:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;1486:20;;;;;;;;;;;;;;-1:-1:-1;;;;;1486:20:0;;;;;;;;;;;;;;8972;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18:2:-1;;13:3;7:5;32;59:3;53:5;48:3;41:6;93:2;88:3;85:2;78:6;73:3;67:5;-1:-1;;152:3;;;;117:2;108:3;;;;130;172:5;167:4;181:3;3:186;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9730:378:0;;;;;;;;-1:-1:-1;;;;;9730:378:0;;;;;;;;;12266:241;;;;;;;;;;;;;;11382:262;;;;;;;;-1:-1:-1;;;;;11382:262:0;;;;;;;;;;;;;;;;;;;;;;;;;;4213:31;;;;;;;;;;;;;;;;;;;;;;;;;;9084:46;;;;;;;;-1:-1:-1;;;;;9084:46:0;;;;;;;;;;;;;;;;;;;;;;;13500:160;;;;;;;;-1:-1:-1;;;;;13500:160:0;;;;;;;2032:128;;;;;;;;-1:-1:-1;;;;;2032:128:0;;;;;;;13668:324;;;;;;;;-1:-1:-1;;;;;13668:324:0;;;;;;;8949:18;;;;;;;;;;;;;;;-1:-1:-1;;8949:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11706:160::-;1820:5;;1806:10;-1:-1:-1;;;;;1806:19:0;;;1820:5;;1806:19;1802:47;;1836:5;;;1802:47;11768:10;:17;;-1:-1:-1;;;;;11768:17:0;;;;-1:-1:-1;;11792:34:0;-1:-1:-1;;;;;11792:34:0;;;;;;;;11833:27;;;;;;;;;;;;;;;;;1855:1;11706:160;;:::o;11024:277::-;11088:6;4443:8;4425;:26;4422:55;;;4463:5;;;4422:55;11115:10;;-1:-1:-1;;;11115:10:0;;;;11111:185;;;11165:15;;11143:84;;;;;;-1:-1:-1;;;;;11198:10:0;11143:84;;;;;;;;;;;;;;;;;;;;;11165:15;;;;;11143:54;;:84;;;;;-1:-1:-1;;11143:84:0;;;;;;;-1:-1:-1;11165:15:0;11143:84;;;;;;;;;;;;;;;;;;;;;11136:91;;11111:185;11257:31;11271:8;11281:6;11257:13;:31::i;:::-;11111:185;4484:1;11024:277;;;;:::o;9057:22::-;;;-1:-1:-1;;;9057:22:0;;;;;:::o;13347:145::-;1820:5;;1806:10;-1:-1:-1;;;;;1806:19:0;;;1820:5;;1806:19;1802:47;;1836:5;;;1802:47;-1:-1:-1;;;;;13417:24:0;;;;;;:13;:24;;;;;;;;;:31;;-1:-1:-1;;13417:31:0;13444:4;13417:31;;;13459:25;;;;;;;;;;;;;;;;;1855:1;13347:145;;:::o;11928:184::-;11985:10;;11969:4;;-1:-1:-1;;;11985:10:0;;;;11981:126;;;12027:15;;12013:44;;;12027:15;12013:44;;;;;;;;;;;;;;-1:-1:-1;;;;;12027:15:0;;;;12013:42;;:44;;;;;;;;;;;;;;12027:15;12013:44;;;;;;;;;;;;;;;;;;-1:-1:-1;;12013:44:0;;;;-1:-1:-1;12006:51:0;;-1:-1:-1;12006:51:0;11981:126;-1:-1:-1;12087:12:0;;11981:126;11928:184;;:::o;4280:26::-;;;;:::o;10189:463::-;2515:6;;-1:-1:-1;;;2515:6:0;;;;2511:17;;;2523:5;;;2511:17;-1:-1:-1;;;;;10294:20:0;;;;;;:13;:20;;;;;;;;10293:21;10285:30;;;;;;-1:-1:-1;;;;;10335:18:0;;;;;;:13;:18;;;;;;;;10334:19;10326:28;;;;;;-1:-1:-1;;;;;10388:10:0;10374:25;;;;;:13;:25;;;;;;;;10373:26;10365:35;;;;;;10417:10;;-1:-1:-1;;;10417:10:0;;;;10413:215;;;10471:15;;10449:91;;;;;;-1:-1:-1;;;;;10509:10:0;10449:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;10471:15;;;;;10449:59;;:91;;;;;-1:-1:-1;;10449:91:0;;;;;;;-1:-1:-1;10471:15:0;10449:91;;;;;;;;;;;;;;;;;;;;;10442:98;;10413:215;10578:38;10597:5;10604:3;10609:6;10578:18;:38::i;:::-;10571:45;;10413:215;2535:1;10189:463;;;;:::o;9022:30::-;;;-1:-1:-1;;;;;9022:30:0;;:::o;8997:20::-;;;;:::o;4249:26::-;;;;:::o;3260:24::-;;;;:::o;2980:116::-;3029:4;1820:5;;1806:10;-1:-1:-1;;;;;1806:19:0;;;1820:5;;1806:19;1802:47;;1836:5;;;1802:47;2668:6;;-1:-1:-1;;;2668:6:0;;;;2667:7;2663:18;;;2676:5;;;2663:18;3051:5;3042:14;;-1:-1:-1;;3042:14:0;;;3063:9;;;;3051:5;3063:9;-1:-1:-1;3086:4:0;2688:1;1855;2980:116;;:::o;12636:216::-;1820:5;;1806:10;-1:-1:-1;;;;;1806:19:0;;;1820:5;;1806:19;1802:47;;1836:5;;;1802:47;12701:6;12686:12;;:21;12682:32;;;12709:5;;;12682:32;12727:15;12736:5;;-1:-1:-1;;;;;12736:5:0;12727:15;;:8;:15;;;;;;:24;;;12723:35;;;12753:5;;;12723:35;12769:12;:22;;;;;;;:12;12809:5;;-1:-1:-1;;;;;12809:5:0;12800:15;;:8;:15;;;;;;;;;:25;;;;;;;12834:12;;;;;;;;;;;;;;;;;1855:1;12636:216;;:::o;13207:124::-;-1:-1:-1;;;;;13302:21:0;;13278:4;13302:21;;;:13;:21;;;;;;;;13207:124;;;;:::o;12858:340::-;1820:5;;1806:10;-1:-1:-1;;;;;1806:19:0;;;1820:5;;1806:19;1802:47;;1836:5;;;1802:47;13042:15;:32;;;13083:10;:22;;;13114:10;:22;;;13145:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1855:1;12858:340;;;;:::o;2360:26::-;;;-1:-1:-1;;;2360:26:0;;;;;:::o;10733:210::-;10799:10;;10783:4;;-1:-1:-1;;;10799:10:0;;;;10795:143;;;10849:15;;10827:53;;;10849:15;10827:53;;;;;;;;;;;;-1:-1:-1;;;;;10827:53:0;;;;;;;;;10849:15;;;;;10827:48;;:53;;;;;;;;;;;;;;;10849:15;10827:53;;;;;;;;;;;;;;;;;;-1:-1:-1;;10827:53:0;;;;-1:-1:-1;10820:60:0;;-1:-1:-1;10820:60:0;10795:143;10910:20;10926:3;10910:15;:20::i;:::-;10903:27;;;;10795:143;10733:210;;;;:::o;2779:114::-;2829:4;1820:5;;1806:10;-1:-1:-1;;;;;1806:19:0;;;1820:5;;1806:19;1802:47;;1836:5;;;1802:47;2515:6;;-1:-1:-1;;;2515:6:0;;;;2511:17;;;2523:5;;;2511:17;2842:6;:13;;-1:-1:-1;;2842:13:0;-1:-1:-1;;;2842:13:0;;;2862:7;;;;2842:6;2862:7;-1:-1:-1;2883:4:0;2535:1;1855;2779:114;;:::o;1486:20::-;;;-1:-1:-1;;;;;1486:20:0;;:::o;8972:::-;;;;;;;;;;;;;;;-1:-1:-1;;8972:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9730:378::-;2515:6;;-1:-1:-1;;;2515:6:0;;;;2511:17;;;2523:5;;;2511:17;-1:-1:-1;;;;;9818:18:0;;;;;;:13;:18;;;;;;;;9817:19;9809:28;;;;;;-1:-1:-1;;;;;9871:10:0;9857:25;;;;;:13;:25;;;;;;;;9856:26;9848:35;;;;;;9898:10;;-1:-1:-1;;;9898:10:0;;;;9894:193;;;9952:15;;9930:80;;;;;;-1:-1:-1;;;;;9986:10:0;9930:80;;;;;;;;;;;;;;;;;;;;;9952:15;;;;;9930:55;;:80;;;;;-1:-1:-1;;9930:80:0;;;;;;;-1:-1:-1;9952:15:0;9930:80;;;;;;;;;;;;;;;;;;;;;9923:87;;9894:193;10048:27;10063:3;10068:6;10048:14;:27::i;:::-;9894:193;2535:1;9730:378;;;:::o;12266:241::-;1820:5;;1806:10;-1:-1:-1;;;;;1806:19:0;;;1820:5;;1806:19;1802:47;;1836:5;;;1802:47;12339:12;;12315:21;;;:36;12311:47;;;12353:5;;;12311:47;12396:15;12405:5;;-1:-1:-1;;;;;12405:5:0;12396:15;;:8;:15;;;;;;12369:24;;;:42;12365:53;;;12413:5;;;12365:53;12427:15;12436:5;;-1:-1:-1;;;;;12436:5:0;12427:15;;:8;:15;;;;;;;;;:25;;;;;;12436:5;12459:22;;;;;;12488:13;;;;;;;;;;;;;;;;;1855:1;12266:241;;:::o;11382:262::-;11482:10;;11453:14;;-1:-1:-1;;;11482:10:0;;;;11478:161;;;11524:15;;11510:58;;;11524:15;11510:58;;;;;;;;;;;;-1:-1:-1;;;;;11510:58:0;;;;;;;;;;;;;;;;11524:15;;;;;11510:40;;:58;;;;;;;;;;;;;;;11524:15;11510:58;;;;;;;;;;;;;;;;;;-1:-1:-1;;11510:58:0;;;;-1:-1:-1;11503:65:0;;-1:-1:-1;11503:65:0;11478:161;11598:33;11614:6;11622:8;11598:15;:33::i;:::-;11591:40;;11478:161;11382:262;;;;;:::o;4213:31::-;;;;:::o;9084:46::-;;;;;;;;;;;;;;;:::o;13500:160::-;1820:5;;1806:10;-1:-1:-1;;;;;1806:19:0;;;1820:5;;1806:19;1802:47;;1836:5;;;1802:47;-1:-1:-1;;;;;13576:27:0;;13606:5;13576:27;;;:13;:27;;;;;;;;;:35;;-1:-1:-1;;13576:35:0;;;13622:30;;;;;;;;;;;;;;;;;1855:1;13500:160;;:::o;2032:128::-;1820:5;;1806:10;-1:-1:-1;;;;;1806:19:0;;;1820:5;;1806:19;1802:47;;1836:5;;;1802:47;-1:-1:-1;;;;;2098:22:0;;;2094:61;;2131:5;:16;;-1:-1:-1;;2131:16:0;-1:-1:-1;;;;;2131:16:0;;;;;2094:61;1855:1;2032:128;;:::o;13668:324::-;13801:15;1820:5;;1806:10;-1:-1:-1;;;;;1806:19:0;;;1820:5;;1806:19;1802:47;;1836:5;;;1802:47;-1:-1:-1;;;;;13758:31:0;;;;;;:13;:31;;;;;;;;13750:40;;;;;;;;13819:27;13829:16;13819:9;:27::i;:::-;-1:-1:-1;;;;;13857:26:0;;13886:1;13857:26;;;:8;:26;;;;;;;;:30;;;;13898:12;:26;;;;;;;13935:49;;;;;;;;;;;;13801:45;;-1:-1:-1;13935:49:0;;;;;;;;;1855:1;13668:324;;;:::o;7421:535::-;7485:6;4443:8;4425;:26;4422:55;;;4463:5;;;4422:55;7799:11;;;;;7798:53;;-1:-1:-1;;;;;;7824:10:0;7816:19;;;;;;:7;:19;;;;;;;;:29;;;;;;;;;;:34;;7798:53;7794:64;;;7853:5;;;7794:64;-1:-1:-1;;;;;7875:10:0;7867:19;;;;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;;:38;;;7912;;;;;;;;;;;;;;;;;4484:1;7421:535;;;;:::o;6273:909::-;6367:14;;;6352:6;4443:8;4425;:26;4422:55;;;4463:5;;;4422:55;-1:-1:-1;;;;;6384:14:0;;;;;;;:7;:14;;;;;;;;6399:10;6384:26;;;;;;;;;;6592:15;;6384:26;;-1:-1:-1;6580:38:0;;6614:3;;6581:27;;:6;;:27;:10;:27;:::i;:::-;6580:33;:38;:33;:38;:::i;:::-;6569:49;;6635:10;;6629:3;:16;6625:55;;;6662:10;;6656:16;;6625:55;6713:1;6695:15;;:19;6692:110;;;6742:10;;6736:3;:16;6732:63;;;6773:10;;6767:16;;6732:63;6692:110;6832:15;:6;6843:3;6832:15;:10;:15;:::i;:::-;-1:-1:-1;;;;;6872:13:0;;;;;;:8;:13;;;;;;6814:33;;-1:-1:-1;6872:29:0;;6814:33;6872:29;:17;:29;:::i;:::-;-1:-1:-1;;;;;6856:13:0;;;;;;;:8;:13;;;;;;:45;;;;6935:5;;;;;6926:15;;;;:24;;6946:3;6926:24;:19;:24;:::i;:::-;6908:15;6917:5;;-1:-1:-1;;;;;6917:5:0;;;6908:15;;:8;:15;;;;;;:42;;;;6975:15;;;;;;:27;;6995:6;6975:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;6957:15:0;;;;;;:8;:15;;;;;:45;-1:-1:-1;;7013:21:0;;7009:95;;;7074:22;:10;7089:6;7074:22;:14;:22;:::i;:::-;-1:-1:-1;;;;;7045:14:0;;;;;;;:7;:14;;;;;;;;7060:10;7045:26;;;;;;;;;:51;7009:95;7126:3;-1:-1:-1;;;;;7110:32:0;7119:5;-1:-1:-1;;;;;7110:32:0;-1:-1:-1;;;;;;;;;;;7131:10:0;7110:32;;;;;;;;;;;;;;;;;;7165:5;;7149:27;;;;;;;;-1:-1:-1;;;;;7165:5:0;;;;7149:27;;;-1:-1:-1;;;;;;;;;;;7149:27:0;;;;;;;;;4484:1;6273:909;;;;;;;;:::o;5457:103::-;-1:-1:-1;;;;;5538:16:0;;5510:12;5538:16;;;:8;:16;;;;;;5457:103;;;;:::o;4652:599::-;4727:8;;4712:6;4443:8;4425;:26;4422:55;;;4463:5;;;4422:55;4738:38;4772:3;4739:27;4750:15;;4739:6;:10;;:27;;;;:::i;:::-;4738:33;:38;:33;:38;:::i;:::-;4727:49;;4793:10;;4787:3;:16;4783:55;;;4820:10;;4814:16;;4783:55;4871:1;4853:15;;:19;4850:110;;;4900:10;;4894:3;:16;4890:63;;;4931:10;;4925:16;;4890:63;4850:110;4984:15;:6;4995:3;4984:15;:10;:15;:::i;:::-;-1:-1:-1;;;;;5038:10:0;5029:20;;;;;:8;:20;;;;;;4966:33;;-1:-1:-1;5029:32:0;;5054:6;5029:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5015:10:0;5006:20;;;;;;:8;:20;;;;;;:55;;;;5084:13;;;;;;;:29;;5102:10;5084:29;:17;:29;:::i;:::-;-1:-1:-1;;;;;5068:13:0;;;;;;;:8;:13;;;;;;:45;;;;5147:5;;;;;5138:15;;;;:24;;5158:3;5138:24;:19;:24;:::i;:::-;5120:15;5129:5;;-1:-1:-1;;;;;5129:5:0;;;5120:15;;:8;:15;;;;;;;;;:42;;;;5169:37;;;;;;;;;;;5178:10;5169:37;;;;-1:-1:-1;;;;;;;;;;;5169:37:0;;;;;;;;5234:5;;5213:32;;;;;;;;-1:-1:-1;;;;;5234:5:0;;;;5222:10;5213:32;;-1:-1:-1;;;;;;;;;;;5213:32:0;;;;;;;;;4484:1;4652:599;;;;;;:::o;8280:132::-;-1:-1:-1;;;;;8381:15:0;;;8351:14;8381:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;8280:132;;;;;:::o;99:130::-;146:4;168:5;;;180:28;187:6;;;:20;;;206:1;201;197;:5;;;;;;;;:10;187:20;180:6;:28::i;:::-;222:1;215:8;;99:130;;;;;;:::o;235:253::-;282:4;370:6;383:1;379;:5;;;;;;;;370:14;;481:1;474:8;;235:253;;;;;;:::o;494:99::-;541:4;554:14;566:1;561;:6;;554;:14::i;:::-;-1:-1:-1;582:5:0;;;494:99;;;;;:::o;599:116::-;646:4;668:5;;;680:14;687:6;;;;680;:14::i;:::-;708:1;701:8;;599:116;;;;;;:::o;1167:91::-;1220:9;1219:10;1215:38;;;1240:5;;;1215:38;1167:91;;:::o

Swarm Source

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