ETH Price: $3,478.78 (+0.87%)

Token

Coinnup Coin (PMZ)
 

Overview

Max Total Supply

248,795,062.3565805 PMZ

Holders

4,592

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
688.99 PMZ

Value
$0.00
0x6eeae31935f02d1be7fb9ed7f9d4f58d57c601a5
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:
CoinnupToken

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.23;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */

library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return a / b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }

}


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


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


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

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

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

}


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


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


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

  mapping(address => uint256) balances;

  uint256 public totalSupply_;
  
  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @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, uint256 _value) public returns (bool) {
    require(_to != address(0));

    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    emit Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256 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 ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) public allowed;


  /**
   * @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 uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    emit Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that 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 uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public view returns (uint256) {
    return allowed[_owner][_spender];
  }

  /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}

/**
 * @title CoinnupCrowdsaleToken
 * @dev ERC20-compliant Token that can be minted.
 */
contract CoinnupToken is StandardToken, Ownable {
  using SafeMath for uint256;

  string public constant name = "Coinnup Coin"; // solium-disable-line uppercase
  string public constant symbol = "PMZ"; // solium-disable-line uppercase
  uint8 public constant decimals = 18; // solium-disable-line uppercase

  /// @dev store how much in eth users invested to give them a refund in case refund happens
  mapping ( address => uint256 ) public investments;
  /// @dev to have how much one user bought tokens
  mapping ( address => uint256 ) public tokensBought;

  /// @dev event when someone bought tokens by ETH
  event investmentReceived(
    address sender,
    uint weis,
    uint total
  );

  uint256 public maxSupply = 298500000000000000000000000;
  uint256 public allowedToBeSold = 118056750000000000000000000;
  address public founder = address( 0x3abb86C7C1a533Eb0464E9BD870FD1b501C7A8A8 );
  uint256 public rate = 2800;
  uint256 public bonus = 30;
  uint256 public softCap = 1850000000000000000000;

  uint256 public _sold; //eth sold via payable function
  /// @dev in this var we store eth when someone bought tokens
  /// not sending it to smart contract but buying it privately
  uint256 public _soldOutside; //wei sold not via SC
  uint256 public _soldOutsidePMZ; //PMZ tokens sold not via SC

  bool public isPaused;

  struct Round {
    uint256 openingTime;
    uint256 closingTime;
    uint256 allocatedCoins;
    uint256 minPurchase;
    uint256 maxPurchase;
    uint256 soldCoins;
  }

  Round[] public rounds;

  /** @dev Token cunstructor
    */
  constructor () public {
    require(maxSupply > 0);
    require(founder != address(0));
    require(rate > 0);
    require(bonus >= 0 && bonus <= 100); // in percentage
    require(allowedToBeSold > 0 && allowedToBeSold < maxSupply);

    require(softCap > 0);

    for (uint8 i = 0; i < 6; i++) {
      rounds.push( Round(0, 0, 0, 0, 0, 0) );
    }

    // mint tokens which initially belongs to founder
    uint256 _forFounder = maxSupply.sub(allowedToBeSold);
    mint(founder, _forFounder);

    // waiting for admin to set round dates
    // and to unpause by admin
    triggerICOState(true);
  }

  /// @dev in payable we shold keep only forwarding call
  function () public onlyWhileOpen isNotPaused payable {
    require(_buyTokens(msg.sender, msg.value));
  }

  /**
   * @dev gets `_sender` and `_value` as input and sells tokens with bonus
   * throws if not enough tokens after calculation
   * @return isSold bool whether tokens bought
   */
  function _buyTokens(address _sender, uint256 _value) internal isNotPaused returns (bool) {
    uint256 amount = _getTokenAmount(_value, bonus);
    uint256 amount_without_bonus = _getTokenAmount(_value, 0);
    uint8 _currentRound = _getCurrentRound(now);

    require(rounds[_currentRound].allocatedCoins >= amount.add(rounds[_currentRound].soldCoins));
    require(totalSupply_.add(amount) <= maxSupply); // if we have enough tokens to be minted

    require(
      rounds[_currentRound].minPurchase <= amount_without_bonus &&
      rounds[_currentRound].maxPurchase >= amount_without_bonus
    );

    _sold = _sold.add(_value); // in wei
    investments[_sender] = investments[_sender].add(_value); // in wei

    // minting tokens for investores
    // after we recorded how much he sent ether and other params
    mint(_sender, amount);
    rounds[_currentRound].soldCoins = rounds[_currentRound].soldCoins.add(amount);
    tokensBought[_sender] = tokensBought[_sender].add(amount);

    emit investmentReceived(
      _sender,
      _value,
      amount_without_bonus
    );

    return true;
  }

  /// @dev system can mint tokens for users if they sent funds to BTC, LTC, etc wallets we allow
  function mintForInvestor(address _to, uint256 _tokens, uint256 _tokens_bonus) public onlyOwner onlyWhileOpen {
    uint8 _round = _getCurrentRound(now);
    uint256 _tokens_with_bonuses = _tokens.add(_tokens_bonus);

    require(_round >= 0 && _round <= 5);
    require(_to != address(0)); // handling incorrect values from system in addresses
    require(_tokens >= 0); // handling incorrect values from system in tokens calculation
    require(rounds[_round].allocatedCoins >= _tokens_with_bonuses.add(rounds[_round].soldCoins));
    require(maxSupply >= _tokens_with_bonuses.add(totalSupply_));
    require(_tokens > _tokens_bonus);
    
    require(
      rounds[_round].minPurchase <= _tokens && // Min Max purchases without bonuses
      rounds[_round].maxPurchase >= _tokens
    );

    // minting tokens for investors
    mint(_to, _tokens_with_bonuses); // _tokens in wei
    rounds[_round].soldCoins = rounds[_round].soldCoins.add(_tokens_with_bonuses); 
    tokensBought[_to] = tokensBought[_to].add(_tokens_with_bonuses); // tokens in wei

    uint256 _soldInETH = _tokens.div( rate ); // Calc without bonuses
    
    _sold = _sold.add(_soldInETH); // in wei
    _soldOutside = _soldOutside.add(_soldInETH); // eth
    _soldOutsidePMZ = _soldOutsidePMZ.add(_tokens_with_bonuses); // in PMZ
  }

  /**
   * @dev Function to mint tokens
   * @param _to The address that will receive the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) internal {
    totalSupply_ = totalSupply_.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    emit Transfer(address(this), _to, _amount);
  }

    /**
   * @dev The way in which ether is converted to tokens.
   * @param _weiAmount Value in wei to be converted into tokens
   * @param _bonus Bonus in percents
   * @return Number of tokens that can be purchased with the specified _weiAmount
   */
  function _getTokenAmount(uint256 _weiAmount, uint _bonus) internal view returns (uint256) {
    uint256 _coins_in_wei = rate.mul(_weiAmount);
    uint256 _bonus_value_in_wei = 0;
    uint256 bonusValue = 0;

    _bonus_value_in_wei = (_coins_in_wei.mul(_bonus)).div(100);
    bonusValue = _bonus_value_in_wei;

    uint256 coins = _coins_in_wei;
    uint256 total = coins.add(bonusValue);

    return total;
  }

  /**
   * @dev sets a rate for ico rounds
   * @param _rate Rate for token
   */
  function setRate(uint256 _rate) public {
    require(msg.sender == owner);
    require(_rate > 0);

    rate = _rate;
  }

  /// @dev get total coins sold per current round
  function soldPerCurrentRound() public view returns (uint256) {
    return rounds[_getCurrentRound(now)].soldCoins;
  }

  /// @dev pause and unpause an ICO, only sender allowed to
  function triggerICOState(bool state) public onlyOwner {
    isPaused = state;
  }

  /**
   * @dev changes current bonus rate
   * @param _bonus Bonus to change
   * @return bool - Changed or not
   */
  function setBonus(uint256 _bonus) onlyOwner public {
    require(_bonus >= 0 && _bonus <= 100); //%
    bonus = _bonus;
  }

  /// @dev gets number of current round
  function _getCurrentRound(uint256 _time) public view returns (uint8) {
    for (uint8 i = 0; i < 6; i++) {
      if (rounds[i].openingTime < _time && rounds[i].closingTime > _time) {
        return i;
      }
    }

    return 100; // if using 6 in 5 length array it will throw
  }

  function setRoundParams(
    uint8 _round,
    uint256 _openingTime,
    uint256 _closingTime,
    uint256 _maxPurchase,
    uint256 _minPurchase,
    uint256 _allocatedCoins
  ) public onlyOwner {
    rounds[_round].openingTime = _openingTime;
    rounds[_round].closingTime = _closingTime;
    rounds[_round].maxPurchase = _maxPurchase;
    rounds[_round].minPurchase = _minPurchase;
    rounds[_round].allocatedCoins = _allocatedCoins;
  }

  /**
   * @dev withdrawing funds to founder's wallet
   * @return bool Whether success or not
   */
  function withdraw() public {
    // only founder is able to withdraw funds
    require(msg.sender == founder);
    founder.transfer(address(this).balance);
  }

  /**
   * @dev Claims for refund if ICO finished and soft cap not reached
   */
  function refund() public whenICOFinished capNotReached {
    require(investments[msg.sender] > 0);
    msg.sender.transfer(investments[msg.sender]);
    investments[msg.sender] = 0;
  }

  modifier onlyWhileOpen {
    uint8 _round = _getCurrentRound(now);
    require(_round >= 0 && _round <= 5); // we have 6 rounds, other values are invalid
    _;
  }

  /// @dev when ico finishes we can perform other actions
  modifier whenICOFinished {
    uint8 _round = _getCurrentRound(now);
    require(_round < 0 || _round > 5); // if we do not get current valid round number ICO finished
    _;
  }

  /// @dev _sold in weis, softCap in weis
  modifier capNotReached {
    require(softCap > _sold);
    _;
  }

  /// @dev if isPaused true then investments cannot be accepted
  modifier isNotPaused {
    require(!isPaused);
    _;
  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"allowedToBeSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_round","type":"uint8"},{"name":"_openingTime","type":"uint256"},{"name":"_closingTime","type":"uint256"},{"name":"_maxPurchase","type":"uint256"},{"name":"_minPurchase","type":"uint256"},{"name":"_allocatedCoins","type":"uint256"}],"name":"setRoundParams","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_bonus","type":"uint256"}],"name":"setBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokensBought","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"founder","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_time","type":"uint256"}],"name":"_getCurrentRound","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldPerCurrentRound","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_soldOutside","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"rounds","outputs":[{"name":"openingTime","type":"uint256"},{"name":"closingTime","type":"uint256"},{"name":"allocatedCoins","type":"uint256"},{"name":"minPurchase","type":"uint256"},{"name":"maxPurchase","type":"uint256"},{"name":"soldCoins","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"state","type":"bool"}],"name":"triggerICOState","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":"softCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_soldOutsidePMZ","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_sold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokens","type":"uint256"},{"name":"_tokens_bonus","type":"uint256"}],"name":"mintForInvestor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"weis","type":"uint256"},{"indexed":false,"name":"total","type":"uint256"}],"name":"investmentReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"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"}]

