ETH Price: $2,034.69 (+4.12%)
 

Overview

Max Total Supply

0 FOOD

Holders

0

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

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:
FoodcoinEcosystem

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-12-27
*/

/*
	Utility functions for safe math operations.  See link below for more information:
	https://ethereum.stackexchange.com/questions/15258/safemath-safe-add-function-assertions-against-overflows
*/
pragma solidity ^0.4.19;

contract SafeMath {

    function safeAdd(uint256 x, uint256 y) pure internal returns (uint256) {
        uint256 z = x + y;
        assert((z >= x) && (z >= y));
        return z;
    }

    function safeSubtract(uint256 x, uint256 y) pure internal returns (uint256) {
        assert(x >= y);
        uint256 z = x - y;
        return z;
    }

    function safeMult(uint256 x, uint256 y) pure internal returns (uint256) {
        uint256 z = x * y;
        assert((x == 0) || (z / x == y));
        return z;
    }

    function safeDiv(uint256 a, uint256 b) pure internal returns (uint256) {
        assert(b > 0);
        uint c = a / b;
        assert(a == b * c + a % b);
        return c;
    }
}

contract Owner {
	
	// Token Name
	string public name = "FoodCoin";
	// Token Symbol
	string public symbol = "FOOD";
	// Decimals
	uint256 public decimals = 8;
	// Version 
	string public version = "v1";
	
	// Emission Address
	address public emissionAddress = address(0);
	// Withdraw address
	address public withdrawAddress = address(0);
	
	// Owners Addresses
	mapping ( address => bool ) public ownerAddressMap;
	// Owner Address/Number
	mapping ( address => uint256 ) public ownerAddressNumberMap;
	// Owners List
	mapping ( uint256 => address ) public ownerListMap;
	// Amount of owners
	uint256 public ownerCountInt = 0;

	// Modifier - Owner
	modifier isOwner {
        require( ownerAddressMap[msg.sender]==true );
        _;
    }
	
	// Owner Creation/Activation
	function ownerOn( address _onOwnerAddress ) external isOwner returns (bool retrnVal) {
		// Check if it's a non-zero address
		require( _onOwnerAddress != address(0) );
		// If the owner is already exist
		if ( ownerAddressNumberMap[ _onOwnerAddress ]>0 )
		{
			// If the owner is disablead, activate him again
			if ( !ownerAddressMap[ _onOwnerAddress ] )
			{
				ownerAddressMap[ _onOwnerAddress ] = true;
				retrnVal = true;
			}
			else
			{
				retrnVal = false;
			}
		}
		// If the owner is not exist
		else
		{
			ownerAddressMap[ _onOwnerAddress ] = true;
			ownerAddressNumberMap[ _onOwnerAddress ] = ownerCountInt;
			ownerListMap[ ownerCountInt ] = _onOwnerAddress;
			ownerCountInt++;
			retrnVal = true;
		}
	}
	
	// Owner disabled
	function ownerOff( address _offOwnerAddress ) external isOwner returns (bool retrnVal) {
		// If owner exist and he is not 0 and active
		// 0 owner can`t be off
		if ( ownerAddressNumberMap[ _offOwnerAddress ]>0 && ownerAddressMap[ _offOwnerAddress ] )
		{
			ownerAddressMap[ _offOwnerAddress ] = false;
			retrnVal = true;
		}
		else
		{
			retrnVal = false;
		}
	}
	
	// Token name changing function
	function contractNameUpdate( string _newName, bool updateConfirmation ) external isOwner returns (bool retrnVal) {
		
		if ( updateConfirmation )
		{
			name = _newName;
			retrnVal = true;
		}
		else
		{
			retrnVal = false;
		}
	}
	
	// Token symbol changing function
	function contractSymbolUpdate( string _newSymbol, bool updateConfirmation ) external isOwner returns (bool retrnVal) {

		if ( updateConfirmation )
		{
			symbol = _newSymbol;
			retrnVal = true;
		}
		else
		{
			retrnVal = false;
		}
	}
	
	// Token decimals changing function
	function contractDecimalsUpdate( uint256 _newDecimals, bool updateConfirmation ) external isOwner returns (bool retrnVal) {
		
		if ( updateConfirmation && _newDecimals != decimals )
		{
			decimals = _newDecimals;
			retrnVal = true;
		}
		else
		{
			retrnVal = false;
		}
	}
	
	// New token emission address setting up 
	function emissionAddressUpdate( address _newEmissionAddress ) external isOwner {
		emissionAddress = _newEmissionAddress;
	}
	
	// New token withdrawing address setting up
	function withdrawAddressUpdate( address _newWithdrawAddress ) external isOwner {
		withdrawAddress = _newWithdrawAddress;
	}

	// Constructor adds owner to undeletable list
	function Owner() public {
		// Owner creation
		ownerAddressMap[ msg.sender ] = true;
		ownerAddressNumberMap[ msg.sender ] = ownerCountInt;
		ownerListMap[ ownerCountInt ] = msg.sender;
		ownerCountInt++;
	}
}

contract SpecialManager is Owner {

	// Special Managers Addresses
	mapping ( address => bool ) public specialManagerAddressMap;
	// Special Manager Address/Number Mapping
	mapping ( address => uint256 ) public specialManagerAddressNumberMap;
	// Special Managers List
	mapping ( uint256 => address ) public specialManagerListMap;
	// Special Manager Amount
	uint256 public specialManagerCountInt = 0;
	
	// Special Manager or Owner modifier
	modifier isSpecialManagerOrOwner {
        require( specialManagerAddressMap[msg.sender]==true || ownerAddressMap[msg.sender]==true );
        _;
    }
	
	// Special Manager creation/actination
	function specialManagerOn( address _onSpecialManagerAddress ) external isOwner returns (bool retrnVal) {
		// Check if it's a non-zero address
		require( _onSpecialManagerAddress != address(0) );
		// If this special manager already exists
		if ( specialManagerAddressNumberMap[ _onSpecialManagerAddress ]>0 )
		{
			// If this special manager disabled, activate him again
			if ( !specialManagerAddressMap[ _onSpecialManagerAddress ] )
			{
				specialManagerAddressMap[ _onSpecialManagerAddress ] = true;
				retrnVal = true;
			}
			else
			{
				retrnVal = false;
			}
		}
		// If this special manager doesn`t exist
		else
		{
			specialManagerAddressMap[ _onSpecialManagerAddress ] = true;
			specialManagerAddressNumberMap[ _onSpecialManagerAddress ] = specialManagerCountInt;
			specialManagerListMap[ specialManagerCountInt ] = _onSpecialManagerAddress;
			specialManagerCountInt++;
			retrnVal = true;
		}
	}
	
	// Special manager disactivation
	function specialManagerOff( address _offSpecialManagerAddress ) external isOwner returns (bool retrnVal) {
		// If this special manager exists and he is non-zero and also active 
		// 0-number manager can`t be disactivated
		if ( specialManagerAddressNumberMap[ _offSpecialManagerAddress ]>0 && specialManagerAddressMap[ _offSpecialManagerAddress ] )
		{
			specialManagerAddressMap[ _offSpecialManagerAddress ] = false;
			retrnVal = true;
		}
		else
		{
			retrnVal = false;
		}
	}


	// Constructor adds owner to superowner list
	function SpecialManager() public {
		// owner creation
		specialManagerAddressMap[ msg.sender ] = true;
		specialManagerAddressNumberMap[ msg.sender ] = specialManagerCountInt;
		specialManagerListMap[ specialManagerCountInt ] = msg.sender;
		specialManagerCountInt++;
	}
}


contract Manager is SpecialManager {
	
	// Managers addresses
	mapping ( address => bool ) public managerAddressMap;
	// Manager Address/Number Mapping
	mapping ( address => uint256 ) public managerAddressNumberMap;
	// Managers` List
	mapping ( uint256 => address ) public managerListMap;
	// Amount of managers
	uint256 public managerCountInt = 0;
	
	// Modifier - Manager Or Owner
	modifier isManagerOrOwner {
        require( managerAddressMap[msg.sender]==true || ownerAddressMap[msg.sender]==true );
        _;
    }
	
	// Owner Creation/Activation
	function managerOn( address _onManagerAddress ) external isOwner returns (bool retrnVal) {
		// Check if it's a non-zero address
		require( _onManagerAddress != address(0) );
		// If this special manager exists
		if ( managerAddressNumberMap[ _onManagerAddress ]>0 )
		{
			// If this special manager disabled, activate him again
			if ( !managerAddressMap[ _onManagerAddress ] )
			{
				managerAddressMap[ _onManagerAddress ] = true;
				retrnVal = true;
			}
			else
			{
				retrnVal = false;
			}
		}
		// If this special manager doesn`t exist
		else
		{
			managerAddressMap[ _onManagerAddress ] = true;
			managerAddressNumberMap[ _onManagerAddress ] = managerCountInt;
			managerListMap[ managerCountInt ] = _onManagerAddress;
			managerCountInt++;
			retrnVal = true;
		}
	}
	
	// Manager disactivation
	function managerOff( address _offManagerAddress ) external isOwner returns (bool retrnVal) {
		// if it's a non-zero manager and already exists and active
		// 0-number manager can`t be disactivated
		if ( managerAddressNumberMap[ _offManagerAddress ]>0 && managerAddressMap[ _offManagerAddress ] )
		{
			managerAddressMap[ _offManagerAddress ] = false;
			retrnVal = true;
		}
		else
		{
			retrnVal = false;
		}
	}


	// Constructor adds owner to manager list 
	function Manager() public {
		// manager creation
		managerAddressMap[ msg.sender ] = true;
		managerAddressNumberMap[ msg.sender ] = managerCountInt;
		managerListMap[ managerCountInt ] = msg.sender;
		managerCountInt++;
	}
}


