ETH Price: $2,507.33 (-4.83%)

Token

Contractium (CTU)
 

Overview

Max Total Supply

3,000,000,000 CTU

Holders

9,543

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
310 CTU

Value
$0.00
0xc09c98a5465b311e82beb9a8ee8bbdacff21bcf1
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:
ContractiumToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity ^0.4.21;


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


library SafeMath {

  
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }

  
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
   
   
   
    return a / b;
  }

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

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


contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  uint256 totalSupply_;

  
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

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

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

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

}


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


contract StandardToken is ERC20, BasicToken {

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


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

  
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  
  function allowance(address _owner, address _spender) public view returns (uint256) {
    return allowed[_owner][_spender];
  }

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

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

}


contract Ownable {
  address public owner;


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


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

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

  
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}


contract BurnableToken is BasicToken {

  event Burn(address indexed burner, uint256 value);

  
  function burn(uint256 _value) public {
    _burn(msg.sender, _value);
  }

  function _burn(address _who, uint256 _value) internal {
    require(_value <= balances[_who]);
   
   

    balances[_who] = balances[_who].sub(_value);
    totalSupply_ = totalSupply_.sub(_value);
    emit Burn(_who, _value);
    emit Transfer(_who, address(0), _value);
  }
}


contract TokenOffering is StandardToken, Ownable, BurnableToken {
  
    bool public offeringEnabled;

   
    uint256 public currentTotalTokenOffering;

   
    uint256 public currentTokenOfferingRaised;

   
    uint256 public bonusRateOneEth;

   
    uint256 public startTime;
    uint256 public endTime;

    bool public isBurnInClose = false;

    bool public isOfferingStarted = false;

    event OfferingOpens(uint256 startTime, uint256 endTime, uint256 totalTokenOffering, uint256 bonusRateOneEth);
    event OfferingCloses(uint256 endTime, uint256 tokenOfferingRaised);

    
    function setBonusRate(uint256 _bonusRateOneEth) public onlyOwner {
        bonusRateOneEth = _bonusRateOneEth;
    }

    
   
   
   
   

    
    function preValidatePurchase(uint256 _amount) internal {
        require(_amount > 0);
        require(isOfferingStarted);
        require(offeringEnabled);
        require(currentTokenOfferingRaised.add(_amount) <= currentTotalTokenOffering);
        require(block.timestamp >= startTime && block.timestamp <= endTime);
    }
    
    
    function stopOffering() public onlyOwner {
        offeringEnabled = false;
    }
    
    
    function resumeOffering() public onlyOwner {
        offeringEnabled = true;
    }

    
    function startOffering(
        uint256 _tokenOffering, 
        uint256 _bonusRateOneEth, 
        uint256 _startTime, 
        uint256 _endTime,
        bool _isBurnInClose
    ) public onlyOwner returns (bool) {
        require(_tokenOffering <= balances[owner]);
        require(_startTime <= _endTime);
        require(_startTime >= block.timestamp);

       
        require(!isOfferingStarted);

        isOfferingStarted = true;

       
        startTime = _startTime;
        endTime = _endTime;

       
        isBurnInClose = _isBurnInClose;

       
        currentTokenOfferingRaised = 0;
        currentTotalTokenOffering = _tokenOffering;
        offeringEnabled = true;
        setBonusRate(_bonusRateOneEth);

        emit OfferingOpens(startTime, endTime, currentTotalTokenOffering, bonusRateOneEth);
        return true;
    }

    
    function updateStartTime(uint256 _startTime) public onlyOwner {
        require(isOfferingStarted);
        require(_startTime <= endTime);
        require(_startTime >= block.timestamp);
        startTime = _startTime;
    }

    
    function updateEndTime(uint256 _endTime) public onlyOwner {
        require(isOfferingStarted);
        require(_endTime >= startTime);
        endTime = _endTime;
    }

    
    function updateBurnableStatus(bool _isBurnInClose) public onlyOwner {
        require(isOfferingStarted);
        isBurnInClose = _isBurnInClose;
    }

    
    function endOffering() public onlyOwner {
        if (isBurnInClose) {
            burnRemainTokenOffering();
        }
        emit OfferingCloses(endTime, currentTokenOfferingRaised);
        resetOfferingStatus();
    }

    
    function burnRemainTokenOffering() internal {
        if (currentTokenOfferingRaised < currentTotalTokenOffering) {
            uint256 remainTokenOffering = currentTotalTokenOffering.sub(currentTokenOfferingRaised);
            _burn(owner, remainTokenOffering);
        }
    }

    
    function resetOfferingStatus() internal {
        isOfferingStarted = false;        
        startTime = 0;
        endTime = 0;
        currentTotalTokenOffering = 0;
        currentTokenOfferingRaised = 0;
        bonusRateOneEth = 0;
        offeringEnabled = false;
        isBurnInClose = false;
    }
}