60806040526af6e9d56ca1f3143a8000006006556a61a77d3dc7bb254ff80000600755733abb86c7c1a533eb0464e9bd870fd1b501c7a8a8600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610af0600955601e600a55686449e84e47a8a80000600b553480156200009c57600080fd5b5060008033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600654111515620000f357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156200015257600080fd5b60006009541115156200016457600080fd5b6000600a54101580156200017b57506064600a5411155b15156200018757600080fd5b60006007541180156200019d5750600654600754105b1515620001a957600080fd5b6000600b54111515620001bb57600080fd5b600091505b60068260ff1610156200027b57601060c0604051908101604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090806001815401808255809150509060018203906000526020600020906006020160009091929091909150600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a082015181600501555050508180600101925050620001c0565b620002a26007546006546200030464010000000002620029b7179091906401000000009004565b9050620002e1600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826200031e640100000000026401000000009004565b620002fc600162000455640100000000026401000000009004565b5050620004ee565b60008282111515156200031357fe5b818303905092915050565b6200034381600154620004cf6401000000000262002882179091906401000000009004565b600181905550620003aa816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620004cf6401000000000262002882179091906401000000009004565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620004b257600080fd5b80600f60006101000a81548160ff02191690831515021790555050565b6000808284019050838110151515620004e457fe5b8091505092915050565b612a4d80620004fe6000396000f3006080604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630449aa401461023157806306fdde031461025c57806307dc6bd1146102ec578063095ea7b31461034e5780630b98f975146103b357806318160ddd146103e057806323b872dd1461040b578063264d7797146104905780632c4e722e146104e7578063313ce56714610512578063324536eb1461054357806334fcf4371461056e5780633ccfd60b1461059b5780634d853ee5146105b2578063590e1ae3146106095780635ac1caa0146106205780635c658165146106675780635e1eabd2146106de578063661884631461070957806370a082311461076e57806375b4d78c146107c557806384e8a7df146107f05780638c65c81f1461081b5780638c9e81e51461087f5780638da5cb5b146108ae578063906a26e01461090557806395d89b411461093057806396b98862146109c0578063a00f64d614610a17578063a9059cbb14610a42578063aabd5b8814610aa7578063b187bd2614610ad2578063c89231b314610b01578063d5abeb0114610b58578063d73dd62314610b83578063dd62ed3e14610be8578063f2fde38b14610c5f575b60006101d842610ca2565b905060008160ff16101580156101f2575060058160ff1611155b15156101fd57600080fd5b600f60009054906101000a900460ff1615151561021957600080fd5b6102233334610d2f565b151561022e57600080fd5b50005b34801561023d57600080fd5b50610246611090565b6040518082815260200191505060405180910390f35b34801561026857600080fd5b50610271611096565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b1578082015181840152602081019050610296565b50505050905090810190601f1680156102de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f857600080fd5b5061034c600480360381019080803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506110cf565b005b34801561035a57600080fd5b50610399600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111fb565b604051808215151515815260200191505060405180910390f35b3480156103bf57600080fd5b506103de600480360381019080803590602001909291905050506112ed565b005b3480156103ec57600080fd5b506103f5611370565b6040518082815260200191505060405180910390f35b34801561041757600080fd5b50610476600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061137a565b604051808215151515815260200191505060405180910390f35b34801561049c57600080fd5b506104d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611734565b6040518082815260200191505060405180910390f35b3480156104f357600080fd5b506104fc61174c565b6040518082815260200191505060405180910390f35b34801561051e57600080fd5b50610527611752565b604051808260ff1660ff16815260200191505060405180910390f35b34801561054f57600080fd5b50610558611757565b6040518082815260200191505060405180910390f35b34801561057a57600080fd5b506105996004803603810190808035906020019092919050505061175d565b005b3480156105a757600080fd5b506105b06117d2565b005b3480156105be57600080fd5b506105c76118b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061557600080fd5b5061061e6118d6565b005b34801561062c57600080fd5b5061064b60048036038101908080359060200190929190505050610ca2565b604051808260ff1660ff16815260200191505060405180910390f35b34801561067357600080fd5b506106c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a31565b6040518082815260200191505060405180910390f35b3480156106ea57600080fd5b506106f3611a56565b6040518082815260200191505060405180910390f35b34801561071557600080fd5b50610754600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a89565b604051808215151515815260200191505060405180910390f35b34801561077a57600080fd5b506107af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d1a565b6040518082815260200191505060405180910390f35b3480156107d157600080fd5b506107da611d62565b6040518082815260200191505060405180910390f35b3480156107fc57600080fd5b50610805611d68565b6040518082815260200191505060405180910390f35b34801561082757600080fd5b5061084660048036038101908080359060200190929190505050611d6e565b60405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b34801561088b57600080fd5b506108ac600480360381019080803515159060200190929190505050611db9565b005b3480156108ba57600080fd5b506108c3611e32565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561091157600080fd5b5061091a611e58565b6040518082815260200191505060405180910390f35b34801561093c57600080fd5b50610945611e5e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098557808201518184015260208101905061096a565b50505050905090810190601f1680156109b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109cc57600080fd5b50610a01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e97565b6040518082815260200191505060405180910390f35b348015610a2357600080fd5b50610a2c611eaf565b6040518082815260200191505060405180910390f35b348015610a4e57600080fd5b50610a8d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611eb5565b604051808215151515815260200191505060405180910390f35b348015610ab357600080fd5b50610abc612087565b6040518082815260200191505060405180910390f35b348015610ade57600080fd5b50610ae761208d565b604051808215151515815260200191505060405180910390f35b348015610b0d57600080fd5b50610b56600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506120a0565b005b348015610b6457600080fd5b50610b6d612428565b6040518082815260200191505060405180910390f35b348015610b8f57600080fd5b50610bce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061242e565b604051808215151515815260200191505060405180910390f35b348015610bf457600080fd5b50610c49600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061262a565b6040518082815260200191505060405180910390f35b348015610c6b57600080fd5b50610ca0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126b1565b005b600080600090505b60068160ff161015610d24578260108260ff16815481101515610cc957fe5b906000526020600020906006020160000154108015610d0a57508260108260ff16815481101515610cf657fe5b906000526020600020906006020160010154115b15610d1757809150610d29565b8080600101915050610caa565b606491505b50919050565b600080600080600f60009054906101000a900460ff16151515610d5157600080fd5b610d5d85600a54612809565b9250610d6a856000612809565b9150610d7542610ca2565b9050610dad60108260ff16815481101515610d8c57fe5b9060005260206000209060060201600501548461288290919063ffffffff16565b60108260ff16815481101515610dbf57fe5b90600052602060002090600602016002015410151515610dde57600080fd5b600654610df68460015461288290919063ffffffff16565b11151515610e0357600080fd5b8160108260ff16815481101515610e1657fe5b90600052602060002090600602016003015411158015610e5957508160108260ff16815481101515610e4457fe5b90600052602060002090600602016004015410155b1515610e6457600080fd5b610e7985600c5461288290919063ffffffff16565b600c81905550610ed185600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f1e86846128a0565b610f548360108360ff16815481101515610f3457fe5b90600052602060002090600602016005015461288290919063ffffffff16565b60108260ff16815481101515610f6657fe5b906000526020600020906006020160050181905550610fcd83600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fdfab298122b6bc191b215b6bba072e1fec3b54d9736f0cd6986e0320d3aab24d868684604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a16001935050505092915050565b60075481565b6040805190810160405280600c81526020017f436f696e6e757020436f696e000000000000000000000000000000000000000081525081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561112b57600080fd5b8460108760ff1681548110151561113e57fe5b9060005260206000209060060201600001819055508360108760ff1681548110151561116657fe5b9060005260206000209060060201600101819055508260108760ff1681548110151561118e57fe5b9060005260206000209060060201600401819055508160108760ff168154811015156111b657fe5b9060005260206000209060060201600301819055508060108760ff168154811015156111de57fe5b906000526020600020906006020160020181905550505050505050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561134957600080fd5b6000811015801561135b575060648111155b151561136657600080fd5b80600a8190555050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156113b757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561140457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561148f57600080fd5b6114e0826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611573826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061164482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60056020528060005260406000206000915090505481565b60095481565b601281565b60015481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b957600080fd5b6000811115156117c857600080fd5b8060098190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561182e57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156118ad573d6000803e3d6000fd5b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118e142610ca2565b905060008160ff1610806118f8575060058160ff16115b151561190357600080fd5b600c54600b5411151561191557600080fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561196357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f193505050501580156119e8573d6000803e3d6000fd5b506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6002602052816000526040600020602052806000526040600020600091509150505481565b60006010611a6342610ca2565b60ff16815481101515611a7257fe5b906000526020600020906006020160050154905090565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611b9a576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c2e565b611bad83826129b790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b600d5481565b601081815481101515611d7d57fe5b90600052602060002090600602016000915090508060000154908060010154908060020154908060030154908060040154908060050154905086565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1557600080fd5b80600f60006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6040805190810160405280600381526020017f504d5a000000000000000000000000000000000000000000000000000000000081525081565b60046020528060005260406000206000915090505481565b600e5481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ef257600080fd5b611f43826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fd6826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600c5481565b600f60009054906101000a900460ff1681565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561210157600080fd5b600061210c42610ca2565b905060008160ff1610158015612126575060058160ff1611155b151561213157600080fd5b61213a42610ca2565b935061214f858761288290919063ffffffff16565b925060008460ff1610158015612169575060058460ff1611155b151561217457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141515156121b057600080fd5b600086101515156121c057600080fd5b6121f660108560ff168154811015156121d557fe5b9060005260206000209060060201600501548461288290919063ffffffff16565b60108560ff1681548110151561220857fe5b9060005260206000209060060201600201541015151561222757600080fd5b61223c6001548461288290919063ffffffff16565b6006541015151561224c57600080fd5b848611151561225a57600080fd5b8560108560ff1681548110151561226d57fe5b906000526020600020906006020160030154111580156122b057508560108560ff1681548110151561229b57fe5b90600052602060002090600602016004015410155b15156122bb57600080fd5b6122c587846128a0565b6122fb8360108660ff168154811015156122db57fe5b90600052602060002090600602016005015461288290919063ffffffff16565b60108560ff1681548110151561230d57fe5b90600052602060002090600602016005018190555061237483600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123cc600954876129d090919063ffffffff16565b91506123e382600c5461288290919063ffffffff16565b600c819055506123fe82600d5461288290919063ffffffff16565b600d8190555061241983600e5461288290919063ffffffff16565b600e8190555050505050505050565b60065481565b60006124bf82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561270d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561274957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080600080612827886009546129e690919063ffffffff16565b94506000935060009250612857606461284989886129e690919063ffffffff16565b6129d090919063ffffffff16565b9350839250849150612872838361288290919063ffffffff16565b9050809550505050505092915050565b600080828401905083811015151561289657fe5b8091505092915050565b6128b58160015461288290919063ffffffff16565b60018190555061290c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008282111515156129c557fe5b818303905092915050565b600081838115156129dd57fe5b04905092915050565b60008060008414156129fb5760009150612a1a565b8284029050828482811515612a0c57fe5b04141515612a1657fe5b8091505b50929150505600a165627a7a72305820694f4014f88b4881df99119e796ba40e2c15a9ee314ccd311d26b847e98017f40029