contract Management is Manager {
	
	// Description
	string public description = "";
	
	// Current tansaction status 
	// TRUE - tansaction available
	// FALSE - tansaction not available
	bool public transactionsOn = false;
	// Special permissions to allow/prohibit transactions to move tokens for specific accounts
	// 0 - depends on transactionsOn
	// 1 - always "forbidden"
	// 2 - always "allowed"
	mapping ( address => uint256 ) public transactionsOnForHolder;
	
	
	// Displaying tokens in the balanceOf function for all tokens
	// TRUE - Displaying available
	// FALSE - Displaying hidden, shows 0. Checking the token balance available in function balanceOfReal
	bool public balanceOfOn = true;
	// Displaying the token balance in function balanceOfReal for definit holder
	// 0 - depends on transactionsOn
	// 1 - always "forbidden"
	// 2 - always "allowed"
	mapping ( address => uint256 ) public balanceOfOnForHolder;
	
	
	// Current emission status
	// TRUE - emission is available, managers may add tokens to contract
	// FALSE - emission isn`t available, managers may not add tokens to contract
	bool public emissionOn = true;

	// emission cap
	uint256 public tokenCreationCap = 0;
	
	// Addresses list for verification of acoounts owners
	// Addresses
	mapping ( address => bool ) public verificationAddressMap;
	// Verification Address/Number Mapping
	mapping ( address => uint256 ) public verificationAddressNumberMap;
	// Verification List Mapping
	mapping ( uint256 => address ) public verificationListMap;
	// Amount of verifications
	uint256 public verificationCountInt = 1;
	
	// Verification holding
	// Verification Holders Timestamp
	mapping (address => uint256) public verificationHoldersTimestampMap;
	// Verification Holders Value
	mapping (address => uint256) public verificationHoldersValueMap;
	// Verification Holders Verifier Address
	mapping (address => address) public verificationHoldersVerifierAddressMap;
	// Verification Address Holders List Count
	mapping (address => uint256) public verificationAddressHoldersListCountMap;
	// Verification Address Holders List Number
	mapping (address => mapping ( uint256 => address )) public verificationAddressHoldersListNumberMap;
	
	// Modifier - Transactions On
	modifier isTransactionsOn( address addressFrom ) {
		
		require( transactionsOnNowVal( addressFrom ) );
		_;
    }
	
	// Modifier - Emission On
	modifier isEmissionOn{
        require( emissionOn );
        _;
    }
	
	// Function transactions On now validate for definit address 
	function transactionsOnNowVal( address addressFrom ) public view returns( bool )
	{
		return ( transactionsOnForHolder[ addressFrom ]==0 && transactionsOn ) || transactionsOnForHolder[ addressFrom ]==2 ;
	}
	
	// transaction allow/forbidden for definit token holder
	function transactionsOnForHolderUpdate( address _to, uint256 _newValue ) external isOwner
	{
		if ( transactionsOnForHolder[ _to ] != _newValue )
		{
			transactionsOnForHolder[ _to ] = _newValue;
		}
	}

	// Function of changing allow/forbidden transfer status
	function transactionsStatusUpdate( bool _on ) external isOwner
	{
		transactionsOn = _on;
	}
	
	// Function of changing emission status
	function emissionStatusUpdate( bool _on ) external isOwner
	{
		emissionOn = _on;
	}
	
	// Emission cap setting up
	function tokenCreationCapUpdate( uint256 _newVal ) external isOwner
	{
		tokenCreationCap = _newVal;
	}
	
	// balanceOfOnForHolder; balanceOfOn
	
	// Function on/off token displaying in function balanceOf
	function balanceOfOnUpdate( bool _on ) external isOwner
	{
		balanceOfOn = _on;
	}
	
	// Function on/off token displaying in function balanceOf for definit token holder
	function balanceOfOnForHolderUpdate( address _to, uint256 _newValue ) external isOwner
	{
		if ( balanceOfOnForHolder[ _to ] != _newValue )
		{
			balanceOfOnForHolder[ _to ] = _newValue;
		}
	}
	
	
	// Function adding of new verification address
	function verificationAddressOn( address _onVerificationAddress ) external isOwner returns (bool retrnVal) {
		// Check if it's a non-zero address
		require( _onVerificationAddress != address(0) );
		// If this address is already exists
		if ( verificationAddressNumberMap[ _onVerificationAddress ]>0 )
		{
			// If address off, activate it again
			if ( !verificationAddressMap[ _onVerificationAddress ] )
			{
				verificationAddressMap[ _onVerificationAddress ] = true;
				retrnVal = true;
			}
			else
			{
				retrnVal = false;
			}
		}
		// If this address doesn`t exist
		else
		{
			verificationAddressMap[ _onVerificationAddress ] = true;
			verificationAddressNumberMap[ _onVerificationAddress ] = verificationCountInt;
			verificationListMap[ verificationCountInt ] = _onVerificationAddress;
			verificationCountInt++;
			retrnVal = true;
		}
	}
	
	// Function of disactivation of verification address
	function verificationOff( address _offVerificationAddress ) external isOwner returns (bool retrnVal) {
		// If this verification address exists and disabled
		if ( verificationAddressNumberMap[ _offVerificationAddress ]>0 && verificationAddressMap[ _offVerificationAddress ] )
		{
			verificationAddressMap[ _offVerificationAddress ] = false;
			retrnVal = true;
		}
		else
		{
			retrnVal = false;
		}
	}
	
	// Event "Description updated"
	event DescriptionPublished( string _description, address _initiator);
	
	// Description update
	function descriptionUpdate( string _newVal ) external isOwner
	{
		description = _newVal;
		DescriptionPublished( _newVal, msg.sender );
	}
}