contract WithdrawTrack is StandardToken, Ownable {

	struct TrackInfo {
		address to;
		uint256 amountToken;
		string withdrawId;
	}

	mapping(string => TrackInfo) withdrawTracks;

	function withdrawToken(address _to, uint256 _amountToken, string _withdrawId) public onlyOwner returns (bool) {
		bool result = transfer(_to, _amountToken);
		if (result) {
			withdrawTracks[_withdrawId] = TrackInfo(_to, _amountToken, _withdrawId);
		}
		return result;
	}

	function withdrawTrackOf(string _withdrawId) public view returns (address to, uint256 amountToken) {
		TrackInfo track = withdrawTracks[_withdrawId];
		return (track.to, track.amountToken);
	}

}


contract ContractSpendToken is StandardToken, Ownable {
  mapping (address => address) private contractToReceiver;

  function addContract(address _contractAdd, address _to) external onlyOwner returns (bool) {
    require(_contractAdd != address(0x0));
    require(_to != address(0x0));

    contractToReceiver[_contractAdd] = _to;
    return true;
  }

  function removeContract(address _contractAdd) external onlyOwner returns (bool) {
    contractToReceiver[_contractAdd] = address(0x0);
    return true;
  }

  function contractSpend(address _from, uint256 _value) public returns (bool) {
    address _to = contractToReceiver[msg.sender];
    require(_to != address(0x0));
    require(_value <= balances[_from]);

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

  function getContractReceiver(address _contractAdd) public view onlyOwner returns (address) {
    return contractToReceiver[_contractAdd];
  }
}

contract ContractiumToken is TokenOffering, WithdrawTrack, ContractSpendToken {

    string public constant name = "Contractium";
    string public constant symbol = "CTU";
    uint8 public constant decimals = 18;
  
    uint256 public constant INITIAL_SUPPLY = 3000000000 * (10 ** uint256(decimals));
  
    uint256 public unitsOneEthCanBuy = 15000;

   
    uint256 internal totalWeiRaised;

    event BuyToken(address from, uint256 weiAmount, uint256 tokenAmount);

    function ContractiumToken() public {
        totalSupply_ = INITIAL_SUPPLY;
        balances[msg.sender] = INITIAL_SUPPLY;
        
        emit Transfer(0x0, msg.sender, INITIAL_SUPPLY);
    }

    function() public payable {

        require(msg.sender != owner);

       
        uint256 amount = msg.value.mul(unitsOneEthCanBuy);

       
        uint256 amountBonus = msg.value.mul(bonusRateOneEth);
        
       
        amount = amount.add(amountBonus);

       
        preValidatePurchase(amount);
        require(balances[owner] >= amount);
        
        totalWeiRaised = totalWeiRaised.add(msg.value);
    
       
        currentTokenOfferingRaised = currentTokenOfferingRaised.add(amount); 
        
        balances[owner] = balances[owner].sub(amount);
        balances[msg.sender] = balances[msg.sender].add(amount);

        emit Transfer(owner, msg.sender, amount);
        emit BuyToken(msg.sender, msg.value, amount);
       
        owner.transfer(msg.value);  
                              
    }

    function batchTransfer(address[] _receivers, uint256[] _amounts) public returns(bool) {
        uint256 cnt = _receivers.length;
        require(cnt > 0 && cnt <= 20);
        require(cnt == _amounts.length);

        cnt = (uint8)(cnt);

        uint256 totalAmount = 0;
        for (uint8 i = 0; i < cnt; i++) {
            totalAmount = totalAmount.add(_amounts[i]);
        }

        require(totalAmount <= balances[msg.sender]);

        balances[msg.sender] = balances[msg.sender].sub(totalAmount);
        for (i = 0; i < cnt; i++) {
            balances[_receivers[i]] = balances[_receivers[i]].add(_amounts[i]);            
            emit Transfer(msg.sender, _receivers[i], _amounts[i]);
        }

        return true;
    }


}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"}],"name":"updateStartTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isBurnInClose","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":"_to","type":"address"},{"name":"_amountToken","type":"uint256"},{"name":"_withdrawId","type":"string"}],"name":"withdrawToken","outputs":[{"name":"","type":"bool"}],"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":"INITIAL_SUPPLY","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":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"contractSpend","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenOffering","type":"uint256"},{"name":"_bonusRateOneEth","type":"uint256"},{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_isBurnInClose","type":"bool"}],"name":"startOffering","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bonusRateOneEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentTotalTokenOffering","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unitsOneEthCanBuy","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":false,"inputs":[{"name":"_endTime","type":"uint256"}],"name":"updateEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resumeOffering","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_contractAdd","type":"address"}],"name":"getContractReceiver","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_receivers","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"batchTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"endOffering","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOfferingStarted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"offeringEnabled","outputs":[{"name":"","type":"bool"}],"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":"currentTokenOfferingRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_contractAdd","type":"address"},{"name":"_to","type":"address"}],"name":"addContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_contractAdd","type":"address"}],"name":"removeContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"stopOffering","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_bonusRateOneEth","type":"uint256"}],"name":"setBonusRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_isBurnInClose","type":"bool"}],"name":"updateBurnableStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_withdrawId","type":"string"}],"name":"withdrawTrackOf","outputs":[{"name":"to","type":"address"},{"name":"amountToken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"BuyToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"startTime","type":"uint256"},{"indexed":false,"name":"endTime","type":"uint256"},{"indexed":false,"name":"totalTokenOffering","type":"uint256"},{"indexed":false,"name":"bonusRateOneEth","type":"uint256"}],"name":"OfferingOpens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"endTime","type":"uint256"},{"indexed":false,"name":"tokenOfferingRaised","type":"uint256"}],"name":"OfferingCloses","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","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"}]