Deployed Bytecode

0x6080604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630449aa401461023157806306fdde031461025c57806307dc6bd1146102ec578063095ea7b31461034e5780630b98f975146103b357806318160ddd146103e057806323b872dd1461040b578063264d7797146104905780632c4e722e146104e7578063313ce56714610512578063324536eb1461054357806334fcf4371461056e5780633ccfd60b1461059b5780634d853ee5146105b2578063590e1ae3146106095780635ac1caa0146106205780635c658165146106675780635e1eabd2146106de578063661884631461070957806370a082311461076e57806375b4d78c146107c557806384e8a7df146107f05780638c65c81f1461081b5780638c9e81e51461087f5780638da5cb5b146108ae578063906a26e01461090557806395d89b411461093057806396b98862146109c0578063a00f64d614610a17578063a9059cbb14610a42578063aabd5b8814610aa7578063b187bd2614610ad2578063c89231b314610b01578063d5abeb0114610b58578063d73dd62314610b83578063dd62ed3e14610be8578063f2fde38b14610c5f575b60006101d842610ca2565b905060008160ff16101580156101f2575060058160ff1611155b15156101fd57600080fd5b600f60009054906101000a900460ff1615151561021957600080fd5b6102233334610d2f565b151561022e57600080fd5b50005b34801561023d57600080fd5b50610246611090565b6040518082815260200191505060405180910390f35b34801561026857600080fd5b50610271611096565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b1578082015181840152602081019050610296565b50505050905090810190601f1680156102de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102f857600080fd5b5061034c600480360381019080803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506110cf565b005b34801561035a57600080fd5b50610399600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111fb565b604051808215151515815260200191505060405180910390f35b3480156103bf57600080fd5b506103de600480360381019080803590602001909291905050506112ed565b005b3480156103ec57600080fd5b506103f5611370565b6040518082815260200191505060405180910390f35b34801561041757600080fd5b50610476600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061137a565b604051808215151515815260200191505060405180910390f35b34801561049c57600080fd5b506104d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611734565b6040518082815260200191505060405180910390f35b3480156104f357600080fd5b506104fc61174c565b6040518082815260200191505060405180910390f35b34801561051e57600080fd5b50610527611752565b604051808260ff1660ff16815260200191505060405180910390f35b34801561054f57600080fd5b50610558611757565b6040518082815260200191505060405180910390f35b34801561057a57600080fd5b506105996004803603810190808035906020019092919050505061175d565b005b3480156105a757600080fd5b506105b06117d2565b005b3480156105be57600080fd5b506105c76118b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061557600080fd5b5061061e6118d6565b005b34801561062c57600080fd5b5061064b60048036038101908080359060200190929190505050610ca2565b604051808260ff1660ff16815260200191505060405180910390f35b34801561067357600080fd5b506106c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a31565b6040518082815260200191505060405180910390f35b3480156106ea57600080fd5b506106f3611a56565b6040518082815260200191505060405180910390f35b34801561071557600080fd5b50610754600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a89565b604051808215151515815260200191505060405180910390f35b34801561077a57600080fd5b506107af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d1a565b6040518082815260200191505060405180910390f35b3480156107d157600080fd5b506107da611d62565b6040518082815260200191505060405180910390f35b3480156107fc57600080fd5b50610805611d68565b6040518082815260200191505060405180910390f35b34801561082757600080fd5b5061084660048036038101908080359060200190929190505050611d6e565b60405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390f35b34801561088b57600080fd5b506108ac600480360381019080803515159060200190929190505050611db9565b005b3480156108ba57600080fd5b506108c3611e32565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561091157600080fd5b5061091a611e58565b6040518082815260200191505060405180910390f35b34801561093c57600080fd5b50610945611e5e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098557808201518184015260208101905061096a565b50505050905090810190601f1680156109b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109cc57600080fd5b50610a01600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e97565b6040518082815260200191505060405180910390f35b348015610a2357600080fd5b50610a2c611eaf565b6040518082815260200191505060405180910390f35b348015610a4e57600080fd5b50610a8d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611eb5565b604051808215151515815260200191505060405180910390f35b348015610ab357600080fd5b50610abc612087565b6040518082815260200191505060405180910390f35b348015610ade57600080fd5b50610ae761208d565b604051808215151515815260200191505060405180910390f35b348015610b0d57600080fd5b50610b56600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506120a0565b005b348015610b6457600080fd5b50610b6d612428565b6040518082815260200191505060405180910390f35b348015610b8f57600080fd5b50610bce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061242e565b604051808215151515815260200191505060405180910390f35b348015610bf457600080fd5b50610c49600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061262a565b6040518082815260200191505060405180910390f35b348015610c6b57600080fd5b50610ca0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126b1565b005b600080600090505b60068160ff161015610d24578260108260ff16815481101515610cc957fe5b906000526020600020906006020160000154108015610d0a57508260108260ff16815481101515610cf657fe5b906000526020600020906006020160010154115b15610d1757809150610d29565b8080600101915050610caa565b606491505b50919050565b600080600080600f60009054906101000a900460ff16151515610d5157600080fd5b610d5d85600a54612809565b9250610d6a856000612809565b9150610d7542610ca2565b9050610dad60108260ff16815481101515610d8c57fe5b9060005260206000209060060201600501548461288290919063ffffffff16565b60108260ff16815481101515610dbf57fe5b90600052602060002090600602016002015410151515610dde57600080fd5b600654610df68460015461288290919063ffffffff16565b11151515610e0357600080fd5b8160108260ff16815481101515610e1657fe5b90600052602060002090600602016003015411158015610e5957508160108260ff16815481101515610e4457fe5b90600052602060002090600602016004015410155b1515610e6457600080fd5b610e7985600c5461288290919063ffffffff16565b600c81905550610ed185600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f1e86846128a0565b610f548360108360ff16815481101515610f3457fe5b90600052602060002090600602016005015461288290919063ffffffff16565b60108260ff16815481101515610f6657fe5b906000526020600020906006020160050181905550610fcd83600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fdfab298122b6bc191b215b6bba072e1fec3b54d9736f0cd6986e0320d3aab24d868684604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a16001935050505092915050565b60075481565b6040805190810160405280600c81526020017f436f696e6e757020436f696e000000000000000000000000000000000000000081525081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561112b57600080fd5b8460108760ff1681548110151561113e57fe5b9060005260206000209060060201600001819055508360108760ff1681548110151561116657fe5b9060005260206000209060060201600101819055508260108760ff1681548110151561118e57fe5b9060005260206000209060060201600401819055508160108760ff168154811015156111b657fe5b9060005260206000209060060201600301819055508060108760ff168154811015156111de57fe5b906000526020600020906006020160020181905550505050505050565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561134957600080fd5b6000811015801561135b575060648111155b151561136657600080fd5b80600a8190555050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156113b757600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561140457600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561148f57600080fd5b6114e0826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b790919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611573826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061164482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b790919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60056020528060005260406000206000915090505481565b60095481565b601281565b60015481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b957600080fd5b6000811115156117c857600080fd5b8060098190555050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561182e57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156118ad573d6000803e3d6000fd5b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006118e142610ca2565b905060008160ff1610806118f8575060058160ff16115b151561190357600080fd5b600c54600b5411151561191557600080fd5b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561196357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f193505050501580156119e8573d6000803e3d6000fd5b506000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6002602052816000526040600020602052806000526040600020600091509150505481565b60006010611a6342610ca2565b60ff16815481101515611a7257fe5b906000526020600020906006020160050154905090565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611b9a576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c2e565b611bad83826129b790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a5481565b600d5481565b601081815481101515611d7d57fe5b90600052602060002090600602016000915090508060000154908060010154908060020154908060030154908060040154908060050154905086565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e1557600080fd5b80600f60006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6040805190810160405280600381526020017f504d5a000000000000000000000000000000000000000000000000000000000081525081565b60046020528060005260406000206000915090505481565b600e5481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ef257600080fd5b611f43826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129b790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fd6826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600c5481565b600f60009054906101000a900460ff1681565b6000806000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561210157600080fd5b600061210c42610ca2565b905060008160ff1610158015612126575060058160ff1611155b151561213157600080fd5b61213a42610ca2565b935061214f858761288290919063ffffffff16565b925060008460ff1610158015612169575060058460ff1611155b151561217457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141515156121b057600080fd5b600086101515156121c057600080fd5b6121f660108560ff168154811015156121d557fe5b9060005260206000209060060201600501548461288290919063ffffffff16565b60108560ff1681548110151561220857fe5b9060005260206000209060060201600201541015151561222757600080fd5b61223c6001548461288290919063ffffffff16565b6006541015151561224c57600080fd5b848611151561225a57600080fd5b8560108560ff1681548110151561226d57fe5b906000526020600020906006020160030154111580156122b057508560108560ff1681548110151561229b57fe5b90600052602060002090600602016004015410155b15156122bb57600080fd5b6122c587846128a0565b6122fb8360108660ff168154811015156122db57fe5b90600052602060002090600602016005015461288290919063ffffffff16565b60108560ff1681548110151561230d57fe5b90600052602060002090600602016005018190555061237483600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123cc600954876129d090919063ffffffff16565b91506123e382600c5461288290919063ffffffff16565b600c819055506123fe82600d5461288290919063ffffffff16565b600d8190555061241983600e5461288290919063ffffffff16565b600e8190555050505050505050565b60065481565b60006124bf82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561270d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561274957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080600080612827886009546129e690919063ffffffff16565b94506000935060009250612857606461284989886129e690919063ffffffff16565b6129d090919063ffffffff16565b9350839250849150612872838361288290919063ffffffff16565b9050809550505050505092915050565b600080828401905083811015151561289657fe5b8091505092915050565b6128b58160015461288290919063ffffffff16565b60018190555061290c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461288290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008282111515156129c557fe5b818303905092915050565b600081838115156129dd57fe5b04905092915050565b60008060008414156129fb5760009150612a1a565b8284029050828482811515612a0c57fe5b04141515612a1657fe5b8091505b50929150505600a165627a7a72305820694f4014f88b4881df99119e796ba40e2c15a9ee314ccd311d26b847e98017f40029

Swarm Source

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