ETH Price: $3,130.87 (+1.70%)

Token

FNKOSToken (FNKOS)
 

Overview

Max Total Supply

1,000,000,000 FNKOS

Holders

1,388

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
7,500 FNKOS

Value
$0.00
0x9433d5d316b83db00dc087c1244ef525294d8c1c
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:
FNKOSToken

Compiler Version
v0.4.20+commit.3155dd80

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-04-20
*/

pragma solidity	^0.4.18;
//
// FogLink OS Token
// Author: FNK
// Contact: [email protected]
// Telegram	community: https://t.me/fnkofficial
//
contract FNKOSToken {	
	string public constant name			= "FNKOSToken";
	string public constant symbol		= "FNKOS";
	uint public	constant decimals		= 18;
	
	uint256 fnkEthRate					= 10 ** decimals;
	uint256	fnkSupply					= 500000000;
	uint256	public totalSupply			= fnkSupply * fnkEthRate;
    uint256 public minInvEth			= 0.1 ether;
	uint256	public maxInvEth			= 5.0 ether;
    uint256 public sellStartTime		= 1521129600;			// 2018/3/16
    uint256 public sellDeadline1		= sellStartTime + 5 days;
    uint256 public sellDeadline2		= sellDeadline1 + 5 days;
	uint256 public freezeDuration 		= 30 days;
	uint256	public ethFnkRate1			= 6000;
	uint256	public ethFnkRate2			= 6000;

	bool public	running					= true;
	bool public	buyable					= true;
	
	address	owner;
	mapping	(address =>	mapping	(address =>	uint256)) allowed;
	mapping	(address =>	bool) public whitelist;
	mapping	(address =>	 uint256) whitelistLimit;

    struct BalanceInfo {
        uint256 balance;
        uint256[] freezeAmount;
        uint256[] releaseTime;
    }
	mapping	(address =>	BalanceInfo) balances;
	
	event Transfer(address indexed _from, address indexed _to, uint256 _value);
	event Approval(address indexed _owner, address indexed _spender, uint256 _value);
	event BeginRunning();
	event PauseRunning();
	event BeginSell();
	event PauseSell();
	event Burn(address indexed burner, uint256 val);
    event Freeze(address indexed from, uint256 value);
 	
	function FNKOSToken () public{
		owner =	msg.sender;
        balances[owner].balance = totalSupply;
	}
	
	modifier onlyOwner() {
		require(msg.sender == owner);
		_;
	}
	
	modifier onlyWhitelist() {
		require(whitelist[msg.sender] == true);
		_;
	}
	
	modifier isRunning(){
		require(running);
		_;
	}
	modifier isNotRunning(){
		require(!running);
		_;
	}
	modifier isBuyable(){
		require(buyable && now >= sellStartTime && now <= sellDeadline2);
		_;
	}
	modifier isNotBuyable(){
		require(!buyable || now < sellStartTime || now > sellDeadline2);
		_;
	}
	// mitigates the ERC20 short address attack
	modifier onlyPayloadSize(uint size)	{
		assert(msg.data.length >= size + 4);
		_;
	}

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

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

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

	// 1eth = newRate tokens
	function setPbulicOfferingPrice(uint256 _rate1, uint256 _rate2) onlyOwner public {
		ethFnkRate1 = _rate1;
		ethFnkRate2 = _rate2;		
	}

	//
	function setPublicOfferingLimit(uint256 _minVal, uint256 _maxVal) onlyOwner public {
		minInvEth	= _minVal;
		maxInvEth	= _maxVal;
	}
	
	function setPublicOfferingDate(uint256 _startTime, uint256 _deadLine1, uint256 _deadLine2) onlyOwner public {
		sellStartTime = _startTime;
		sellDeadline1	= _deadLine1;
		sellDeadline2	= _deadLine2;
	}
		
	function transferOwnership(address _newOwner) onlyOwner public {
		if (_newOwner !=	address(0))	{
			owner =	_newOwner;
		}
	}
	
	function pause() onlyOwner isRunning	public	 {
		running = false;
		PauseRunning();
	}
	
	function start() onlyOwner isNotRunning	public	 {
		running = true;
		BeginRunning();
	}

	function pauseSell() onlyOwner	isBuyable isRunning public{
		buyable = false;
		PauseSell();
	}
	
	function beginSell() onlyOwner	isNotBuyable isRunning  public{
		buyable = true;
		BeginSell();
	}

	//
	// _amount in FNK, 
	//
	function airDeliver(address _to,	uint256	_amount)  onlyOwner public {
		require(owner != _to);
		require(_amount > 0);
		require(balances[owner].balance >= _amount);
		
		// take big number as wei
		if(_amount < fnkSupply){
			_amount = _amount * fnkEthRate;
		}
		balances[owner].balance = safeSub(balances[owner].balance, _amount);
		balances[_to].balance =	safeAdd(balances[_to].balance, _amount);
		Transfer(owner, _to, _amount);
	}
	
	
	function airDeliverMulti(address[]	_addrs, uint256 _amount) onlyOwner public {
		require(_addrs.length <=  255);
		
		for	(uint8 i = 0; i < _addrs.length; i++)	{
			airDeliver(_addrs[i],	_amount);
		}
	}
	
	function airDeliverStandalone(address[] _addrs,	uint256[] _amounts) onlyOwner public {
		require(_addrs.length <=  255);
		require(_addrs.length ==	 _amounts.length);
		
		for	(uint8 i = 0; i	< _addrs.length;	i++) {
			airDeliver(_addrs[i],	_amounts[i]);
		}
	}

	//
	// _amount, _freezeAmount in FNK
	//
	function  freezeDeliver(address _to, uint _amount, uint _freezeAmount, uint _freezeMonth, uint _unfreezeBeginTime ) onlyOwner public {
		require(owner != _to);
		require(_freezeMonth > 0);
		
		uint average = _freezeAmount / _freezeMonth;
		BalanceInfo storage bi = balances[_to];
		uint[] memory fa = new uint[](_freezeMonth);
		uint[] memory rt = new uint[](_freezeMonth);

		if(_amount < fnkSupply){
			_amount = _amount * fnkEthRate;
			average = average * fnkEthRate;
			_freezeAmount = _freezeAmount * fnkEthRate;
		}
		require(balances[owner].balance > _amount);
		uint remainAmount = _freezeAmount;
		
		if(_unfreezeBeginTime == 0)
			_unfreezeBeginTime = now + freezeDuration;
		for(uint i=0;i<_freezeMonth-1;i++){
			fa[i] = average;
			rt[i] = _unfreezeBeginTime;
			_unfreezeBeginTime += freezeDuration;
			remainAmount = safeSub(remainAmount, average);
		}
		fa[i] = remainAmount;
		rt[i] = _unfreezeBeginTime;
		
		bi.balance = safeAdd(bi.balance, _amount);
		bi.freezeAmount = fa;
		bi.releaseTime = rt;
		balances[owner].balance = safeSub(balances[owner].balance, _amount);
		Transfer(owner, _to, _amount);
		Freeze(_to, _freezeAmount);
	}
	
	function  freezeDeliverMuti(address[] _addrs, uint _deliverAmount, uint _freezeAmount, uint _freezeMonth, uint _unfreezeBeginTime ) onlyOwner public {
		require(_addrs.length <=  255);
		
		for(uint i=0;i< _addrs.length;i++){
			freezeDeliver(_addrs[i], _deliverAmount, _freezeAmount, _freezeMonth, _unfreezeBeginTime);
		}
	}

	function  freezeDeliverMultiStandalone(address[] _addrs, uint[] _deliverAmounts, uint[] _freezeAmounts, uint _freezeMonth, uint _unfreezeBeginTime ) onlyOwner public {
		require(_addrs.length <=  255);
		require(_addrs.length == _deliverAmounts.length);
		require(_addrs.length == _freezeAmounts.length);
		
		for(uint i=0;i< _addrs.length;i++){
			freezeDeliver(_addrs[i], _deliverAmounts[i], _freezeAmounts[i], _freezeMonth, _unfreezeBeginTime);
		}
	}
	
	// buy tokens directly
	function ()	external payable {
		buyTokens();
	}

	//
	function buyTokens() payable isRunning isBuyable onlyWhitelist	public {
        uint256 weiVal = msg.value;
		address	investor	= msg.sender;
        require(investor != address(0) && weiVal >= minInvEth && weiVal <= maxInvEth);
		require(safeAdd(weiVal,whitelistLimit[investor]) <= maxInvEth);
		
		uint256	amount = 0;
		if(now > sellDeadline1)
			amount = safeMul(msg.value, ethFnkRate2);
		else
			amount = safeMul(msg.value, ethFnkRate1);	

		whitelistLimit[investor] = safeAdd(weiVal, whitelistLimit[investor]);
		airDeliver(investor, amount);		
	}

	function addWhitelist(address[] _addrs) public onlyOwner {
		require(_addrs.length <=  255);

		for (uint8 i = 0; i < _addrs.length; i++) {
			if (!whitelist[_addrs[i]]){
				whitelist[_addrs[i]] = true;
			}
		}
	}

	function balanceOf(address _owner) constant	public returns (uint256) {
		return balances[_owner].balance;
	}
	
	function freezeOf(address _owner) constant	public returns (uint256) {
        BalanceInfo storage bi = balances[_owner];
	    uint freezeAmount = 0;
		uint t = now;
		
        for(uint i=0;i< bi.freezeAmount.length;i++){
			if(t < bi.releaseTime[i])
            	freezeAmount += bi.freezeAmount[i];
        }
        return freezeAmount;
	}
	
	function transfer(address _to, uint256 _amount)	 isRunning onlyPayloadSize(2 *	32)	public returns (bool success) {
		require(_to	!= address(0));
		uint freezeAmount = freezeOf(msg.sender);
		uint256 _balance = safeSub(balances[msg.sender].balance, freezeAmount);
		require(_amount	<= _balance);
		
		balances[msg.sender].balance = safeSub(balances[msg.sender].balance,_amount);
		balances[_to].balance =	safeAdd(balances[_to].balance,_amount);
		Transfer(msg.sender, _to, _amount);
		return true;
	}
	
	function transferFrom(address _from, address _to, uint256 _amount) isRunning onlyPayloadSize(3 * 32) public returns (bool	success) {
		require(_to	!= address(0));
		require(_amount	<= balances[_from].balance);
		require(_amount	<= allowed[_from][msg.sender]);
		
		balances[_from].balance	= safeSub(balances[_from].balance,_amount);
		allowed[_from][msg.sender] = safeSub(allowed[_from][msg.sender],_amount);
		balances[_to].balance =	safeAdd(balances[_to].balance,_amount);
		Transfer(_from,	_to, _amount);
		return true;
	}
	
	function approve(address _spender, uint256 _value) isRunning public returns (bool	success) {
		if (_value != 0	&& allowed[msg.sender][_spender] !=	0) { 
			return	false; 
		}
		allowed[msg.sender][_spender] =	_value;
		Approval(msg.sender, _spender, _value);
		return true;
	}
	
	function allowance(address _owner, address _spender) constant public returns (uint256) {
		return allowed[_owner][_spender];
	}
	
	function withdraw()	onlyOwner public {
        require(this.balance > 0);
        owner.transfer(this.balance);
		Transfer(this, owner, this.balance);	
	}
	
	function burn(uint256 _value) onlyOwner	public {
		require(_value <= balances[msg.sender].balance);

		address	burner = msg.sender;
		balances[burner].balance = safeSub(balances[burner].balance, _value);
		totalSupply	= safeSub(totalSupply, _value);
		fnkSupply = totalSupply / fnkEthRate;
		Burn(burner, _value);
	}
	
	function mint(address _target, uint256 _amount) onlyOwner public {
		if(_target	== address(0))
			_target = owner;
		
		balances[_target].balance = safeAdd(balances[_target].balance, _amount);
		totalSupply = safeAdd(totalSupply,_amount);
		Transfer(0, this, _amount);
		Transfer(this, _target, _amount);
	}
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_amount","type":"uint256"}],"name":"airDeliverMulti","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"airDeliver","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":"_addrs","type":"address[]"},{"name":"_deliverAmount","type":"uint256"},{"name":"_freezeAmount","type":"uint256"},{"name":"_freezeMonth","type":"uint256"},{"name":"_unfreezeBeginTime","type":"uint256"}],"name":"freezeDeliverMuti","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_freezeAmount","type":"uint256"},{"name":"_freezeMonth","type":"uint256"},{"name":"_unfreezeBeginTime","type":"uint256"}],"name":"freezeDeliver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"freezeDuration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"beginSell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_rate1","type":"uint256"},{"name":"_rate2","type":"uint256"}],"name":"setPbulicOfferingPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_deliverAmounts","type":"uint256[]"},{"name":"_freezeAmounts","type":"uint256[]"},{"name":"_freezeMonth","type":"uint256"},{"name":"_unfreezeBeginTime","type":"uint256"}],"name":"freezeDeliverMultiStandalone","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":"ethFnkRate1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxInvEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyable","outputs":[{"name":"","type":"bool"}],"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":"pauseSell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_minVal","type":"uint256"},{"name":"_maxVal","type":"uint256"}],"name":"setPublicOfferingLimit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellDeadline2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"airDeliverStandalone","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellStartTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"freezeOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"minInvEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"running","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":true,"inputs":[],"name":"sellDeadline1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_deadLine1","type":"uint256"},{"name":"_deadLine2","type":"uint256"}],"name":"setPublicOfferingDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addrs","type":"address[]"}],"name":"addWhitelist","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":"ethFnkRate2","outputs":[{"name":"","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":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"BeginRunning","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseRunning","type":"event"},{"anonymous":false,"inputs":[],"name":"BeginSell","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"val","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Freeze","type":"event"}]

6060604052670de0b6b3a7640000600055631dcd650060019081556b019d971e4fe8401e7400000060025567016345785d8a0000600355674563918244f40000600455635aaa9880600555635ab13000600655635ab7c78060075562278d006008556117706009819055600a55600b805461ff001960ff1990911690921791909116610100179055341561009257600080fd5b600b80546201000060b060020a0319166201000033600160a060020a03908116820292909217928390556002549204166000908152600f6020526040812091909155611c349081906100e490396000f3006060604052600436106101ed5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101f7578063095ea7b3146102815780630c3e564a146102b75780630ea7c8cd1461030857806318160ddd1461032a5780632111c0f91461034f57806323b872dd146103b1578063313ce567146103d957806334d05b1f146103ec5780633ccfd60b1461041757806340c10f191461042a57806342966c681461044c578063440991bd1461046257806355d8bbd51461047557806359287ce914610488578063679019ba146104a157806370a082311461057757806377dd8ea7146105965780637d4ce874146105a95780638456cb59146105bc57806388c7e397146105cf57806395d89b41146105e25780639754a7d8146105f5578063984809bf146106085780639aea020b146106215780639b19251a14610634578063a9059cbb14610653578063b885d56014610675578063be9a655514610704578063cb60f8b414610717578063cd4217c11461072a578063d0febe4c146101ed578063d70b634214610749578063d85bd5261461075c578063dd62ed3e1461076f578063e28a5e6314610794578063e73140c1146107a7578063edac985b146107c3578063f2fde38b14610812578063fd12c1cb14610831575b6101f5610844565b005b341561020257600080fd5b61020a61099f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561024657808201518382015260200161022e565b50505050905090810190601f1680156102735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028c57600080fd5b6102a3600160a060020a03600435166024356109d6565b604051901515815260200160405180910390f35b34156102c257600080fd5b6101f560046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350610a9492505050565b341561031357600080fd5b6101f5600160a060020a0360043516602435610b01565b341561033557600080fd5b61033d610c44565b60405190815260200160405180910390f35b341561035a57600080fd5b6101f56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650508435946020810135945060408101359350606001359150610c4a9050565b34156103bc57600080fd5b6102a3600160a060020a0360043581169060243516604435610cbc565b34156103e457600080fd5b61033d610e3a565b34156103f757600080fd5b6101f5600160a060020a0360043516602435604435606435608435610e3f565b341561042257600080fd5b6101f5611105565b341561043557600080fd5b6101f5600160a060020a03600435166024356111b7565b341561045757600080fd5b6101f56004356112af565b341561046d57600080fd5b61033d61139a565b341561048057600080fd5b6101f56113a0565b341561049357600080fd5b6101f560043560243561143e565b34156104ac57600080fd5b6101f5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496505084359460200135935061146a92505050565b341561058257600080fd5b61033d600160a060020a036004351661151a565b34156105a157600080fd5b61033d611535565b34156105b457600080fd5b61033d61153b565b34156105c757600080fd5b6101f5611541565b34156105da57600080fd5b6102a36115ab565b34156105ed57600080fd5b61020a6115b9565b341561060057600080fd5b6101f56115f0565b341561061357600080fd5b6101f560043560243561168d565b341561062c57600080fd5b61033d6116b9565b341561063f57600080fd5b6102a3600160a060020a03600435166116bf565b341561065e57600080fd5b6102a3600160a060020a03600435166024356116d4565b341561068057600080fd5b6101f56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506117f095505050505050565b341561070f57600080fd5b6101f5611883565b341561072257600080fd5b61033d6118ef565b341561073557600080fd5b61033d600160a060020a03600435166118f5565b341561075457600080fd5b61033d611973565b341561076757600080fd5b6102a3611979565b341561077a57600080fd5b61033d600160a060020a0360043581169060243516611982565b341561079f57600080fd5b61033d6119ad565b34156107b257600080fd5b6101f56004356024356044356119b3565b34156107ce57600080fd5b6101f560046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506119e295505050505050565b341561081d57600080fd5b6101f5600160a060020a0360043516611ab9565b341561083c57600080fd5b61033d611b1c565b600b546000908190819060ff16151561085c57600080fd5b600b54610100900460ff16801561087557506005544210155b801561088357506007544211155b151561088e57600080fd5b600160a060020a0333166000908152600d602052604090205460ff1615156001146108b857600080fd5b349250339150600160a060020a038216158015906108d857506003548310155b80156108e657506004548311155b15156108f157600080fd5b600454600160a060020a0383166000908152600e6020526040902054610918908590611b22565b111561092357600080fd5b600090506006544211156109445761093d34600a54611b38565b9050610953565b61095034600954611b38565b90505b600160a060020a0382166000908152600e6020526040902054610977908490611b22565b600160a060020a0383166000908152600e602052604090205561099a8282610b01565b505050565b60408051908101604052600a81527f464e4b4f53546f6b656e00000000000000000000000000000000000000000000602082015281565b600b5460009060ff1615156109ea57600080fd5b8115801590610a1d5750600160a060020a033381166000908152600c602090815260408083209387168352929052205415155b15610a2a57506000610a8e565b600160a060020a033381166000818152600c6020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600b5460009033600160a060020a03908116620100009092041614610ab857600080fd5b60ff83511115610ac757600080fd5b5060005b82518160ff16101561099a57610af9838260ff1681518110610ae957fe5b9060200190602002015183610b01565b600101610acb565b600b5433600160a060020a03908116620100009092041614610b2257600080fd5b600b54600160a060020a0383811662010000909204161415610b4357600080fd5b60008111610b5057600080fd5b600b54620100009004600160a060020a03166000908152600f602052604090205481901015610b7e57600080fd5b600154811015610b8d57600054025b600b54620100009004600160a060020a03166000908152600f6020526040902054610bb89082611b5c565b600b54600160a060020a036201000090910481166000908152600f60205260408082209390935590841681522054610bf09082611b22565b600160a060020a038084166000818152600f60205260409081902093909355600b5490926201000090910490911690600080516020611be98339815191529084905190815260200160405180910390a35050565b60025481565b600b5460009033600160a060020a03908116620100009092041614610c6e57600080fd5b60ff86511115610c7d57600080fd5b5060005b8551811015610cb457610cac868281518110610c9957fe5b9060200190602002015186868686610e3f565b600101610c81565b505050505050565b600b5460009060ff161515610cd057600080fd5b60606064361015610cdd57fe5b600160a060020a0384161515610cf257600080fd5b600160a060020a0385166000908152600f6020526040902054831115610d1757600080fd5b600160a060020a038086166000908152600c602090815260408083203390941683529290522054831115610d4a57600080fd5b600160a060020a0385166000908152600f6020526040902054610d6d9084611b5c565b600160a060020a038087166000908152600f6020908152604080832094909455600c8152838220339093168252919091522054610daa9084611b5c565b600160a060020a038087166000908152600c6020908152604080832033851684528252808320949094559187168152600f9091522054610dea9084611b22565b600160a060020a038086166000818152600f602052604090819020939093559190871690600080516020611be98339815191529086905190815260200160405180910390a3506001949350505050565b601281565b600080610e4a611b6e565b610e52611b6e565b600b54600090819033600160a060020a03908116620100009092041614610e7857600080fd5b600b54600160a060020a038c811662010000909204161415610e9957600080fd5b60008811610ea657600080fd5b8789811515610eb157fe5b049550600f60008c600160a060020a0316600160a060020a03168152602001908152602001600020945087604051805910610ee95750595b9080825280602002602001820160405250935087604051805910610f0a5750595b908082528060200260200182016040525092506001548a1015610f3857600054998a02999889029895909502945b600b54620100009004600160a060020a03166000908152600f60205260409020548a9011610f6557600080fd5b889150861515610f7757600854420196505b5060005b60018803811015610fd05785848281518110610f9357fe5b6020908102909101015286838281518110610faa57fe5b602090810290910101526008549690960195610fc68287611b5c565b9150600101610f7b565b81848281518110610fdd57fe5b6020908102909101015286838281518110610ff457fe5b60209081029091010152845461100a908b611b22565b855560018501848051611021929160200190611b80565b5060028501838051611037929160200190611b80565b50600b54620100009004600160a060020a03166000908152600f6020526040902054611063908b611b5c565b600b8054600160a060020a03620100009182900481166000908152600f6020526040908190209490945591548e83169391900490911690600080516020611be9833981519152908d905190815260200160405180910390a38a600160a060020a03167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e08a60405190815260200160405180910390a25050505050505050505050565b600b5433600160a060020a0390811662010000909204161461112657600080fd5b6000600160a060020a033016311161113d57600080fd5b600b54600160a060020a036201000090910481169030163180156108fc0290604051600060405180830381858888f19350505050151561117c57600080fd5b600b54600160a060020a03620100009091048116903016600080516020611be9833981519152813160405190815260200160405180910390a3565b600b5433600160a060020a039081166201000090920416146111d857600080fd5b600160a060020a03821615156111fd57600b54620100009004600160a060020a031691505b600160a060020a0382166000908152600f60205260409020546112209082611b22565b600160a060020a0383166000908152600f60205260409020556002546112469082611b22565b600255600160a060020a0330166000600080516020611be98339815191528360405190815260200160405180910390a381600160a060020a031630600160a060020a0316600080516020611be98339815191528360405190815260200160405180910390a35050565b600b5460009033600160a060020a039081166201000090920416146112d357600080fd5b600160a060020a0333166000908152600f60205260409020548211156112f857600080fd5b5033600160a060020a0381166000908152600f602052604090205461131d9083611b5c565b600160a060020a0382166000908152600f60205260409020556002546113439083611b5c565b60028190556000549081151561135557fe5b04600155600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b60085481565b600b5433600160a060020a039081166201000090920416146113c157600080fd5b600b54610100900460ff1615806113d9575060055442105b806113e5575060075442115b15156113f057600080fd5b600b5460ff16151561140157600080fd5b600b805461ff0019166101001790557fd5b089eb0ec44264fc274d9a4adaafa6bfe78bdbeaf4b128d6871d5314057c5660405160405180910390a1565b600b5433600160a060020a0390811662010000909204161461145f57600080fd5b600991909155600a55565b600b5460009033600160a060020a0390811662010000909204161461148e57600080fd5b60ff8651111561149d57600080fd5b84518651146114ab57600080fd5b83518651146114b957600080fd5b5060005b8551811015610cb4576115128682815181106114d557fe5b906020019060200201518683815181106114eb57fe5b9060200190602002015186848151811061150157fe5b906020019060200201518686610e3f565b6001016114bd565b600160a060020a03166000908152600f602052604090205490565b60095481565b60045481565b600b5433600160a060020a0390811662010000909204161461156257600080fd5b600b5460ff16151561157357600080fd5b600b805460ff191690557f24faf5703cd024754e538120a7237535f1ea01677015f7e32f67be64b66d9dac60405160405180910390a1565b600b54610100900460ff1681565b60408051908101604052600581527f464e4b4f53000000000000000000000000000000000000000000000000000000602082015281565b600b5433600160a060020a0390811662010000909204161461161157600080fd5b600b54610100900460ff16801561162a57506005544210155b801561163857506007544211155b151561164357600080fd5b600b5460ff16151561165457600080fd5b600b805461ff00191690557fb9248e98c8764c68b0d9dd60de677553b9c38a5a521bbb362bb6f5aab6937e8960405160405180910390a1565b600b5433600160a060020a039081166201000090920416146116ae57600080fd5b600391909155600455565b60075481565b600d6020526000908152604090205460ff1681565b600b546000908190819060ff1615156116ec57600080fd5b604060443610156116f957fe5b600160a060020a038616151561170e57600080fd5b611717336118f5565b600160a060020a0333166000908152600f602052604090205490935061173d9084611b5c565b91508185111561174c57600080fd5b600160a060020a0333166000908152600f602052604090205461176f9086611b5c565b600160a060020a033381166000908152600f6020526040808220939093559088168152205461179e9086611b22565b600160a060020a038088166000818152600f60205260409081902093909355913390911690600080516020611be98339815191529088905190815260200160405180910390a350600195945050505050565b600b5460009033600160a060020a0390811662010000909204161461181457600080fd5b60ff8351111561182357600080fd5b815183511461183157600080fd5b5060005b82518160ff16101561099a5761187b838260ff168151811061185357fe5b90602001906020020151838360ff168151811061186c57fe5b90602001906020020151610b01565b600101611835565b600b5433600160a060020a039081166201000090920416146118a457600080fd5b600b5460ff16156118b457600080fd5b600b805460ff191660011790557ff999e0378b31fd060880ceb4bc403bc32de3d1000bee77078a09c7f1d929a51560405160405180910390a1565b60055481565b600160a060020a0381166000908152600f602052604081208142815b6001840154811015611969576002840180548290811061192d57fe5b906000526020600020900154821015611961576001840180548290811061195057fe5b906000526020600020900154830192505b600101611911565b5090949350505050565b60035481565b600b5460ff1681565b600160a060020a039182166000908152600c6020908152604080832093909416825291909152205490565b60065481565b600b5433600160a060020a039081166201000090920416146119d457600080fd5b600592909255600655600755565b600b5460009033600160a060020a03908116620100009092041614611a0657600080fd5b60ff82511115611a1557600080fd5b5060005b81518160ff161015611ab557600d6000838360ff1681518110611a3857fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff161515611aad576001600d6000848460ff1681518110611a7a57fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790555b600101611a19565b5050565b600b5433600160a060020a03908116620100009092041614611ada57600080fd5b600160a060020a03811615611b1957600b805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038416021790555b50565b600a5481565b600082820183811015611b3157fe5b9392505050565b6000828202831580611b545750828482811515611b5157fe5b04145b1515611b3157fe5b600082821115611b6857fe5b50900390565b60206040519081016040526000815290565b828054828255906000526020600020908101928215611bbb579160200282015b82811115611bbb578251825591602001919060010190611ba0565b50611bc7929150611bcb565b5090565b611be591905b80821115611bc75760008155600101611bd1565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058204872511f7f7c8a4c6b1a3ed6fe5bf58ed87a2eb28d4e29b1a79a3abd754c48620029

Deployed Bytecode

0x6060604052600436106101ed5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101f7578063095ea7b3146102815780630c3e564a146102b75780630ea7c8cd1461030857806318160ddd1461032a5780632111c0f91461034f57806323b872dd146103b1578063313ce567146103d957806334d05b1f146103ec5780633ccfd60b1461041757806340c10f191461042a57806342966c681461044c578063440991bd1461046257806355d8bbd51461047557806359287ce914610488578063679019ba146104a157806370a082311461057757806377dd8ea7146105965780637d4ce874146105a95780638456cb59146105bc57806388c7e397146105cf57806395d89b41146105e25780639754a7d8146105f5578063984809bf146106085780639aea020b146106215780639b19251a14610634578063a9059cbb14610653578063b885d56014610675578063be9a655514610704578063cb60f8b414610717578063cd4217c11461072a578063d0febe4c146101ed578063d70b634214610749578063d85bd5261461075c578063dd62ed3e1461076f578063e28a5e6314610794578063e73140c1146107a7578063edac985b146107c3578063f2fde38b14610812578063fd12c1cb14610831575b6101f5610844565b005b341561020257600080fd5b61020a61099f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561024657808201518382015260200161022e565b50505050905090810190601f1680156102735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028c57600080fd5b6102a3600160a060020a03600435166024356109d6565b604051901515815260200160405180910390f35b34156102c257600080fd5b6101f560046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350610a9492505050565b341561031357600080fd5b6101f5600160a060020a0360043516602435610b01565b341561033557600080fd5b61033d610c44565b60405190815260200160405180910390f35b341561035a57600080fd5b6101f56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650508435946020810135945060408101359350606001359150610c4a9050565b34156103bc57600080fd5b6102a3600160a060020a0360043581169060243516604435610cbc565b34156103e457600080fd5b61033d610e3a565b34156103f757600080fd5b6101f5600160a060020a0360043516602435604435606435608435610e3f565b341561042257600080fd5b6101f5611105565b341561043557600080fd5b6101f5600160a060020a03600435166024356111b7565b341561045757600080fd5b6101f56004356112af565b341561046d57600080fd5b61033d61139a565b341561048057600080fd5b6101f56113a0565b341561049357600080fd5b6101f560043560243561143e565b34156104ac57600080fd5b6101f5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496505084359460200135935061146a92505050565b341561058257600080fd5b61033d600160a060020a036004351661151a565b34156105a157600080fd5b61033d611535565b34156105b457600080fd5b61033d61153b565b34156105c757600080fd5b6101f5611541565b34156105da57600080fd5b6102a36115ab565b34156105ed57600080fd5b61020a6115b9565b341561060057600080fd5b6101f56115f0565b341561061357600080fd5b6101f560043560243561168d565b341561062c57600080fd5b61033d6116b9565b341561063f57600080fd5b6102a3600160a060020a03600435166116bf565b341561065e57600080fd5b6102a3600160a060020a03600435166024356116d4565b341561068057600080fd5b6101f56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496506117f095505050505050565b341561070f57600080fd5b6101f5611883565b341561072257600080fd5b61033d6118ef565b341561073557600080fd5b61033d600160a060020a03600435166118f5565b341561075457600080fd5b61033d611973565b341561076757600080fd5b6102a3611979565b341561077a57600080fd5b61033d600160a060020a0360043581169060243516611982565b341561079f57600080fd5b61033d6119ad565b34156107b257600080fd5b6101f56004356024356044356119b3565b34156107ce57600080fd5b6101f560046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506119e295505050505050565b341561081d57600080fd5b6101f5600160a060020a0360043516611ab9565b341561083c57600080fd5b61033d611b1c565b600b546000908190819060ff16151561085c57600080fd5b600b54610100900460ff16801561087557506005544210155b801561088357506007544211155b151561088e57600080fd5b600160a060020a0333166000908152600d602052604090205460ff1615156001146108b857600080fd5b349250339150600160a060020a038216158015906108d857506003548310155b80156108e657506004548311155b15156108f157600080fd5b600454600160a060020a0383166000908152600e6020526040902054610918908590611b22565b111561092357600080fd5b600090506006544211156109445761093d34600a54611b38565b9050610953565b61095034600954611b38565b90505b600160a060020a0382166000908152600e6020526040902054610977908490611b22565b600160a060020a0383166000908152600e602052604090205561099a8282610b01565b505050565b60408051908101604052600a81527f464e4b4f53546f6b656e00000000000000000000000000000000000000000000602082015281565b600b5460009060ff1615156109ea57600080fd5b8115801590610a1d5750600160a060020a033381166000908152600c602090815260408083209387168352929052205415155b15610a2a57506000610a8e565b600160a060020a033381166000818152600c6020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600b5460009033600160a060020a03908116620100009092041614610ab857600080fd5b60ff83511115610ac757600080fd5b5060005b82518160ff16101561099a57610af9838260ff1681518110610ae957fe5b9060200190602002015183610b01565b600101610acb565b600b5433600160a060020a03908116620100009092041614610b2257600080fd5b600b54600160a060020a0383811662010000909204161415610b4357600080fd5b60008111610b5057600080fd5b600b54620100009004600160a060020a03166000908152600f602052604090205481901015610b7e57600080fd5b600154811015610b8d57600054025b600b54620100009004600160a060020a03166000908152600f6020526040902054610bb89082611b5c565b600b54600160a060020a036201000090910481166000908152600f60205260408082209390935590841681522054610bf09082611b22565b600160a060020a038084166000818152600f60205260409081902093909355600b5490926201000090910490911690600080516020611be98339815191529084905190815260200160405180910390a35050565b60025481565b600b5460009033600160a060020a03908116620100009092041614610c6e57600080fd5b60ff86511115610c7d57600080fd5b5060005b8551811015610cb457610cac868281518110610c9957fe5b9060200190602002015186868686610e3f565b600101610c81565b505050505050565b600b5460009060ff161515610cd057600080fd5b60606064361015610cdd57fe5b600160a060020a0384161515610cf257600080fd5b600160a060020a0385166000908152600f6020526040902054831115610d1757600080fd5b600160a060020a038086166000908152600c602090815260408083203390941683529290522054831115610d4a57600080fd5b600160a060020a0385166000908152600f6020526040902054610d6d9084611b5c565b600160a060020a038087166000908152600f6020908152604080832094909455600c8152838220339093168252919091522054610daa9084611b5c565b600160a060020a038087166000908152600c6020908152604080832033851684528252808320949094559187168152600f9091522054610dea9084611b22565b600160a060020a038086166000818152600f602052604090819020939093559190871690600080516020611be98339815191529086905190815260200160405180910390a3506001949350505050565b601281565b600080610e4a611b6e565b610e52611b6e565b600b54600090819033600160a060020a03908116620100009092041614610e7857600080fd5b600b54600160a060020a038c811662010000909204161415610e9957600080fd5b60008811610ea657600080fd5b8789811515610eb157fe5b049550600f60008c600160a060020a0316600160a060020a03168152602001908152602001600020945087604051805910610ee95750595b9080825280602002602001820160405250935087604051805910610f0a5750595b908082528060200260200182016040525092506001548a1015610f3857600054998a02999889029895909502945b600b54620100009004600160a060020a03166000908152600f60205260409020548a9011610f6557600080fd5b889150861515610f7757600854420196505b5060005b60018803811015610fd05785848281518110610f9357fe5b6020908102909101015286838281518110610faa57fe5b602090810290910101526008549690960195610fc68287611b5c565b9150600101610f7b565b81848281518110610fdd57fe5b6020908102909101015286838281518110610ff457fe5b60209081029091010152845461100a908b611b22565b855560018501848051611021929160200190611b80565b5060028501838051611037929160200190611b80565b50600b54620100009004600160a060020a03166000908152600f6020526040902054611063908b611b5c565b600b8054600160a060020a03620100009182900481166000908152600f6020526040908190209490945591548e83169391900490911690600080516020611be9833981519152908d905190815260200160405180910390a38a600160a060020a03167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e08a60405190815260200160405180910390a25050505050505050505050565b600b5433600160a060020a0390811662010000909204161461112657600080fd5b6000600160a060020a033016311161113d57600080fd5b600b54600160a060020a036201000090910481169030163180156108fc0290604051600060405180830381858888f19350505050151561117c57600080fd5b600b54600160a060020a03620100009091048116903016600080516020611be9833981519152813160405190815260200160405180910390a3565b600b5433600160a060020a039081166201000090920416146111d857600080fd5b600160a060020a03821615156111fd57600b54620100009004600160a060020a031691505b600160a060020a0382166000908152600f60205260409020546112209082611b22565b600160a060020a0383166000908152600f60205260409020556002546112469082611b22565b600255600160a060020a0330166000600080516020611be98339815191528360405190815260200160405180910390a381600160a060020a031630600160a060020a0316600080516020611be98339815191528360405190815260200160405180910390a35050565b600b5460009033600160a060020a039081166201000090920416146112d357600080fd5b600160a060020a0333166000908152600f60205260409020548211156112f857600080fd5b5033600160a060020a0381166000908152600f602052604090205461131d9083611b5c565b600160a060020a0382166000908152600f60205260409020556002546113439083611b5c565b60028190556000549081151561135557fe5b04600155600160a060020a0381167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a25050565b60085481565b600b5433600160a060020a039081166201000090920416146113c157600080fd5b600b54610100900460ff1615806113d9575060055442105b806113e5575060075442115b15156113f057600080fd5b600b5460ff16151561140157600080fd5b600b805461ff0019166101001790557fd5b089eb0ec44264fc274d9a4adaafa6bfe78bdbeaf4b128d6871d5314057c5660405160405180910390a1565b600b5433600160a060020a0390811662010000909204161461145f57600080fd5b600991909155600a55565b600b5460009033600160a060020a0390811662010000909204161461148e57600080fd5b60ff8651111561149d57600080fd5b84518651146114ab57600080fd5b83518651146114b957600080fd5b5060005b8551811015610cb4576115128682815181106114d557fe5b906020019060200201518683815181106114eb57fe5b9060200190602002015186848151811061150157fe5b906020019060200201518686610e3f565b6001016114bd565b600160a060020a03166000908152600f602052604090205490565b60095481565b60045481565b600b5433600160a060020a0390811662010000909204161461156257600080fd5b600b5460ff16151561157357600080fd5b600b805460ff191690557f24faf5703cd024754e538120a7237535f1ea01677015f7e32f67be64b66d9dac60405160405180910390a1565b600b54610100900460ff1681565b60408051908101604052600581527f464e4b4f53000000000000000000000000000000000000000000000000000000602082015281565b600b5433600160a060020a0390811662010000909204161461161157600080fd5b600b54610100900460ff16801561162a57506005544210155b801561163857506007544211155b151561164357600080fd5b600b5460ff16151561165457600080fd5b600b805461ff00191690557fb9248e98c8764c68b0d9dd60de677553b9c38a5a521bbb362bb6f5aab6937e8960405160405180910390a1565b600b5433600160a060020a039081166201000090920416146116ae57600080fd5b600391909155600455565b60075481565b600d6020526000908152604090205460ff1681565b600b546000908190819060ff1615156116ec57600080fd5b604060443610156116f957fe5b600160a060020a038616151561170e57600080fd5b611717336118f5565b600160a060020a0333166000908152600f602052604090205490935061173d9084611b5c565b91508185111561174c57600080fd5b600160a060020a0333166000908152600f602052604090205461176f9086611b5c565b600160a060020a033381166000908152600f6020526040808220939093559088168152205461179e9086611b22565b600160a060020a038088166000818152600f60205260409081902093909355913390911690600080516020611be98339815191529088905190815260200160405180910390a350600195945050505050565b600b5460009033600160a060020a0390811662010000909204161461181457600080fd5b60ff8351111561182357600080fd5b815183511461183157600080fd5b5060005b82518160ff16101561099a5761187b838260ff168151811061185357fe5b90602001906020020151838360ff168151811061186c57fe5b90602001906020020151610b01565b600101611835565b600b5433600160a060020a039081166201000090920416146118a457600080fd5b600b5460ff16156118b457600080fd5b600b805460ff191660011790557ff999e0378b31fd060880ceb4bc403bc32de3d1000bee77078a09c7f1d929a51560405160405180910390a1565b60055481565b600160a060020a0381166000908152600f602052604081208142815b6001840154811015611969576002840180548290811061192d57fe5b906000526020600020900154821015611961576001840180548290811061195057fe5b906000526020600020900154830192505b600101611911565b5090949350505050565b60035481565b600b5460ff1681565b600160a060020a039182166000908152600c6020908152604080832093909416825291909152205490565b60065481565b600b5433600160a060020a039081166201000090920416146119d457600080fd5b600592909255600655600755565b600b5460009033600160a060020a03908116620100009092041614611a0657600080fd5b60ff82511115611a1557600080fd5b5060005b81518160ff161015611ab557600d6000838360ff1681518110611a3857fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205460ff161515611aad576001600d6000848460ff1681518110611a7a57fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790555b600101611a19565b5050565b600b5433600160a060020a03908116620100009092041614611ada57600080fd5b600160a060020a03811615611b1957600b805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a038416021790555b50565b600a5481565b600082820183811015611b3157fe5b9392505050565b6000828202831580611b545750828482811515611b5157fe5b04145b1515611b3157fe5b600082821115611b6857fe5b50900390565b60206040519081016040526000815290565b828054828255906000526020600020908101928215611bbb579160200282015b82811115611bbb578251825591602001919060010190611ba0565b50611bc7929150611bcb565b5090565b611be591905b80821115611bc75760008155600101611bd1565b905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058204872511f7f7c8a4c6b1a3ed6fe5bf58ed87a2eb28d4e29b1a79a3abd754c48620029

Swarm Source

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