60806040526009805461ffff19169055613a98600c5534801561002157600080fd5b5060038054600160a060020a031916339081179091556b09b18ab5df7180b6b8000000600181905560008281526020818152604080832084905580519384525191927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3611b918061009d6000396000f3006080604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306bcf02f81146103bb57806306fdde03146103d5578063071fe9b01461045f578063095ea7b31461048857806314eaa43b146104ac57806318160ddd1461051557806323b872dd1461053c5780632ff2e9dc14610566578063313ce5671461057b5780633197cbb6146105a65780633555fa90146105bb57806342966c68146105df57806346848114146105f757806357292af81461061d57806363a3cc801461063257806365f2bc2e14610647578063661884631461065c5780636ab3846b146106805780636b8263ed1461069857806370a08231146106ad57806370aecf61146106ce57806378e979251461070b57806388d695b2146107205780638da5cb5b146107ae57806395d89b41146107c35780639be3b286146107d85780639db28672146107ed578063a86477ad14610802578063a9059cbb14610817578063b7ba60501461083b578063b9858a2814610850578063c375c2ef14610877578063c488d6f214610898578063d73dd623146108ad578063dd62ed3e146108d1578063e4fcf329146108f8578063f0c5a77b14610910578063f2fde38b1461092a578063f6b5460f1461094b575b6003546000908190600160a060020a03163314156101ff57600080fd5b600c5461021390349063ffffffff6109c716565b915061022a600654346109c790919063ffffffff16565b905061023c828263ffffffff6109f616565b915061024782610a03565b600354600160a060020a031660009081526020819052604090205482111561026e57600080fd5b600d54610281903463ffffffff6109f616565b600d55600554610297908363ffffffff6109f616565b600555600354600160a060020a03166000908152602081905260409020546102c5908363ffffffff610a9216565b600354600160a060020a03166000908152602081905260408082209290925533815220546102f9908363ffffffff6109f616565b336000818152602081815260409182902093909355600354815186815291519293600160a060020a0390911692600080516020611b468339815191529281900390910190a36040805133815234602082015280820184905290517ff6f342132c7de5e5a1e99c8efae544c94731f3ff093f5c3c97c6973d9415cdfb9181900360600190a1600354604051600160a060020a03909116903480156108fc02916000818181858888f193505050501580156103b6573d6000803e3d6000fd5b505050005b3480156103c757600080fd5b506103d3600435610aa4565b005b3480156103e157600080fd5b506103ea610af2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561042457818101518382015260200161040c565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561046b57600080fd5b50610474610b29565b604080519115158252519081900360200190f35b34801561049457600080fd5b50610474600160a060020a0360043516602435610b32565b3480156104b857600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610474948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610b989650505050505050565b34801561052157600080fd5b5061052a610ca1565b60408051918252519081900360200190f35b34801561054857600080fd5b50610474600160a060020a0360043581169060243516604435610ca8565b34801561057257600080fd5b5061052a610e0d565b34801561058757600080fd5b50610590610e1d565b6040805160ff9092168252519081900360200190f35b3480156105b257600080fd5b5061052a610e22565b3480156105c757600080fd5b50610474600160a060020a0360043516602435610e28565b3480156105eb57600080fd5b506103d3600435610f1d565b34801561060357600080fd5b506104746004356024356044356064356084351515610f27565b34801561062957600080fd5b5061052a611062565b34801561063e57600080fd5b5061052a611068565b34801561065357600080fd5b5061052a61106e565b34801561066857600080fd5b50610474600160a060020a0360043516602435611074565b34801561068c57600080fd5b506103d3600435611164565b3480156106a457600080fd5b506103d36111a5565b3480156106b957600080fd5b5061052a600160a060020a03600435166111f3565b3480156106da57600080fd5b506106ef600160a060020a036004351661120e565b60408051600160a060020a039092168252519081900360200190f35b34801561071757600080fd5b5061052a611247565b34801561072c57600080fd5b506040805160206004803580820135838102808601850190965280855261047495369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061124d9650505050505050565b3480156107ba57600080fd5b506106ef61143b565b3480156107cf57600080fd5b506103ea61144a565b3480156107e457600080fd5b506103d3611481565b3480156107f957600080fd5b506104746114f8565b34801561080e57600080fd5b50610474611506565b34801561082357600080fd5b50610474600160a060020a0360043516602435611527565b34801561084757600080fd5b5061052a6115f6565b34801561085c57600080fd5b50610474600160a060020a03600435811690602435166115fc565b34801561088357600080fd5b50610474600160a060020a036004351661167f565b3480156108a457600080fd5b506103d36116d1565b3480156108b957600080fd5b50610474600160a060020a0360043516602435611708565b3480156108dd57600080fd5b5061052a600160a060020a03600435811690602435166117a1565b34801561090457600080fd5b506103d36004356117cc565b34801561091c57600080fd5b506103d360043515156117e8565b34801561093657600080fd5b506103d3600160a060020a0360043516611828565b34801561095757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526109a49436949293602493928401919081908401838280828437509497506118bd9650505050505050565b60408051600160a060020a03909316835260208301919091528051918290030190f35b60008215156109d8575060006109f0565b508181028183828115156109e857fe5b04146109f057fe5b92915050565b818101828110156109f057fe5b60008111610a1057600080fd5b600954610100900460ff161515610a2657600080fd5b60035474010000000000000000000000000000000000000000900460ff161515610a4f57600080fd5b600454600554610a65908363ffffffff6109f616565b1115610a7057600080fd5b6007544210158015610a8457506008544211155b1515610a8f57600080fd5b50565b600082821115610a9e57fe5b50900390565b600354600160a060020a03163314610abb57600080fd5b600954610100900460ff161515610ad157600080fd5b600854811115610ae057600080fd5b42811015610aed57600080fd5b600755565b60408051808201909152600b81527f436f6e747261637469756d000000000000000000000000000000000000000000602082015281565b60095460ff1681565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6003546000908190600160a060020a03163314610bb457600080fd5b610bbe8585611527565b90508015610c995760606040519081016040528086600160a060020a0316815260200185815260200184815250600a846040518082805190602001908083835b60208310610c1d5780518252601f199092019160209182019101610bfe565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382019094208551815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909116178155858201516001820155938501518051610c959450600286019350910190611aad565b5050505b949350505050565b6001545b90565b6000600160a060020a0383161515610cbf57600080fd5b600160a060020a038416600090815260208190526040902054821115610ce457600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610d1457600080fd5b600160a060020a038416600090815260208190526040902054610d3d908363ffffffff610a9216565b600160a060020a038086166000908152602081905260408082209390935590851681522054610d72908363ffffffff6109f616565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610db4908363ffffffff610a9216565b600160a060020a0380861660008181526002602090815260408083203384528252918290209490945580518681529051928716939192600080516020611b46833981519152929181900390910190a35060019392505050565b6b09b18ab5df7180b6b800000081565b601281565b60085481565b336000908152600b6020526040812054600160a060020a0316801515610e4d57600080fd5b600160a060020a038416600090815260208190526040902054831115610e7257600080fd5b600160a060020a038416600090815260208190526040902054610e9b908463ffffffff610a9216565b600160a060020a038086166000908152602081905260408082209390935590831681522054610ed0908463ffffffff6109f616565b600160a060020a03808316600081815260208181526040918290209490945580518781529051919392881692600080516020611b4683398151915292918290030190a35060019392505050565b610a8f338261193e565b600354600090600160a060020a03163314610f4157600080fd5b600354600160a060020a0316600090815260208190526040902054861115610f6857600080fd5b82841115610f7557600080fd5b42841015610f8257600080fd5b600954610100900460ff1615610f9757600080fd5b600980546007869055600885905561010061ff00199091161760ff191683151517905560006005556004869055600380547401000000000000000000000000000000000000000074ff000000000000000000000000000000000000000019909116179055611004856117cc565b600754600854600454600654604080519485526020850193909352838301919091526060830152517f365e229499f5cbeb1e19d0ab447a1c88a23b8d565034fed6aa5b191d2403d3539181900360800190a150600195945050505050565b60065481565b60045481565b600c5481565b336000908152600260209081526040808320600160a060020a0386168452909152812054808311156110c957336000908152600260209081526040808320600160a060020a03881684529091528120556110fe565b6110d9818463ffffffff610a9216565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600354600160a060020a0316331461117b57600080fd5b600954610100900460ff16151561119157600080fd5b6007548110156111a057600080fd5b600855565b600354600160a060020a031633146111bc57600080fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a031660009081526020819052604090205490565b600354600090600160a060020a0316331461122857600080fd5b50600160a060020a039081166000908152600b60205260409020541690565b60075481565b815160009081808083118015611264575060148311155b151561126f57600080fd5b8451831461127c57600080fd5b505060ff166000805b828160ff1610156112c5576112bb858260ff168151811015156112a457fe5b60209081029091010151839063ffffffff6109f616565b9150600101611285565b336000908152602081905260409020548211156112e157600080fd5b33600090815260208190526040902054611301908363ffffffff610a9216565b3360009081526020819052604081209190915590505b828160ff16101561142f57611383858260ff1681518110151561133657fe5b90602001906020020151600080898560ff1681518110151561135457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff6109f616565b600080888460ff1681518110151561139757fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869060ff83169081106113cb57fe5b90602001906020020151600160a060020a031633600160a060020a0316600080516020611b46833981519152878460ff1681518110151561140857fe5b906020019060200201516040518082815260200191505060405180910390a3600101611317565b50600195945050505050565b600354600160a060020a031681565b60408051808201909152600381527f4354550000000000000000000000000000000000000000000000000000000000602082015281565b600354600160a060020a0316331461149857600080fd5b60095460ff16156114ab576114ab611a2d565b7f02359fdde4491e11fa0985b799db1f730257a9715a67fd4b9ed9956e194025f0600854600554604051808381526020018281526020019250505060405180910390a16114f6611a69565b565b600954610100900460ff1681565b60035474010000000000000000000000000000000000000000900460ff1681565b6000600160a060020a038316151561153e57600080fd5b3360009081526020819052604090205482111561155a57600080fd5b3360009081526020819052604090205461157a908363ffffffff610a9216565b3360009081526020819052604080822092909255600160a060020a038516815220546115ac908363ffffffff6109f616565b600160a060020a03841660008181526020818152604091829020939093558051858152905191923392600080516020611b468339815191529281900390910190a350600192915050565b60055481565b600354600090600160a060020a0316331461161657600080fd5b600160a060020a038316151561162b57600080fd5b600160a060020a038216151561164057600080fd5b50600160a060020a039182166000908152600b60205260409020805473ffffffffffffffffffffffffffffffffffffffff191691909216179055600190565b600354600090600160a060020a0316331461169957600080fd5b50600160a060020a03166000908152600b60205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055600190565b600354600160a060020a031633146116e857600080fd5b6003805474ff000000000000000000000000000000000000000019169055565b336000908152600260209081526040808320600160a060020a038616845290915281205461173c908363ffffffff6109f616565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600160a060020a031633146117e357600080fd5b600655565b600354600160a060020a031633146117ff57600080fd5b600954610100900460ff16151561181557600080fd5b6009805460ff1916911515919091179055565b600354600160a060020a0316331461183f57600080fd5b600160a060020a038116151561185457600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000600a846040518082805190602001908083835b602083106118f45780518252601f1990920191602091820191016118d5565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092208054600190910154600160a060020a0390911697909650945050505050565b600160a060020a03821660009081526020819052604090205481111561196357600080fd5b600160a060020a03821660009081526020819052604090205461198c908263ffffffff610a9216565b600160a060020a0383166000908152602081905260409020556001546119b8908263ffffffff610a9216565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611b468339815191529181900360200190a35050565b60006004546005541015610a8f57600554600454611a509163ffffffff610a9216565b600354909150610a8f90600160a060020a03168261193e565b60098054600060078190556008819055600481905560058190556006556003805474ff00000000000000000000000000000000000000001916905561ffff19169055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611aee57805160ff1916838001178555611b1b565b82800160010185558215611b1b579182015b82811115611b1b578251825591602001919060010190611b00565b50611b27929150611b2b565b5090565b610ca591905b80821115611b275760008155600101611b315600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582074dc6e83473ee26996fdb0d3b89fee83be62b8765ba760ffdd24256d3d01d2040029