// Token contract FoodCoin Ecosystem
contract FoodcoinEcosystem is SafeMath, Management {
	
	// Token total supply
	uint256 public totalSupply = 0;
	
	// Balance
	mapping ( address => uint256 ) balances;
	// Balances List Address
	mapping ( uint256 => address ) public balancesListAddressMap;
	// Balances List/Number Mapping
	mapping ( address => uint256 ) public balancesListNumberMap;
	// Balances Address Description
	mapping ( address => string ) public balancesAddressDescription;
	// Total amount of all balances
	uint256 balancesCountInt = 1;
	
	// Forwarding of address managing for definit amount of tokens
	mapping ( address => mapping ( address => uint256 ) ) allowed;
	
	
	// Standard ERC-20 events
	// Event - token transfer
	event Transfer( address indexed from, address indexed to, uint value );
	// Event - Forwarding of address managing
    event Approval( address indexed owner, address indexed spender, uint value );
	
	// Token transfer
	event FoodTransferEvent( address from, address to, uint256 value, address initiator, uint256 newBalanceFrom, uint256 newBalanceTo );
	// Event - Emission
	event FoodTokenEmissionEvent( address initiator, address to, uint256 value, bool result, uint256 newBalanceTo );
	// Event - Withdraw
	event FoodWithdrawEvent( address initiator, address to, bool withdrawOk, uint256 withdraw, uint256 withdrawReal, uint256 newBalancesValue );
	
	
	// Balance View
	function balanceOf( address _owner ) external view returns ( uint256 )
	{
		// If allows to display balance for all or definit holder
		if ( ( balanceOfOnForHolder[ _owner ]==0 && balanceOfOn ) || balanceOfOnForHolder[ _owner ]==2 )
		{
			return balances[ _owner ];
		}
		else
		{
			return 0;
		}
	}
	// Real Balance View
	function balanceOfReal( address _owner ) external view returns ( uint256 )
	{
		return balances[ _owner ];
	}
	// Check if a given user has been delegated rights to perform transfers on behalf of the account owner
	function allowance( address _owner, address _initiator ) external view returns ( uint256 remaining )
	{
		return allowed[ _owner ][ _initiator ];
	}
	// Total balances quantity
	function balancesQuantity() external view returns ( uint256 )
	{
		return balancesCountInt - 1;
	}
	
	// Function of token transaction. For the first transaction will be created the detailed information
	function _addClientAddress( address _balancesAddress, uint256 _amount ) internal
	{
		// check if this address is not on the list yet
		if ( balancesListNumberMap[ _balancesAddress ] == 0 )
		{
			// add it to the list
			balancesListAddressMap[ balancesCountInt ] = _balancesAddress;
			balancesListNumberMap[ _balancesAddress ] = balancesCountInt;
			// increment account counter
			balancesCountInt++;
		}
		// add tokens to the account 
		balances[ _balancesAddress ] = safeAdd( balances[ _balancesAddress ], _amount );
	}
	// Internal function that performs the actual transfer (cannot be called externally)
	function _transfer( address _from, address _to, uint256 _value ) internal isTransactionsOn( _from ) returns ( bool success )
	{
		// If the amount to transfer is greater than 0, and sender has funds available
		if ( _value > 0 && balances[ _from ] >= _value )
		{
			// Subtract from sender account
			balances[ _from ] -= _value;
			// Add to receiver's account
			_addClientAddress( _to, _value );
			// Perform the transfer
			Transfer( _from, _to, _value );
			FoodTransferEvent( _from, _to, _value, msg.sender, balances[ _from ], balances[ _to ] );
			// Successfully completed transfer
			return true;
		}
		// Return false if there are problems
		else
		{
			return false;
		}
	}
	// Function token transfer
	function transfer(address _to, uint256 _value) external returns ( bool success )
	{
		// If it is transfer to verification address
		if ( verificationAddressNumberMap[ _to ]>0 )
		{
			_verification(msg.sender, _to, _value);
		}
		// Regular transfer
		else
		{
			// Call function transfer. 
			return _transfer( msg.sender, _to, _value );
		}
	}
	// Function of transferring tokens from a delegated account
	function transferFrom(address _from, address _to, uint256 _value) external isTransactionsOn( _from ) returns ( bool success )
	{
		// Regular transfer. Not to verification address
		require( verificationAddressNumberMap[ _to ]==0 );
		// Check if the transfer initiator has permissions to move funds from the sender's account
		if ( allowed[_from][msg.sender] >= _value )
		{
			// If yes - perform transfer 
			if ( _transfer( _from, _to, _value ) )
			{
				// Decrease the total amount that initiator has permissions to access
				allowed[_from][msg.sender] = safeSubtract(allowed[_from][msg.sender], _value);
				return true;
			}
			else
			{
				return false;
			}
		}
		else
		{
			return false;
		}
	}
	// Function of delegating account management for a certain amount
	function approve( address _initiator, uint256 _value ) external isTransactionsOn( msg.sender ) returns ( bool success )
	{
		// Grant the rights for a certain amount of tokens only
		allowed[ msg.sender ][ _initiator ] = _value;
		// Initiate the Approval event
		Approval( msg.sender, _initiator, _value );
		return true;
	}
	
	// The emission function (the manager or contract owner creates tokens and sends them to a specific account)
	function _emission (address _reciever, uint256 _amount) internal isManagerOrOwner isEmissionOn returns ( bool returnVal )
	{
		// if non-zero address
		if ( _reciever != address(0) )
		{
			// Calculate number of tokens after generation
			uint256 checkedSupply = safeAdd( totalSupply, _amount );
			// Emission amount
			uint256 amountTmp = _amount;
			// If emission cap settled additional emission is impossible
			if ( tokenCreationCap > 0 && tokenCreationCap < checkedSupply )
			{
				amountTmp = 0;
			}
			// if try to add more than 0 tokens
			if ( amountTmp > 0 )
			{
				// If no error, add generated tokens to a given address
				_addClientAddress( _reciever, amountTmp );
				// increase total supply of tokens
				totalSupply = checkedSupply;
				// event "token transfer"
				Transfer( emissionAddress, _reciever, amountTmp );
				// event "emission successfull"
				FoodTokenEmissionEvent( msg.sender, _reciever, _amount, true, balances[ _reciever ] );
			}
			else
			{
				returnVal = false;
				// event "emission failed"
				FoodTokenEmissionEvent( msg.sender, _reciever, _amount, false, balances[ _reciever ] );
			}
		}
	}
	// emission to definit 1 address
	function tokenEmission(address _reciever, uint256 _amount) external isManagerOrOwner isEmissionOn returns ( bool returnVal )
	{
		// Check if it's a non-zero address
		require( _reciever != address(0) );
		// emission in process
		returnVal = _emission( _reciever, _amount );
	}
	// adding 5 addresses at once
	function tokenEmission5( address _reciever_0, uint256 _amount_0, address _reciever_1, uint256 _amount_1, address _reciever_2, uint256 _amount_2, address _reciever_3, uint256 _amount_3, address _reciever_4, uint256 _amount_4 ) external isManagerOrOwner isEmissionOn
	{
		_emission( _reciever_0, _amount_0 );
		_emission( _reciever_1, _amount_1 );
		_emission( _reciever_2, _amount_2 );
		_emission( _reciever_3, _amount_3 );
		_emission( _reciever_4, _amount_4 );
	}
	
	// Function Tokens withdraw
	function withdraw( address _to, uint256 _amount ) external isSpecialManagerOrOwner returns ( bool returnVal, uint256 withdrawValue, uint256 newBalancesValue )
	{
		// check if this is a valid account
		if ( balances[ _to ] > 0 )
		{
			// Withdraw amount
			uint256 amountTmp = _amount;
			// It is impossible to withdraw more than available on balance
			if ( balances[ _to ] < _amount )
			{
				amountTmp = balances[ _to ];
			}
			// Withdraw in process
			balances[ _to ] = safeSubtract( balances[ _to ], amountTmp );
			// Changing of current tokens amount
			totalSupply = safeSubtract( totalSupply, amountTmp );
			// Return reply
			returnVal = true;
			withdrawValue = amountTmp;
			newBalancesValue = balances[ _to ];
			FoodWithdrawEvent( msg.sender, _to, true, _amount, amountTmp, balances[ _to ] );
			// Event "Token transfer"
			Transfer( _to, withdrawAddress, amountTmp );
		}
		else
		{
			returnVal = false;
			withdrawValue = 0;
			newBalancesValue = 0;
			FoodWithdrawEvent( msg.sender, _to, false, _amount, 0, balances[ _to ] );
		}
	}
	
	// Balance description update
	function balancesAddressDescriptionUpdate( string _newDescription ) external returns ( bool returnVal )
	{
		// If this address or contrat`s owher exists
		if ( balancesListNumberMap[ msg.sender ] > 0 || ownerAddressMap[msg.sender]==true )
		{
			balancesAddressDescription[ msg.sender ] = _newDescription;
			returnVal = true;
		}
		else
		{
			returnVal = false;
		}
	}
	
	// Recording of verification details
	function _verification( address _from, address _verificationAddress, uint256 _value) internal
	{
		// If verification address is active
		require( verificationAddressMap[ _verificationAddress ] );
		
		// If it is updating of already verificated address
		if ( verificationHoldersVerifierAddressMap[ _from ] == _verificationAddress )
		{
			// Verification Address Holders List Count
			uint256 tmpNumberVerification = verificationAddressHoldersListCountMap[ _verificationAddress ];
			verificationAddressHoldersListCountMap[ _verificationAddress ]++;
			// Verification Address Holders List Number
			verificationAddressHoldersListNumberMap[ _verificationAddress ][ tmpNumberVerification ] = _from;
		}
		
		// Verification Holders Timestamp 
		verificationHoldersTimestampMap[ _from ] = now;
		// Verification Value
		verificationHoldersValueMap[ _from ] = _value;
		// Verification Holders Verifier Address
		verificationHoldersVerifierAddressMap[ _from ] = _verificationAddress;
	}
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addressFrom","type":"address"}],"name":"transactionsOnNowVal","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_initiator","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_onVerificationAddress","type":"address"}],"name":"verificationAddressOn","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"withdrawAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"verificationHoldersVerifierAddressMap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_offManagerAddress","type":"address"}],"name":"managerOff","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOfReal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balancesQuantity","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_on","type":"bool"}],"name":"balanceOfOnUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_onSpecialManagerAddress","type":"address"}],"name":"specialManagerOn","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownerCountInt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"specialManagerAddressMap","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"transactionsOnForHolder","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"verificationAddressHoldersListCountMap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"verificationAddressHoldersListNumberMap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newEmissionAddress","type":"address"}],"name":"emissionAddressUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_onOwnerAddress","type":"address"}],"name":"ownerOn","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transactionsOn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"verificationCountInt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ownerAddressMap","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newDecimals","type":"uint256"},{"name":"updateConfirmation","type":"bool"}],"name":"contractDecimalsUpdate","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOfOnForHolder","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"managerAddressMap","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newVal","type":"string"}],"name":"descriptionUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_newValue","type":"uint256"}],"name":"balanceOfOnForHolderUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_offSpecialManagerAddress","type":"address"}],"name":"specialManagerOff","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newName","type":"string"},{"name":"updateConfirmation","type":"bool"}],"name":"contractNameUpdate","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"verificationHoldersTimestampMap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenCreationCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"description","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"specialManagerAddressNumberMap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"emissionOn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"specialManagerCountInt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"managerListMap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_offVerificationAddress","type":"address"}],"name":"verificationOff","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"verificationAddressMap","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":"_onManagerAddress","type":"address"}],"name":"managerOn","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_reciever","type":"address"},{"name":"_amount","type":"uint256"}],"name":"tokenEmission","outputs":[{"name":"returnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"verificationAddressNumberMap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"verificationListMap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_on","type":"bool"}],"name":"emissionStatusUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balancesListNumberMap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newWithdrawAddress","type":"address"}],"name":"withdrawAddressUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"emissionAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_on","type":"bool"}],"name":"transactionsStatusUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"specialManagerListMap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newDescription","type":"string"}],"name":"balancesAddressDescriptionUpdate","outputs":[{"name":"returnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"ownerListMap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_initiator","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceOfOn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"managerAddressNumberMap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balancesAddressDescription","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"verificationHoldersValueMap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"managerCountInt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"balancesListAddressMap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newVal","type":"uint256"}],"name":"tokenCreationCapUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ownerAddressNumberMap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[{"name":"returnVal","type":"bool"},{"name":"withdrawValue","type":"uint256"},{"name":"newBalancesValue","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_reciever_0","type":"address"},{"name":"_amount_0","type":"uint256"},{"name":"_reciever_1","type":"address"},{"name":"_amount_1","type":"uint256"},{"name":"_reciever_2","type":"address"},{"name":"_amount_2","type":"uint256"},{"name":"_reciever_3","type":"address"},{"name":"_amount_3","type":"uint256"},{"name":"_reciever_4","type":"address"},{"name":"_amount_4","type":"uint256"}],"name":"tokenEmission5","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_offOwnerAddress","type":"address"}],"name":"ownerOff","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_newValue","type":"uint256"}],"name":"transactionsOnForHolderUpdate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newSymbol","type":"string"},{"name":"updateConfirmation","type":"bool"}],"name":"contractSymbolUpdate","outputs":[{"name":"retrnVal","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"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":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"initiator","type":"address"},{"indexed":false,"name":"newBalanceFrom","type":"uint256"},{"indexed":false,"name":"newBalanceTo","type":"uint256"}],"name":"FoodTransferEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"initiator","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"result","type":"bool"},{"indexed":false,"name":"newBalanceTo","type":"uint256"}],"name":"FoodTokenEmissionEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"initiator","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"withdrawOk","type":"bool"},{"indexed":false,"name":"withdraw","type":"uint256"},{"indexed":false,"name":"withdrawReal","type":"uint256"},{"indexed":false,"name":"newBalancesValue","type":"uint256"}],"name":"FoodWithdrawEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_description","type":"string"},{"indexed":false,"name":"_initiator","type":"address"}],"name":"DescriptionPublished","type":"event"}]

606060405260408051908101604052600881527f466f6f64436f696e000000000000000000000000000000000000000000000000602082015260009080516200004d9291602001906200023b565b5060408051908101604052600481527f464f4f440000000000000000000000000000000000000000000000000000000060208201526001908051620000979291602001906200023b565b50600860025560408051908101604052600281527f763100000000000000000000000000000000000000000000000000000000000060208201526003908051620000e69291602001906200023b565b5060048054600160a060020a031990811690915560058054909116905560006009819055600d8190556011556020604051908101604052600081526012908051620001369291602001906200023b565b506013805460ff1990811690915560158054821660019081179091556017805483168217905560006018819055601c82905560228190556027829055600160a060020a033316808252600660209081526040808420805487168617905560098054600784528286208190558552600883528185208054600160a060020a0319908116861790915581548701909155838552600a83528185208054881687179055600d8054600b85528387208190558652600c84528286208054831686179055805487019055838552600e83528185208054909716861790965560118054600f8452828620819055855260109092529092208054909416179092558154019055620002e0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200027e57805160ff1916838001178555620002ae565b82800160010185558215620002ae579182015b82811115620002ae57825182559160200191906001019062000291565b50620002bc929150620002c0565b5090565b620002dd91905b80821115620002bc5760008155600101620002c7565b90565b61278c80620002f06000396000f3006060604052600436106103375763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461033c57806307b86b41146103c6578063095ea7b3146103f957806310d48cd31461041b5780631581b6001461043a57806316210e251461046957806318160ddd146104885780631855e405146104ad5780631c96b242146104cc5780632322f484146104eb5780632354ecf7146104fe57806323b872dd146105185780632980a7b614610540578063313ce5671461055f578063332fa5bb1461057257806337c345cd146105855780634067ffda146105a4578063418ae602146105c35780634381e1c5146105e25780634a3e8078146106045780634e232730146106235780635120bb201461064257806354fd4d50146106555780635634653d146106685780635788a0811461067b5780635a89b3761461069a578063612ab238146106b557806361314ee3146106d457806366357f57146106f357806369bef517146107115780636a87f66d146107335780636be67db3146107525780636edbeb1c146107765780636f7920fd1461079557806370a08231146107a85780637284e416146107c7578063832b2c60146107da57806384e1bf74146107f9578063855c145b1461080c57806387113b881461081f578063902753f414610835578063953bad321461085457806395d89b411461087357806396f2710d146108865780639739951c146108a557806398a42ec4146108c7578063994fe290146108e65780639f3edbe1146108fc578063a6ffefae14610914578063a9059cbb14610933578063b986b61114610955578063bcb3282814610974578063c047c1d814610987578063c0d3f3781461099f578063c96304e8146109b5578063c96c8a1d146109d3578063dd62ed3e146109e9578063deb93b5b14610a0e578063e7a3540514610a21578063e7d137ec14610a40578063e8c09c0d14610a5f578063ed861e1314610a7e578063ef2a914714610a91578063f234bac514610aa7578063f317b85b14610abd578063f3fef3a314610adc578063f8c9516014610b24578063f9b4d63a14610b70578063fe16e86214610b8f578063ffe0a9f214610bb1575b600080fd5b341561034757600080fd5b61034f610bd5565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561038b578082015183820152602001610373565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103d157600080fd5b6103e5600160a060020a0360043516610c73565b604051901515815260200160405180910390f35b341561040457600080fd5b6103e5600160a060020a0360043516602435610cc6565b341561042657600080fd5b6103e5600160a060020a0360043516610d47565b341561044557600080fd5b61044d610e58565b604051600160a060020a03909116815260200160405180910390f35b341561047457600080fd5b61044d600160a060020a0360043516610e67565b341561049357600080fd5b61049b610e82565b60405190815260200160405180910390f35b34156104b857600080fd5b6103e5600160a060020a0360043516610e88565b34156104d757600080fd5b61049b600160a060020a0360043516610f25565b34156104f657600080fd5b61049b610f40565b341561050957600080fd5b6105166004351515610f4b565b005b341561052357600080fd5b6103e5600160a060020a0360043581169060243516604435610f88565b341561054b57600080fd5b6103e5600160a060020a036004351661106e565b341561056a57600080fd5b61049b611176565b341561057d57600080fd5b61049b61117c565b341561059057600080fd5b6103e5600160a060020a0360043516611182565b34156105af57600080fd5b61049b600160a060020a0360043516611197565b34156105ce57600080fd5b61049b600160a060020a03600435166111a9565b34156105ed57600080fd5b61044d600160a060020a03600435166024356111ba565b341561060f57600080fd5b610516600160a060020a03600435166111e0565b341561062e57600080fd5b6103e5600160a060020a036004351661122c565b341561064d57600080fd5b6103e5611334565b341561066057600080fd5b61034f61133d565b341561067357600080fd5b61049b6113a8565b341561068657600080fd5b6103e5600160a060020a03600435166113ae565b34156106a557600080fd5b6103e560043560243515156113c3565b34156106c057600080fd5b61049b600160a060020a0360043516611418565b34156106df57600080fd5b6103e5600160a060020a036004351661142a565b34156106fe57600080fd5b610516600480356024810191013561143f565b341561071c57600080fd5b610516600160a060020a03600435166024356114d8565b341561073e57600080fd5b6103e5600160a060020a0360043516611541565b341561075d57600080fd5b6103e560246004803582810192910135903515156115d6565b341561078157600080fd5b61049b600160a060020a0360043516611627565b34156107a057600080fd5b61049b611639565b34156107b357600080fd5b61049b600160a060020a036004351661163f565b34156107d257600080fd5b61034f6116ae565b34156107e557600080fd5b61049b600160a060020a0360043516611719565b341561080457600080fd5b6103e561172b565b341561081757600080fd5b61049b611734565b341561082a57600080fd5b61044d60043561173a565b341561084057600080fd5b6103e5600160a060020a0360043516611755565b341561085f57600080fd5b6103e5600160a060020a03600435166117ea565b341561087e57600080fd5b61034f6117ff565b341561089157600080fd5b6103e5600160a060020a036004351661186a565b34156108b057600080fd5b6103e5600160a060020a0360043516602435611972565b34156108d257600080fd5b61049b600160a060020a03600435166119f6565b34156108f157600080fd5b61044d600435611a08565b341561090757600080fd5b6105166004351515611a23565b341561091f57600080fd5b61049b600160a060020a0360043516611a60565b341561093e57600080fd5b6103e5600160a060020a0360043516602435611a72565b341561096057600080fd5b610516600160a060020a0360043516611ab5565b341561097f57600080fd5b61044d611b01565b341561099257600080fd5b6105166004351515611b10565b34156109aa57600080fd5b61044d600435611b4d565b34156109c057600080fd5b6103e56004803560248101910135611b68565b34156109de57600080fd5b61044d600435611bde565b34156109f457600080fd5b61049b600160a060020a0360043581169060243516611bf9565b3415610a1957600080fd5b6103e5611c24565b3415610a2c57600080fd5b61049b600160a060020a0360043516611c2d565b3415610a4b57600080fd5b61034f600160a060020a0360043516611c3f565b3415610a6a57600080fd5b61049b600160a060020a0360043516611cbc565b3415610a8957600080fd5b61049b611cce565b3415610a9c57600080fd5b61044d600435611cd4565b3415610ab257600080fd5b610516600435611cef565b3415610ac857600080fd5b61049b600160a060020a0360043516611d1e565b3415610ae757600080fd5b610afe600160a060020a0360043516602435611d30565b604051921515835260208301919091526040808301919091526060909101905180910390f35b3415610b2f57600080fd5b610516600160a060020a03600435811690602435906044358116906064359060843581169060a4359060c43581169060e43590610104351661012435611fc1565b3415610b7b57600080fd5b6103e5600160a060020a0360043516612069565b3415610b9a57600080fd5b610516600160a060020a03600435166024356120fe565b3415610bbc57600080fd5b6103e56024600480358281019291013590351515612164565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b820191906000526020600020905b815481529060010190602001808311610c4e57829003601f168201915b505050505081565b600160a060020a038116600090815260146020526040812054158015610c9b575060135460ff165b80610cbe5750600160a060020a0382166000908152601460205260409020546002145b90505b919050565b600033610cd281610c73565b1515610cdd57600080fd5b600160a060020a03338116600081815260286020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a35060019392505050565b600160a060020a03331660009081526006602052604081205460ff161515600114610d7157600080fd5b600160a060020a0382161515610d8657600080fd5b600160a060020a0382166000908152601a60205260408120541115610dfc57600160a060020a03821660009081526019602052604090205460ff161515610df35750600160a060020a0381166000908152601960205260409020805460ff19166001908117909155610df7565b5060005b610cc1565b50600160a060020a03166000818152601960209081526040808320805460ff19166001908117909155601c8054601a85528386208190558552601b90935292208054600160a060020a0319169093179092558154810190915590565b600554600160a060020a031681565b601f60205260009081526040902054600160a060020a031681565b60225481565b600160a060020a03331660009081526006602052604081205460ff161515600114610eb257600080fd5b600160a060020a0382166000908152600f6020526040812054118015610ef05750600160a060020a0382166000908152600e602052604090205460ff165b15610f1d5750600160a060020a0381166000908152600e60205260409020805460ff191690556001610cc1565b506000919050565b600160a060020a031660009081526023602052604090205490565b602754600019015b90565b600160a060020a03331660009081526006602052604090205460ff161515600114610f7557600080fd5b6015805460ff1916911515919091179055565b600083610f9481610c73565b1515610f9f57600080fd5b600160a060020a0384166000908152601a602052604090205415610fc257600080fd5b600160a060020a038086166000908152602860209081526040808320339094168352929052205483901061106157610ffb8585856121a0565b1561106157600160a060020a038086166000908152602860209081526040808320339094168352929052205461103190846122f2565b600160a060020a038087166000908152602860209081526040808320339094168352929052205560019150611066565b600091505b509392505050565b600160a060020a03331660009081526006602052604081205460ff16151560011461109857600080fd5b600160a060020a03821615156110ad57600080fd5b600160a060020a0382166000908152600b6020526040812054111561111a57600160a060020a0382166000908152600a602052604090205460ff161515610df35750600160a060020a0381166000908152600a60205260409020805460ff19166001908117909155610df7565b50600160a060020a03166000818152600a60209081526040808320805460ff19166001908117909155600d8054600b85528386208190558552600c90935292208054600160a060020a0319169093179092558154810190915590565b60025481565b60095481565b600a6020526000908152604090205460ff1681565b60146020526000908152604090205481565b602080526000908152604090205481565b6021602090815260009283526040808420909152908252902054600160a060020a031681565b600160a060020a03331660009081526006602052604090205460ff16151560011461120a57600080fd5b60048054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a03331660009081526006602052604081205460ff16151560011461125657600080fd5b600160a060020a038216151561126b57600080fd5b600160a060020a03821660009081526007602052604081205411156112d857600160a060020a03821660009081526006602052604090205460ff161515610df35750600160a060020a0381166000908152600660205260409020805460ff19166001908117909155610df7565b50600160a060020a03166000818152600660209081526040808320805460ff1916600190811790915560098054600785528386208190558552600890935292208054600160a060020a0319169093179092558154810190915590565b60135460ff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b601c5481565b60066020526000908152604090205460ff1681565b600160a060020a03331660009081526006602052604081205460ff1615156001146113ed57600080fd5b8180156113fc57506002548314155b1561140e575060028290556001611412565b5060005b92915050565b60166020526000908152604090205481565b600e6020526000908152604090205460ff1681565b600160a060020a03331660009081526006602052604090205460ff16151560011461146957600080fd5b611475601283836126c8565b507f39b61914f7b671bd1243b7fdcab04d9db0afc45761a099512be0488f49a4ee28828233604051600160a060020a0382166020820152604080825281018390528060608101858580828437820191505094505050505060405180910390a15050565b600160a060020a03331660009081526006602052604090205460ff16151560011461150257600080fd5b600160a060020a038216600090815260166020526040902054811461153d57600160a060020a03821660009081526016602052604090208190555b5050565b600160a060020a03331660009081526006602052604081205460ff16151560011461156b57600080fd5b600160a060020a0382166000908152600b60205260408120541180156115a95750600160a060020a0382166000908152600a602052604090205460ff165b15610f1d5750600160a060020a0381166000908152600a60205260409020805460ff191690556001610cc1565b600160a060020a03331660009081526006602052604081205460ff16151560011461160057600080fd5b811561161c57611612600085856126c8565b5060019050611620565b5060005b9392505050565b601d6020526000908152604090205481565b60185481565b600160a060020a038116600090815260166020526040812054158015611667575060155460ff165b8061168a5750600160a060020a0382166000908152601660205260409020546002145b15610df35750600160a060020a038116600090815260236020526040902054610cc1565b60128054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b600b6020526000908152604090205481565b60175460ff1681565b600d5481565b601060205260009081526040902054600160a060020a031681565b600160a060020a03331660009081526006602052604081205460ff16151560011461177f57600080fd5b600160a060020a0382166000908152601a60205260408120541180156117bd5750600160a060020a03821660009081526019602052604090205460ff165b15610f1d5750600160a060020a0381166000908152601960205260409020805460ff191690556001610cc1565b60196020526000908152604090205460ff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b600160a060020a03331660009081526006602052604081205460ff16151560011461189457600080fd5b600160a060020a03821615156118a957600080fd5b600160a060020a0382166000908152600f6020526040812054111561191657600160a060020a0382166000908152600e602052604090205460ff161515610df35750600160a060020a0381166000908152600e60205260409020805460ff19166001908117909155610df7565b50600160a060020a03166000818152600e60209081526040808320805460ff1916600190811790915560118054600f85528386208190558552601090935292208054600160a060020a0319169093179092558154810190915590565b600160a060020a0333166000908152600e602052604081205460ff161515600114806119bb5750600160a060020a03331660009081526006602052604090205460ff1615156001145b15156119c657600080fd5b60175460ff1615156119d757600080fd5b600160a060020a03831615156119ec57600080fd5b6116208383612306565b601a6020526000908152604090205481565b601b60205260009081526040902054600160a060020a031681565b600160a060020a03331660009081526006602052604090205460ff161515600114611a4d57600080fd5b6017805460ff1916911515919091179055565b60256020526000908152604090205481565b600160a060020a0382166000908152601a602052604081205481901115611aa357611a9e338484612526565b611412565b611aae3384846121a0565b9050611412565b600160a060020a03331660009081526006602052604090205460ff161515600114611adf57600080fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b600454600160a060020a031681565b600160a060020a03331660009081526006602052604090205460ff161515600114611b3a57600080fd5b6013805460ff1916911515919091179055565b600c60205260009081526040902054600160a060020a031681565b600160a060020a03331660009081526025602052604081205481901180611bac5750600160a060020a03331660009081526006602052604090205460ff1615156001145b1561140e57600160a060020a0333166000908152602660205260409020611bd49084846126c8565b5060019050611412565b600860205260009081526040902054600160a060020a031681565b600160a060020a03918216600090815260286020908152604080832093909416825291909152205490565b60155460ff1681565b600f6020526000908152604090205481565b60266020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b601e6020526000908152604090205481565b60115481565b602460205260009081526040902054600160a060020a031681565b600160a060020a03331660009081526006602052604090205460ff161515600114611d1957600080fd5b601855565b60076020526000908152604090205481565b600160a060020a0333166000908152600a602052604081205481908190819060ff16151560011480611d7f5750600160a060020a03331660009081526006602052604090205460ff1615156001145b1515611d8a57600080fd5b600160a060020a0386166000908152602360205260408120541115611f175750600160a060020a038516600090815260236020526040902054849081901015611de85750600160a060020a0385166000908152602360205260409020545b600160a060020a038616600090815260236020526040902054611e0b90826122f2565b600160a060020a038716600090815260236020526040902055602254611e3190826122f2565b602255600160a060020a03861660009081526023602052604090819020546001955091935090915082907f1ccb26010072057d8d351a711ebccbfc970c5af67c7c0724a4f91d01743334249033908890879089908690889051600160a060020a0396871681529490951660208501529115156040808501919091526060840191909152608083019190915260a082019290925260c001905180910390a1600554600160a060020a039081169087167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3611fb9565b6000935060009250600091507f1ccb26010072057d8d351a711ebccbfc970c5af67c7c0724a4f91d017433342433876000886000602360008d600160a060020a0316600160a060020a0316815260200190815260200160002054604051600160a060020a0396871681529490951660208501529115156040808501919091526060840191909152608083019190915260a082019290925260c001905180910390a15b509250925092565b600160a060020a0333166000908152600e602052604090205460ff1615156001148061200a5750600160a060020a03331660009081526006602052604090205460ff1615156001145b151561201557600080fd5b60175460ff16151561202657600080fd5b6120308a8a612306565b5061203b8888612306565b506120468686612306565b506120518484612306565b5061205c8282612306565b5050505050505050505050565b600160a060020a03331660009081526006602052604081205460ff16151560011461209357600080fd5b600160a060020a0382166000908152600760205260408120541180156120d15750600160a060020a03821660009081526006602052604090205460ff165b15610f1d5750600160a060020a0381166000908152600660205260409020805460ff191690556001610cc1565b600160a060020a03331660009081526006602052604090205460ff16151560011461212857600080fd5b600160a060020a038216600090815260146020526040902054811461153d57600160a060020a0391909116600090815260146020526040902055565b600160a060020a03331660009081526006602052604081205460ff16151560011461218e57600080fd5b811561161c57611612600185856126c8565b6000836121ac81610c73565b15156121b757600080fd5b6000831180156121e05750600160a060020a038516600090815260236020526040902054839010155b1561106157600160a060020a03851660009081526023602052604090208054849003905561220e8484612602565b83600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405190815260200160405180910390a3600160a060020a0380861660009081526023602052604080822054928716825290819020547f940d553fc39608a76b364511cc751d4351ba3e109ad9c7d08c30913f3838e94192889288928892339290919051600160a060020a0396871681529486166020860152604080860194909452919094166060840152608083019390935260a082019290925260c001905180910390a160019150611066565b600080828410156122ff57fe5b5050900390565b600160a060020a0333166000908152600e60205260408120548190819060ff161515600114806123535750600160a060020a03331660009081526006602052604090205460ff1615156001145b151561235e57600080fd5b60175460ff16151561236f57600080fd5b600160a060020a0385161561251e5761238a602254856126ab565b915083905060006018541180156123a2575081601854105b156123ab575060005b6000811115612492576123be8582612602565b6022829055600454600160a060020a0380871691167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a37faf9dfd1a8f0964b1fe9c3c3df1a91c9ec2a3d55abbc04e8effc598559680bb5f3386866001602360008b600160a060020a0316600160a060020a0316815260200190815260200160002054604051600160a060020a03958616815293909416602084015260408084019290925215156060830152608082019290925260a001905180910390a161251e565b600092507faf9dfd1a8f0964b1fe9c3c3df1a91c9ec2a3d55abbc04e8effc598559680bb5f3386866000602360008b600160a060020a0316600160a060020a0316815260200190815260200160002054604051600160a060020a03958616815293909416602084015260408084019290925215156060830152608082019290925260a001905180910390a15b505092915050565b600160a060020a03821660009081526019602052604081205460ff16151561254d57600080fd5b600160a060020a038481166000908152601f6020526040902054811690841614156125bd5750600160a060020a03828116600090815260208080526040808320805460018101909155602183528184208185529092529091208054600160a060020a031916928616929092179091555b50600160a060020a039283166000908152601d60209081526040808320429055601e825280832093909355601f9052208054600160a060020a03191691909216179055565b600160a060020a0382166000908152602560205260409020541515612668576027805460009081526024602090815260408083208054600160a060020a031916600160a060020a0388169081179091558454908452602590925290912081905560010190555b600160a060020a03821660009081526023602052604090205461268b90826126ab565b600160a060020a0390921660009081526023602052604090209190915550565b60008282018381108015906126c05750828110155b151561162057fe5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106127095782800160ff19823516178555612736565b82800160010185558215612736579182015b8281111561273657823582559160200191906001019061271b565b50612742929150612746565b5090565b610f4891905b80821115612742576000815560010161274c5600a165627a7a72305820ec5ef764de740cd16f3547a587dab79b003e2b7f1aba579221026ea69d5e85500029

Deployed Bytecode

0x6060604052600436106103375763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461033c57806307b86b41146103c6578063095ea7b3146103f957806310d48cd31461041b5780631581b6001461043a57806316210e251461046957806318160ddd146104885780631855e405146104ad5780631c96b242146104cc5780632322f484146104eb5780632354ecf7146104fe57806323b872dd146105185780632980a7b614610540578063313ce5671461055f578063332fa5bb1461057257806337c345cd146105855780634067ffda146105a4578063418ae602146105c35780634381e1c5146105e25780634a3e8078146106045780634e232730146106235780635120bb201461064257806354fd4d50146106555780635634653d146106685780635788a0811461067b5780635a89b3761461069a578063612ab238146106b557806361314ee3146106d457806366357f57146106f357806369bef517146107115780636a87f66d146107335780636be67db3146107525780636edbeb1c146107765780636f7920fd1461079557806370a08231146107a85780637284e416146107c7578063832b2c60146107da57806384e1bf74146107f9578063855c145b1461080c57806387113b881461081f578063902753f414610835578063953bad321461085457806395d89b411461087357806396f2710d146108865780639739951c146108a557806398a42ec4146108c7578063994fe290146108e65780639f3edbe1146108fc578063a6ffefae14610914578063a9059cbb14610933578063b986b61114610955578063bcb3282814610974578063c047c1d814610987578063c0d3f3781461099f578063c96304e8146109b5578063c96c8a1d146109d3578063dd62ed3e146109e9578063deb93b5b14610a0e578063e7a3540514610a21578063e7d137ec14610a40578063e8c09c0d14610a5f578063ed861e1314610a7e578063ef2a914714610a91578063f234bac514610aa7578063f317b85b14610abd578063f3fef3a314610adc578063f8c9516014610b24578063f9b4d63a14610b70578063fe16e86214610b8f578063ffe0a9f214610bb1575b600080fd5b341561034757600080fd5b61034f610bd5565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561038b578082015183820152602001610373565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103d157600080fd5b6103e5600160a060020a0360043516610c73565b604051901515815260200160405180910390f35b341561040457600080fd5b6103e5600160a060020a0360043516602435610cc6565b341561042657600080fd5b6103e5600160a060020a0360043516610d47565b341561044557600080fd5b61044d610e58565b604051600160a060020a03909116815260200160405180910390f35b341561047457600080fd5b61044d600160a060020a0360043516610e67565b341561049357600080fd5b61049b610e82565b60405190815260200160405180910390f35b34156104b857600080fd5b6103e5600160a060020a0360043516610e88565b34156104d757600080fd5b61049b600160a060020a0360043516610f25565b34156104f657600080fd5b61049b610f40565b341561050957600080fd5b6105166004351515610f4b565b005b341561052357600080fd5b6103e5600160a060020a0360043581169060243516604435610f88565b341561054b57600080fd5b6103e5600160a060020a036004351661106e565b341561056a57600080fd5b61049b611176565b341561057d57600080fd5b61049b61117c565b341561059057600080fd5b6103e5600160a060020a0360043516611182565b34156105af57600080fd5b61049b600160a060020a0360043516611197565b34156105ce57600080fd5b61049b600160a060020a03600435166111a9565b34156105ed57600080fd5b61044d600160a060020a03600435166024356111ba565b341561060f57600080fd5b610516600160a060020a03600435166111e0565b341561062e57600080fd5b6103e5600160a060020a036004351661122c565b341561064d57600080fd5b6103e5611334565b341561066057600080fd5b61034f61133d565b341561067357600080fd5b61049b6113a8565b341561068657600080fd5b6103e5600160a060020a03600435166113ae565b34156106a557600080fd5b6103e560043560243515156113c3565b34156106c057600080fd5b61049b600160a060020a0360043516611418565b34156106df57600080fd5b6103e5600160a060020a036004351661142a565b34156106fe57600080fd5b610516600480356024810191013561143f565b341561071c57600080fd5b610516600160a060020a03600435166024356114d8565b341561073e57600080fd5b6103e5600160a060020a0360043516611541565b341561075d57600080fd5b6103e560246004803582810192910135903515156115d6565b341561078157600080fd5b61049b600160a060020a0360043516611627565b34156107a057600080fd5b61049b611639565b34156107b357600080fd5b61049b600160a060020a036004351661163f565b34156107d257600080fd5b61034f6116ae565b34156107e557600080fd5b61049b600160a060020a0360043516611719565b341561080457600080fd5b6103e561172b565b341561081757600080fd5b61049b611734565b341561082a57600080fd5b61044d60043561173a565b341561084057600080fd5b6103e5600160a060020a0360043516611755565b341561085f57600080fd5b6103e5600160a060020a03600435166117ea565b341561087e57600080fd5b61034f6117ff565b341561089157600080fd5b6103e5600160a060020a036004351661186a565b34156108b057600080fd5b6103e5600160a060020a0360043516602435611972565b34156108d257600080fd5b61049b600160a060020a03600435166119f6565b34156108f157600080fd5b61044d600435611a08565b341561090757600080fd5b6105166004351515611a23565b341561091f57600080fd5b61049b600160a060020a0360043516611a60565b341561093e57600080fd5b6103e5600160a060020a0360043516602435611a72565b341561096057600080fd5b610516600160a060020a0360043516611ab5565b341561097f57600080fd5b61044d611b01565b341561099257600080fd5b6105166004351515611b10565b34156109aa57600080fd5b61044d600435611b4d565b34156109c057600080fd5b6103e56004803560248101910135611b68565b34156109de57600080fd5b61044d600435611bde565b34156109f457600080fd5b61049b600160a060020a0360043581169060243516611bf9565b3415610a1957600080fd5b6103e5611c24565b3415610a2c57600080fd5b61049b600160a060020a0360043516611c2d565b3415610a4b57600080fd5b61034f600160a060020a0360043516611c3f565b3415610a6a57600080fd5b61049b600160a060020a0360043516611cbc565b3415610a8957600080fd5b61049b611cce565b3415610a9c57600080fd5b61044d600435611cd4565b3415610ab257600080fd5b610516600435611cef565b3415610ac857600080fd5b61049b600160a060020a0360043516611d1e565b3415610ae757600080fd5b610afe600160a060020a0360043516602435611d30565b604051921515835260208301919091526040808301919091526060909101905180910390f35b3415610b2f57600080fd5b610516600160a060020a03600435811690602435906044358116906064359060843581169060a4359060c43581169060e43590610104351661012435611fc1565b3415610b7b57600080fd5b6103e5600160a060020a0360043516612069565b3415610b9a57600080fd5b610516600160a060020a03600435166024356120fe565b3415610bbc57600080fd5b6103e56024600480358281019291013590351515612164565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b820191906000526020600020905b815481529060010190602001808311610c4e57829003601f168201915b505050505081565b600160a060020a038116600090815260146020526040812054158015610c9b575060135460ff165b80610cbe5750600160a060020a0382166000908152601460205260409020546002145b90505b919050565b600033610cd281610c73565b1515610cdd57600080fd5b600160a060020a03338116600081815260286020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a35060019392505050565b600160a060020a03331660009081526006602052604081205460ff161515600114610d7157600080fd5b600160a060020a0382161515610d8657600080fd5b600160a060020a0382166000908152601a60205260408120541115610dfc57600160a060020a03821660009081526019602052604090205460ff161515610df35750600160a060020a0381166000908152601960205260409020805460ff19166001908117909155610df7565b5060005b610cc1565b50600160a060020a03166000818152601960209081526040808320805460ff19166001908117909155601c8054601a85528386208190558552601b90935292208054600160a060020a0319169093179092558154810190915590565b600554600160a060020a031681565b601f60205260009081526040902054600160a060020a031681565b60225481565b600160a060020a03331660009081526006602052604081205460ff161515600114610eb257600080fd5b600160a060020a0382166000908152600f6020526040812054118015610ef05750600160a060020a0382166000908152600e602052604090205460ff165b15610f1d5750600160a060020a0381166000908152600e60205260409020805460ff191690556001610cc1565b506000919050565b600160a060020a031660009081526023602052604090205490565b602754600019015b90565b600160a060020a03331660009081526006602052604090205460ff161515600114610f7557600080fd5b6015805460ff1916911515919091179055565b600083610f9481610c73565b1515610f9f57600080fd5b600160a060020a0384166000908152601a602052604090205415610fc257600080fd5b600160a060020a038086166000908152602860209081526040808320339094168352929052205483901061106157610ffb8585856121a0565b1561106157600160a060020a038086166000908152602860209081526040808320339094168352929052205461103190846122f2565b600160a060020a038087166000908152602860209081526040808320339094168352929052205560019150611066565b600091505b509392505050565b600160a060020a03331660009081526006602052604081205460ff16151560011461109857600080fd5b600160a060020a03821615156110ad57600080fd5b600160a060020a0382166000908152600b6020526040812054111561111a57600160a060020a0382166000908152600a602052604090205460ff161515610df35750600160a060020a0381166000908152600a60205260409020805460ff19166001908117909155610df7565b50600160a060020a03166000818152600a60209081526040808320805460ff19166001908117909155600d8054600b85528386208190558552600c90935292208054600160a060020a0319169093179092558154810190915590565b60025481565b60095481565b600a6020526000908152604090205460ff1681565b60146020526000908152604090205481565b602080526000908152604090205481565b6021602090815260009283526040808420909152908252902054600160a060020a031681565b600160a060020a03331660009081526006602052604090205460ff16151560011461120a57600080fd5b60048054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a03331660009081526006602052604081205460ff16151560011461125657600080fd5b600160a060020a038216151561126b57600080fd5b600160a060020a03821660009081526007602052604081205411156112d857600160a060020a03821660009081526006602052604090205460ff161515610df35750600160a060020a0381166000908152600660205260409020805460ff19166001908117909155610df7565b50600160a060020a03166000818152600660209081526040808320805460ff1916600190811790915560098054600785528386208190558552600890935292208054600160a060020a0319169093179092558154810190915590565b60135460ff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b601c5481565b60066020526000908152604090205460ff1681565b600160a060020a03331660009081526006602052604081205460ff1615156001146113ed57600080fd5b8180156113fc57506002548314155b1561140e575060028290556001611412565b5060005b92915050565b60166020526000908152604090205481565b600e6020526000908152604090205460ff1681565b600160a060020a03331660009081526006602052604090205460ff16151560011461146957600080fd5b611475601283836126c8565b507f39b61914f7b671bd1243b7fdcab04d9db0afc45761a099512be0488f49a4ee28828233604051600160a060020a0382166020820152604080825281018390528060608101858580828437820191505094505050505060405180910390a15050565b600160a060020a03331660009081526006602052604090205460ff16151560011461150257600080fd5b600160a060020a038216600090815260166020526040902054811461153d57600160a060020a03821660009081526016602052604090208190555b5050565b600160a060020a03331660009081526006602052604081205460ff16151560011461156b57600080fd5b600160a060020a0382166000908152600b60205260408120541180156115a95750600160a060020a0382166000908152600a602052604090205460ff165b15610f1d5750600160a060020a0381166000908152600a60205260409020805460ff191690556001610cc1565b600160a060020a03331660009081526006602052604081205460ff16151560011461160057600080fd5b811561161c57611612600085856126c8565b5060019050611620565b5060005b9392505050565b601d6020526000908152604090205481565b60185481565b600160a060020a038116600090815260166020526040812054158015611667575060155460ff165b8061168a5750600160a060020a0382166000908152601660205260409020546002145b15610df35750600160a060020a038116600090815260236020526040902054610cc1565b60128054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b600b6020526000908152604090205481565b60175460ff1681565b600d5481565b601060205260009081526040902054600160a060020a031681565b600160a060020a03331660009081526006602052604081205460ff16151560011461177f57600080fd5b600160a060020a0382166000908152601a60205260408120541180156117bd5750600160a060020a03821660009081526019602052604090205460ff165b15610f1d5750600160a060020a0381166000908152601960205260409020805460ff191690556001610cc1565b60196020526000908152604090205460ff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b600160a060020a03331660009081526006602052604081205460ff16151560011461189457600080fd5b600160a060020a03821615156118a957600080fd5b600160a060020a0382166000908152600f6020526040812054111561191657600160a060020a0382166000908152600e602052604090205460ff161515610df35750600160a060020a0381166000908152600e60205260409020805460ff19166001908117909155610df7565b50600160a060020a03166000818152600e60209081526040808320805460ff1916600190811790915560118054600f85528386208190558552601090935292208054600160a060020a0319169093179092558154810190915590565b600160a060020a0333166000908152600e602052604081205460ff161515600114806119bb5750600160a060020a03331660009081526006602052604090205460ff1615156001145b15156119c657600080fd5b60175460ff1615156119d757600080fd5b600160a060020a03831615156119ec57600080fd5b6116208383612306565b601a6020526000908152604090205481565b601b60205260009081526040902054600160a060020a031681565b600160a060020a03331660009081526006602052604090205460ff161515600114611a4d57600080fd5b6017805460ff1916911515919091179055565b60256020526000908152604090205481565b600160a060020a0382166000908152601a602052604081205481901115611aa357611a9e338484612526565b611412565b611aae3384846121a0565b9050611412565b600160a060020a03331660009081526006602052604090205460ff161515600114611adf57600080fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b600454600160a060020a031681565b600160a060020a03331660009081526006602052604090205460ff161515600114611b3a57600080fd5b6013805460ff1916911515919091179055565b600c60205260009081526040902054600160a060020a031681565b600160a060020a03331660009081526025602052604081205481901180611bac5750600160a060020a03331660009081526006602052604090205460ff1615156001145b1561140e57600160a060020a0333166000908152602660205260409020611bd49084846126c8565b5060019050611412565b600860205260009081526040902054600160a060020a031681565b600160a060020a03918216600090815260286020908152604080832093909416825291909152205490565b60155460ff1681565b600f6020526000908152604090205481565b60266020528060005260406000206000915090508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c6b5780601f10610c4057610100808354040283529160200191610c6b565b601e6020526000908152604090205481565b60115481565b602460205260009081526040902054600160a060020a031681565b600160a060020a03331660009081526006602052604090205460ff161515600114611d1957600080fd5b601855565b60076020526000908152604090205481565b600160a060020a0333166000908152600a602052604081205481908190819060ff16151560011480611d7f5750600160a060020a03331660009081526006602052604090205460ff1615156001145b1515611d8a57600080fd5b600160a060020a0386166000908152602360205260408120541115611f175750600160a060020a038516600090815260236020526040902054849081901015611de85750600160a060020a0385166000908152602360205260409020545b600160a060020a038616600090815260236020526040902054611e0b90826122f2565b600160a060020a038716600090815260236020526040902055602254611e3190826122f2565b602255600160a060020a03861660009081526023602052604090819020546001955091935090915082907f1ccb26010072057d8d351a711ebccbfc970c5af67c7c0724a4f91d01743334249033908890879089908690889051600160a060020a0396871681529490951660208501529115156040808501919091526060840191909152608083019190915260a082019290925260c001905180910390a1600554600160a060020a039081169087167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a3611fb9565b6000935060009250600091507f1ccb26010072057d8d351a711ebccbfc970c5af67c7c0724a4f91d017433342433876000886000602360008d600160a060020a0316600160a060020a0316815260200190815260200160002054604051600160a060020a0396871681529490951660208501529115156040808501919091526060840191909152608083019190915260a082019290925260c001905180910390a15b509250925092565b600160a060020a0333166000908152600e602052604090205460ff1615156001148061200a5750600160a060020a03331660009081526006602052604090205460ff1615156001145b151561201557600080fd5b60175460ff16151561202657600080fd5b6120308a8a612306565b5061203b8888612306565b506120468686612306565b506120518484612306565b5061205c8282612306565b5050505050505050505050565b600160a060020a03331660009081526006602052604081205460ff16151560011461209357600080fd5b600160a060020a0382166000908152600760205260408120541180156120d15750600160a060020a03821660009081526006602052604090205460ff165b15610f1d5750600160a060020a0381166000908152600660205260409020805460ff191690556001610cc1565b600160a060020a03331660009081526006602052604090205460ff16151560011461212857600080fd5b600160a060020a038216600090815260146020526040902054811461153d57600160a060020a0391909116600090815260146020526040902055565b600160a060020a03331660009081526006602052604081205460ff16151560011461218e57600080fd5b811561161c57611612600185856126c8565b6000836121ac81610c73565b15156121b757600080fd5b6000831180156121e05750600160a060020a038516600090815260236020526040902054839010155b1561106157600160a060020a03851660009081526023602052604090208054849003905561220e8484612602565b83600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405190815260200160405180910390a3600160a060020a0380861660009081526023602052604080822054928716825290819020547f940d553fc39608a76b364511cc751d4351ba3e109ad9c7d08c30913f3838e94192889288928892339290919051600160a060020a0396871681529486166020860152604080860194909452919094166060840152608083019390935260a082019290925260c001905180910390a160019150611066565b600080828410156122ff57fe5b5050900390565b600160a060020a0333166000908152600e60205260408120548190819060ff161515600114806123535750600160a060020a03331660009081526006602052604090205460ff1615156001145b151561235e57600080fd5b60175460ff16151561236f57600080fd5b600160a060020a0385161561251e5761238a602254856126ab565b915083905060006018541180156123a2575081601854105b156123ab575060005b6000811115612492576123be8582612602565b6022829055600454600160a060020a0380871691167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a37faf9dfd1a8f0964b1fe9c3c3df1a91c9ec2a3d55abbc04e8effc598559680bb5f3386866001602360008b600160a060020a0316600160a060020a0316815260200190815260200160002054604051600160a060020a03958616815293909416602084015260408084019290925215156060830152608082019290925260a001905180910390a161251e565b600092507faf9dfd1a8f0964b1fe9c3c3df1a91c9ec2a3d55abbc04e8effc598559680bb5f3386866000602360008b600160a060020a0316600160a060020a0316815260200190815260200160002054604051600160a060020a03958616815293909416602084015260408084019290925215156060830152608082019290925260a001905180910390a15b505092915050565b600160a060020a03821660009081526019602052604081205460ff16151561254d57600080fd5b600160a060020a038481166000908152601f6020526040902054811690841614156125bd5750600160a060020a03828116600090815260208080526040808320805460018101909155602183528184208185529092529091208054600160a060020a031916928616929092179091555b50600160a060020a039283166000908152601d60209081526040808320429055601e825280832093909355601f9052208054600160a060020a03191691909216179055565b600160a060020a0382166000908152602560205260409020541515612668576027805460009081526024602090815260408083208054600160a060020a031916600160a060020a0388169081179091558454908452602590925290912081905560010190555b600160a060020a03821660009081526023602052604090205461268b90826126ab565b600160a060020a0390921660009081526023602052604090209190915550565b60008282018381108015906126c05750828110155b151561162057fe5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106127095782800160ff19823516178555612736565b82800160010185558215612736579182015b8281111561273657823582559160200191906001019061271b565b50612742929150612746565b5090565b610f4891905b80821115612742576000815560010161274c5600a165627a7a72305820ec5ef764de740cd16f3547a587dab79b003e2b7f1aba579221026ea69d5e85500029

Swarm Source

bzzr://ec5ef764de740cd16f3547a587dab79b003e2b7f1aba579221026ea69d5e8550
Loading...
Loading
Loading...
Loading
[ 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.