ERC-20
Source Code
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
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
FoodcoinEcosystem
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
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.
Add Token to MetaMask (Web3)