Deployed Bytecode

0x6080604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306bcf02f81146103bb57806306fdde03146103d5578063071fe9b01461045f578063095ea7b31461048857806314eaa43b146104ac57806318160ddd1461051557806323b872dd1461053c5780632ff2e9dc14610566578063313ce5671461057b5780633197cbb6146105a65780633555fa90146105bb57806342966c68146105df57806346848114146105f757806357292af81461061d57806363a3cc801461063257806365f2bc2e14610647578063661884631461065c5780636ab3846b146106805780636b8263ed1461069857806370a08231146106ad57806370aecf61146106ce57806378e979251461070b57806388d695b2146107205780638da5cb5b146107ae57806395d89b41146107c35780639be3b286146107d85780639db28672146107ed578063a86477ad14610802578063a9059cbb14610817578063b7ba60501461083b578063b9858a2814610850578063c375c2ef14610877578063c488d6f214610898578063d73dd623146108ad578063dd62ed3e146108d1578063e4fcf329146108f8578063f0c5a77b14610910578063f2fde38b1461092a578063f6b5460f1461094b575b6003546000908190600160a060020a03163314156101ff57600080fd5b600c5461021390349063ffffffff6109c716565b915061022a600654346109c790919063ffffffff16565b905061023c828263ffffffff6109f616565b915061024782610a03565b600354600160a060020a031660009081526020819052604090205482111561026e57600080fd5b600d54610281903463ffffffff6109f616565b600d55600554610297908363ffffffff6109f616565b600555600354600160a060020a03166000908152602081905260409020546102c5908363ffffffff610a9216565b600354600160a060020a03166000908152602081905260408082209290925533815220546102f9908363ffffffff6109f616565b336000818152602081815260409182902093909355600354815186815291519293600160a060020a0390911692600080516020611b468339815191529281900390910190a36040805133815234602082015280820184905290517ff6f342132c7de5e5a1e99c8efae544c94731f3ff093f5c3c97c6973d9415cdfb9181900360600190a1600354604051600160a060020a03909116903480156108fc02916000818181858888f193505050501580156103b6573d6000803e3d6000fd5b505050005b3480156103c757600080fd5b506103d3600435610aa4565b005b3480156103e157600080fd5b506103ea610af2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561042457818101518382015260200161040c565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561046b57600080fd5b50610474610b29565b604080519115158252519081900360200190f35b34801561049457600080fd5b50610474600160a060020a0360043516602435610b32565b3480156104b857600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610474948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610b989650505050505050565b34801561052157600080fd5b5061052a610ca1565b60408051918252519081900360200190f35b34801561054857600080fd5b50610474600160a060020a0360043581169060243516604435610ca8565b34801561057257600080fd5b5061052a610e0d565b34801561058757600080fd5b50610590610e1d565b6040805160ff9092168252519081900360200190f35b3480156105b257600080fd5b5061052a610e22565b3480156105c757600080fd5b50610474600160a060020a0360043516602435610e28565b3480156105eb57600080fd5b506103d3600435610f1d565b34801561060357600080fd5b506104746004356024356044356064356084351515610f27565b34801561062957600080fd5b5061052a611062565b34801561063e57600080fd5b5061052a611068565b34801561065357600080fd5b5061052a61106e565b34801561066857600080fd5b50610474600160a060020a0360043516602435611074565b34801561068c57600080fd5b506103d3600435611164565b3480156106a457600080fd5b506103d36111a5565b3480156106b957600080fd5b5061052a600160a060020a03600435166111f3565b3480156106da57600080fd5b506106ef600160a060020a036004351661120e565b60408051600160a060020a039092168252519081900360200190f35b34801561071757600080fd5b5061052a611247565b34801561072c57600080fd5b506040805160206004803580820135838102808601850190965280855261047495369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061124d9650505050505050565b3480156107ba57600080fd5b506106ef61143b565b3480156107cf57600080fd5b506103ea61144a565b3480156107e457600080fd5b506103d3611481565b3480156107f957600080fd5b506104746114f8565b34801561080e57600080fd5b50610474611506565b34801561082357600080fd5b50610474600160a060020a0360043516602435611527565b34801561084757600080fd5b5061052a6115f6565b34801561085c57600080fd5b50610474600160a060020a03600435811690602435166115fc565b34801561088357600080fd5b50610474600160a060020a036004351661167f565b3480156108a457600080fd5b506103d36116d1565b3480156108b957600080fd5b50610474600160a060020a0360043516602435611708565b3480156108dd57600080fd5b5061052a600160a060020a03600435811690602435166117a1565b34801561090457600080fd5b506103d36004356117cc565b34801561091c57600080fd5b506103d360043515156117e8565b34801561093657600080fd5b506103d3600160a060020a0360043516611828565b34801561095757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526109a49436949293602493928401919081908401838280828437509497506118bd9650505050505050565b60408051600160a060020a03909316835260208301919091528051918290030190f35b60008215156109d8575060006109f0565b508181028183828115156109e857fe5b04146109f057fe5b92915050565b818101828110156109f057fe5b60008111610a1057600080fd5b600954610100900460ff161515610a2657600080fd5b60035474010000000000000000000000000000000000000000900460ff161515610a4f57600080fd5b600454600554610a65908363ffffffff6109f616565b1115610a7057600080fd5b6007544210158015610a8457506008544211155b1515610a8f57600080fd5b50565b600082821115610a9e57fe5b50900390565b600354600160a060020a03163314610abb57600080fd5b600954610100900460ff161515610ad157600080fd5b600854811115610ae057600080fd5b42811015610aed57600080fd5b600755565b60408051808201909152600b81527f436f6e747261637469756d000000000000000000000000000000000000000000602082015281565b60095460ff1681565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6003546000908190600160a060020a03163314610bb457600080fd5b610bbe8585611527565b90508015610c995760606040519081016040528086600160a060020a0316815260200185815260200184815250600a846040518082805190602001908083835b60208310610c1d5780518252601f199092019160209182019101610bfe565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382019094208551815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909116178155858201516001820155938501518051610c959450600286019350910190611aad565b5050505b949350505050565b6001545b90565b6000600160a060020a0383161515610cbf57600080fd5b600160a060020a038416600090815260208190526040902054821115610ce457600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610d1457600080fd5b600160a060020a038416600090815260208190526040902054610d3d908363ffffffff610a9216565b600160a060020a038086166000908152602081905260408082209390935590851681522054610d72908363ffffffff6109f616565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610db4908363ffffffff610a9216565b600160a060020a0380861660008181526002602090815260408083203384528252918290209490945580518681529051928716939192600080516020611b46833981519152929181900390910190a35060019392505050565b6b09b18ab5df7180b6b800000081565b601281565b60085481565b336000908152600b6020526040812054600160a060020a0316801515610e4d57600080fd5b600160a060020a038416600090815260208190526040902054831115610e7257600080fd5b600160a060020a038416600090815260208190526040902054610e9b908463ffffffff610a9216565b600160a060020a038086166000908152602081905260408082209390935590831681522054610ed0908463ffffffff6109f616565b600160a060020a03808316600081815260208181526040918290209490945580518781529051919392881692600080516020611b4683398151915292918290030190a35060019392505050565b610a8f338261193e565b600354600090600160a060020a03163314610f4157600080fd5b600354600160a060020a0316600090815260208190526040902054861115610f6857600080fd5b82841115610f7557600080fd5b42841015610f8257600080fd5b600954610100900460ff1615610f9757600080fd5b600980546007869055600885905561010061ff00199091161760ff191683151517905560006005556004869055600380547401000000000000000000000000000000000000000074ff000000000000000000000000000000000000000019909116179055611004856117cc565b600754600854600454600654604080519485526020850193909352838301919091526060830152517f365e229499f5cbeb1e19d0ab447a1c88a23b8d565034fed6aa5b191d2403d3539181900360800190a150600195945050505050565b60065481565b60045481565b600c5481565b336000908152600260209081526040808320600160a060020a0386168452909152812054808311156110c957336000908152600260209081526040808320600160a060020a03881684529091528120556110fe565b6110d9818463ffffffff610a9216565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600354600160a060020a0316331461117b57600080fd5b600954610100900460ff16151561119157600080fd5b6007548110156111a057600080fd5b600855565b600354600160a060020a031633146111bc57600080fd5b6003805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a031660009081526020819052604090205490565b600354600090600160a060020a0316331461122857600080fd5b50600160a060020a039081166000908152600b60205260409020541690565b60075481565b815160009081808083118015611264575060148311155b151561126f57600080fd5b8451831461127c57600080fd5b505060ff166000805b828160ff1610156112c5576112bb858260ff168151811015156112a457fe5b60209081029091010151839063ffffffff6109f616565b9150600101611285565b336000908152602081905260409020548211156112e157600080fd5b33600090815260208190526040902054611301908363ffffffff610a9216565b3360009081526020819052604081209190915590505b828160ff16101561142f57611383858260ff1681518110151561133657fe5b90602001906020020151600080898560ff1681518110151561135457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff6109f616565b600080888460ff1681518110151561139757fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558551869060ff83169081106113cb57fe5b90602001906020020151600160a060020a031633600160a060020a0316600080516020611b46833981519152878460ff1681518110151561140857fe5b906020019060200201516040518082815260200191505060405180910390a3600101611317565b50600195945050505050565b600354600160a060020a031681565b60408051808201909152600381527f4354550000000000000000000000000000000000000000000000000000000000602082015281565b600354600160a060020a0316331461149857600080fd5b60095460ff16156114ab576114ab611a2d565b7f02359fdde4491e11fa0985b799db1f730257a9715a67fd4b9ed9956e194025f0600854600554604051808381526020018281526020019250505060405180910390a16114f6611a69565b565b600954610100900460ff1681565b60035474010000000000000000000000000000000000000000900460ff1681565b6000600160a060020a038316151561153e57600080fd5b3360009081526020819052604090205482111561155a57600080fd5b3360009081526020819052604090205461157a908363ffffffff610a9216565b3360009081526020819052604080822092909255600160a060020a038516815220546115ac908363ffffffff6109f616565b600160a060020a03841660008181526020818152604091829020939093558051858152905191923392600080516020611b468339815191529281900390910190a350600192915050565b60055481565b600354600090600160a060020a0316331461161657600080fd5b600160a060020a038316151561162b57600080fd5b600160a060020a038216151561164057600080fd5b50600160a060020a039182166000908152600b60205260409020805473ffffffffffffffffffffffffffffffffffffffff191691909216179055600190565b600354600090600160a060020a0316331461169957600080fd5b50600160a060020a03166000908152600b60205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055600190565b600354600160a060020a031633146116e857600080fd5b6003805474ff000000000000000000000000000000000000000019169055565b336000908152600260209081526040808320600160a060020a038616845290915281205461173c908363ffffffff6109f616565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600160a060020a031633146117e357600080fd5b600655565b600354600160a060020a031633146117ff57600080fd5b600954610100900460ff16151561181557600080fd5b6009805460ff1916911515919091179055565b600354600160a060020a0316331461183f57600080fd5b600160a060020a038116151561185457600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000600a846040518082805190602001908083835b602083106118f45780518252601f1990920191602091820191016118d5565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092208054600190910154600160a060020a0390911697909650945050505050565b600160a060020a03821660009081526020819052604090205481111561196357600080fd5b600160a060020a03821660009081526020819052604090205461198c908263ffffffff610a9216565b600160a060020a0383166000908152602081905260409020556001546119b8908263ffffffff610a9216565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611b468339815191529181900360200190a35050565b60006004546005541015610a8f57600554600454611a509163ffffffff610a9216565b600354909150610a8f90600160a060020a03168261193e565b60098054600060078190556008819055600481905560058190556006556003805474ff00000000000000000000000000000000000000001916905561ffff19169055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611aee57805160ff1916838001178555611b1b565b82800160010185558215611b1b579182015b82811115611b1b578251825591602001919060010190611b00565b50611b27929150611b2b565b5090565b610ca591905b80821115611b275760008155600101611b315600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582074dc6e83473ee26996fdb0d3b89fee83be62b8765ba760ffdd24256d3d01d2040029

Swarm Source

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