ETH Price: $4,019.81 (+2.83%)

Token

Warp Token (WARP)
 

Overview

Max Total Supply

150,000 WARP

Holders

2,276 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.0964226780772895 WARP

Value
$0.00
0x6496b57cd93c607527b418ef584a6b293b80a718
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The Warp Protocol’s primary objective is to create a novel use case for unused Liquidity Provider (LP) tokens by allowing them to be used as collateral for borrowing.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MiniMeToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-02-06
*/

pragma solidity ^0.4.18;


contract Controlled {
    /// @notice The address of the controller is the only address that can call
    ///  a function with this modifier
    modifier onlyController { require(msg.sender == controller); _; }

    address public controller;

    function Controlled() public { controller = msg.sender;}

    /// @notice Changes the controller of the contract
    /// @param _newController The new controller of the contract
    function changeController(address _newController) public onlyController {
        controller = _newController;
    }
}

/// @dev The token controller contract must implement these functions
contract TokenController {
    /// @notice Called when `_owner` sends ether to the MiniMe Token contract
    /// @param _owner The address that sent the ether to create tokens
    /// @return True if the ether is accepted, false if it throws
    function proxyPayment(address _owner) public payable returns(bool);

    /// @notice Notifies the controller about a token transfer allowing the
    ///  controller to react if desired
    /// @param _from The origin of the transfer
    /// @param _to The destination of the transfer
    /// @param _amount The amount of the transfer
    /// @return False if the controller does not authorize the transfer
    function onTransfer(address _from, address _to, uint _amount) public returns(bool);

    /// @notice Notifies the controller about an approval allowing the
    ///  controller to react if desired
    /// @param _owner The address that calls `approve()`
    /// @param _spender The spender in the `approve()` call
    /// @param _amount The amount in the `approve()` call
    /// @return False if the controller does not authorize the approval
    function onApprove(address _owner, address _spender, uint _amount) public
        returns(bool);
}

/*
    Copyright 2016, Jordi Baylina

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
/// @title MiniMeToken Contract
/// @author Jordi Baylina
/// @dev This token contract's goal is to make it easy for anyone to clone this
///  token using the token distribution at a given block, this will allow DAO's
///  and DApps to upgrade their features in a decentralized manner without
///  affecting the original token
/// @dev It is ERC20 compliant, but still needs to under go further testing.
contract ApproveAndCallFallBack {
    function receiveApproval(
        address from,
        uint256 _amount,
        address _token,
        bytes _data
    ) public;
}

/// @dev The actual token contract, the default controller is the msg.sender
///  that deploys the contract, so usually this token will be deployed by a
///  token controller contract, which Giveth will call a "Campaign"
contract MiniMeToken is Controlled {
    string public name; //The Token's name: e.g. DigixDAO Tokens
    uint8 public decimals; //Number of decimals of the smallest unit
    string public symbol; //An identifier: e.g. REP
    string public version = "MMT_0.2"; //An arbitrary versioning scheme

    /// @dev `Checkpoint` is the structure that attaches a block number to a
    ///  given value, the block number attached is the one that last changed the
    ///  value
    struct Checkpoint {
        // `fromBlock` is the block number that the value was generated from
        uint128 fromBlock;
        // `value` is the amount of tokens at a specific block number
        uint128 value;
    }

    // `parentToken` is the Token address that was cloned to produce this token;
    //  it will be 0x0 for a token that was not cloned
    MiniMeToken public parentToken;

    // `parentSnapShotBlock` is the block number from the Parent Token that was
    //  used to determine the initial distribution of the Clone Token
    uint256 public parentSnapShotBlock;

    // `creationBlock` is the block number that the Clone Token was created
    uint256 public creationBlock;

    // `balances` is the map that tracks the balance of each address, in this
    //  contract when the balance changes the block number that the change
    //  occurred is also included in the map
    mapping(address => Checkpoint[]) balances;

    // `allowed` tracks any extra transfer rights as in all ERC20 tokens
    mapping(address => mapping(address => uint256)) allowed;

    // Tracks the history of the `totalSupply` of the token
    Checkpoint[] totalSupplyHistory;

    // Flag that determines if the token is transferable or not.
    bool public transfersEnabled;

    // The factory used to create new clone tokens
    MiniMeTokenFactory public tokenFactory;

    ////////////////
    // Constructor
    ////////////////

    /// @notice Constructor to create a MiniMeToken
    /// @param _tokenFactory The address of the MiniMeTokenFactory contract that
    ///  will create the Clone token contracts, the token factory needs to be
    ///  deployed first
    /// @param _parentToken Address of the parent token, set to 0x0 if it is a
    ///  new token
    /// @param _parentSnapShotBlock Block of the parent token that will
    ///  determine the initial distribution of the clone token, set to 0 if it
    ///  is a new token
    /// @param _tokenName Name of the new token
    /// @param _decimalUnits Number of decimals of the new token
    /// @param _tokenSymbol Token Symbol for the new token
    /// @param _transfersEnabled If true, tokens will be able to be transferred
    /// @param _tokenSupply the total supply of the mini me token
    function MiniMeToken(
        address _tokenFactory,
        address _parentToken,
        uint256 _parentSnapShotBlock,
        string _tokenName,
        uint8 _decimalUnits,
        string _tokenSymbol,
        bool _transfersEnabled,
        uint256 _tokenSupply,
        bool _generateInitialSupply
    ) public {
        tokenFactory = MiniMeTokenFactory(_tokenFactory);
        name = _tokenName; // Set the name
        decimals = _decimalUnits; // Set the decimals
        symbol = _tokenSymbol; // Set the symbol
        parentToken = MiniMeToken(_parentToken);
        parentSnapShotBlock = _parentSnapShotBlock;
        transfersEnabled = _transfersEnabled;
        creationBlock = block.number;

        //we don't want to generate tokens on the fly
        //fixed supply
        if (_generateInitialSupply) {
            generateTokens(msg.sender, _tokenSupply);
        }
    }

    ///////////////////
    // ERC20 Methods
    ///////////////////

    /// @notice Send `_amount` tokens to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _amount The amount of tokens to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _amount)
        public
        returns (bool success)
    {
        require(transfersEnabled);
        doTransfer(msg.sender, _to, _amount);
        return true;
    }

    /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it
    ///  is approved by `_from`
    /// @param _from The address holding the tokens being transferred
    /// @param _to The address of the recipient
    /// @param _amount The amount of tokens to be transferred
    /// @return True if the transfer was successful
    function transferFrom(
        address _from,
        address _to,
        uint256 _amount
    ) public returns (bool success) {
        // The controller of this contract can move tokens around at will,
        //  this is important to recognize! Confirm that you trust the
        //  controller of this contract, which in most situations should be
        //  another open source smart contract or 0x0
        if (msg.sender != controller) {
            require(transfersEnabled);

            // The standard ERC 20 transferFrom functionality
            require(allowed[_from][msg.sender] >= _amount);
            allowed[_from][msg.sender] -= _amount;
        }
        doTransfer(_from, _to, _amount);
        return true;
    }

    /// @dev This is the actual transfer function in the token contract, it can
    ///  only be called by other functions in this contract.
    /// @param _from The address holding the tokens being transferred
    /// @param _to The address of the recipient
    /// @param _amount The amount of tokens to be transferred
    /// @return True if the transfer was successful
    function doTransfer(
        address _from,
        address _to,
        uint256 _amount
    ) internal {
        if (_amount == 0) {
            Transfer(_from, _to, _amount); // Follow the spec to louch the event when transfer 0
            return;
        }

        require(parentSnapShotBlock < block.number);

        // Do not allow transfer to 0x0 or the token contract itself
        require((_to != 0) && (_to != address(this)));

        // If the amount being transfered is more than the balance of the
        //  account the transfer throws
        var previousBalanceFrom = balanceOfAt(_from, block.number);

        require(previousBalanceFrom >= _amount);

        // Alerts the token controller of the transfer
        if (isContract(controller)) {
            require(
                TokenController(controller).onTransfer(_from, _to, _amount)
            );
        }

        // First update the balance array with the new value for the address
        //  sending the tokens
        updateValueAtNow(balances[_from], previousBalanceFrom - _amount);

        // Then update the balance array with the new value for the address
        //  receiving the tokens
        var previousBalanceTo = balanceOfAt(_to, block.number);
        require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow
        updateValueAtNow(balances[_to], previousBalanceTo + _amount);

        // An event to make the transfer easy to find on the blockchain
        Transfer(_from, _to, _amount);
    }

    /// @param _owner The address that's balance is being requested
    /// @return The balance of `_owner` at the current block
    function balanceOf(address _owner)
        public
        constant
        returns (uint256 balance)
    {
        return balanceOfAt(_owner, block.number);
    }

    /// @notice `msg.sender` approves `_spender` to spend `_amount` tokens on
    ///  its behalf. This is a modified version of the ERC20 approve function
    ///  to be a little bit safer
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _amount The amount of tokens to be approved for transfer
    /// @return True if the approval was successful
    function approve(address _spender, uint256 _amount)
        public
        returns (bool success)
    {
        require(transfersEnabled);

        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender,0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require((_amount == 0) || (allowed[msg.sender][_spender] == 0));

        // Alerts the token controller of the approve function call
        if (isContract(controller)) {
            require(
                TokenController(controller).onApprove(
                    msg.sender,
                    _spender,
                    _amount
                )
            );
        }

        allowed[msg.sender][_spender] = _amount;
        Approval(msg.sender, _spender, _amount);
        return true;
    }

    /// @dev This function makes it easy to read the `allowed[]` map
    /// @param _owner The address of the account that owns the token
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens of _owner that _spender is allowed
    ///  to spend
    function allowance(address _owner, address _spender)
        public
        constant
        returns (uint256 remaining)
    {
        return allowed[_owner][_spender];
    }

    /// @notice `msg.sender` approves `_spender` to send `_amount` tokens on
    ///  its behalf, and then a function is triggered in the contract that is
    ///  being approved, `_spender`. This allows users to use their tokens to
    ///  interact with contracts in one function call instead of two
    /// @param _spender The address of the contract able to transfer the tokens
    /// @param _amount The amount of tokens to be approved for transfer
    /// @return True if the function call was successful
    function approveAndCall(
        address _spender,
        uint256 _amount,
        bytes _extraData
    ) public returns (bool success) {
        require(approve(_spender, _amount));

        ApproveAndCallFallBack(_spender).receiveApproval(
            msg.sender,
            _amount,
            this,
            _extraData
        );

        return true;
    }

    /// @dev This function makes it easy to get the total number of tokens
    /// @return The total number of tokens
    function totalSupply() public constant returns (uint256) {
        return totalSupplyAt(block.number);
    }

    ////////////////
    // Query balance and totalSupply in History
    ////////////////

    /// @dev Queries the balance of `_owner` at a specific `_blockNumber`
    /// @param _owner The address from which the balance will be retrieved
    /// @param _blockNumber The block number when the balance is queried
    /// @return The balance at `_blockNumber`
    function balanceOfAt(address _owner, uint256 _blockNumber)
        public
        constant
        returns (uint256)
    {
        // These next few lines are used when the balance of the token is
        //  requested before a check point was ever created for this token, it
        //  requires that the `parentToken.balanceOfAt` be queried at the
        //  genesis block for that token as this contains initial balance of
        //  this token
        if (
            (balances[_owner].length == 0) ||
            (balances[_owner][0].fromBlock > _blockNumber)
        ) {
            if (address(parentToken) != 0) {
                return
                    parentToken.balanceOfAt(
                        _owner,
                        min(_blockNumber, parentSnapShotBlock)
                    );
            } else {
                // Has no parent
                return 0;
            }

            // This will return the expected balance during normal situations
        } else {
            return getValueAt(balances[_owner], _blockNumber);
        }
    }

    /// @notice Total amount of tokens at a specific `_blockNumber`.
    /// @param _blockNumber The block number when the totalSupply is queried
    /// @return The total amount of tokens at `_blockNumber`
    function totalSupplyAt(uint256 _blockNumber)
        public
        constant
        returns (uint256)
    {
        // These next few lines are used when the totalSupply of the token is
        //  requested before a check point was ever created for this token, it
        //  requires that the `parentToken.totalSupplyAt` be queried at the
        //  genesis block for this token as that contains totalSupply of this
        //  token at this block number.
        if (
            (totalSupplyHistory.length == 0) ||
            (totalSupplyHistory[0].fromBlock > _blockNumber)
        ) {
            if (address(parentToken) != 0) {
                return
                    parentToken.totalSupplyAt(
                        min(_blockNumber, parentSnapShotBlock)
                    );
            } else {
                return 0;
            }

            // This will return the expected totalSupply during normal situations
        } else {
            return getValueAt(totalSupplyHistory, _blockNumber);
        }
    }

    ////////////////
    // Clone Token Method
    ////////////////

    /// @notice Creates a new clone token with the initial distribution being
    ///  this token at `_snapshotBlock`
    /// @param _cloneTokenName Name of the clone token
    /// @param _cloneDecimalUnits Number of decimals of the smallest unit
    /// @param _cloneTokenSymbol Symbol of the clone token
    /// @param _snapshotBlock Block when the distribution of the parent token is
    ///  copied to set the initial distribution of the new clone token;
    ///  if the block is zero than the actual block, the current block is used
    /// @param _transfersEnabled True if transfers are allowed in the clone
    /// @param _totalSupply the total supply of the mini me clone
    /// @return The address of the new MiniMeToken Contract
    function createCloneToken(
        string _cloneTokenName,
        uint8 _cloneDecimalUnits,
        string _cloneTokenSymbol,
        uint256 _snapshotBlock,
        bool _transfersEnabled,
        uint256 _totalSupply
    ) public returns (address) {
        if (_snapshotBlock == 0) _snapshotBlock = block.number;
        MiniMeToken cloneToken =
            tokenFactory.createCloneToken(
                this,
                _snapshotBlock,
                _cloneTokenName,
                _cloneDecimalUnits,
                _cloneTokenSymbol,
                _transfersEnabled,
                _totalSupply
            );

        cloneToken.changeController(msg.sender);

        // An event to make the token easy to find on the blockchain
        NewCloneToken(address(cloneToken), _snapshotBlock);
        return address(cloneToken);
    }

    ////////////////
    // Generate and destroy tokens
    ////////////////

    /// @notice Generates `_amount` tokens that are assigned to `_owner`
    /// @param _owner The address that will be assigned the new tokens
    /// @param _amount The quantity of tokens generated
    /// @return True if the tokens are generated correctly
    function generateTokens(address _owner, uint256 _amount)
        private
        onlyController
        returns (bool)
    {
        uint256 curTotalSupply = totalSupply();
        require(curTotalSupply + _amount >= curTotalSupply); // Check for overflow
        uint256 previousBalanceTo = balanceOf(_owner);
        require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow
        updateValueAtNow(totalSupplyHistory, curTotalSupply + _amount);
        updateValueAtNow(balances[_owner], previousBalanceTo + _amount);
        Transfer(0, _owner, _amount);
        return true;
    }

    /// @notice Burns `_amount` tokens from `_owner`
    /// @param _owner The address that will lose the tokens
    /// @param _amount The quantity of tokens to burn
    /// @return True if the tokens are burned correctly
    function destroyTokens(address _owner, uint256 _amount)
        private
        onlyController
        returns (bool)
    {
        uint256 curTotalSupply = totalSupply();
        require(curTotalSupply >= _amount);
        uint256 previousBalanceFrom = balanceOf(_owner);
        require(previousBalanceFrom >= _amount);
        updateValueAtNow(totalSupplyHistory, curTotalSupply - _amount);
        updateValueAtNow(balances[_owner], previousBalanceFrom - _amount);
        Transfer(_owner, 0, _amount);
        return true;
    }

    ////////////////
    // Enable tokens transfers
    ////////////////

    /// @notice Enables token holders to transfer their tokens freely if true
    /// @param _transfersEnabled True if transfers are allowed in the clone
    function enableTransfers(bool _transfersEnabled) public onlyController {
        transfersEnabled = _transfersEnabled;
    }

    ////////////////
    // Internal helper functions to query and set a value in a snapshot array
    ////////////////

    /// @dev `getValueAt` retrieves the number of tokens at a given block number
    /// @param checkpoints The history of values being queried
    /// @param _block The block number to retrieve the value at
    /// @return The number of tokens being queried
    function getValueAt(Checkpoint[] storage checkpoints, uint256 _block)
        internal
        constant
        returns (uint256)
    {
        if (checkpoints.length == 0) return 0;

        // Shortcut for the actual value
        if (_block >= checkpoints[checkpoints.length - 1].fromBlock)
            return checkpoints[checkpoints.length - 1].value;
        if (_block < checkpoints[0].fromBlock) return 0;

        // Binary search of the value in the array
        uint256 min = 0;
        uint256 max = checkpoints.length - 1;
        while (max > min) {
            uint256 mid = (max + min + 1) / 2;
            if (checkpoints[mid].fromBlock <= _block) {
                min = mid;
            } else {
                max = mid - 1;
            }
        }
        return checkpoints[min].value;
    }

    /// @dev `updateValueAtNow` used to update the `balances` map and the
    ///  `totalSupplyHistory`
    /// @param checkpoints The history of data being updated
    /// @param _value The new number of tokens
    function updateValueAtNow(Checkpoint[] storage checkpoints, uint256 _value)
        internal
    {
        if (
            (checkpoints.length == 0) ||
            (checkpoints[checkpoints.length - 1].fromBlock < block.number)
        ) {
            Checkpoint storage newCheckPoint =
                checkpoints[checkpoints.length++];
            newCheckPoint.fromBlock = uint128(block.number);
            newCheckPoint.value = uint128(_value);
        } else {
            Checkpoint storage oldCheckPoint =
                checkpoints[checkpoints.length - 1];
            oldCheckPoint.value = uint128(_value);
        }
    }

    /// @dev Internal function to determine if an address is a contract
    /// @param _addr The address being queried
    /// @return True if `_addr` is a contract
    function isContract(address _addr) internal constant returns (bool) {
        uint256 size;
        if (_addr == 0) return false;
        assembly {
            size := extcodesize(_addr)
        }
        return size > 0;
    }

    /// @dev Helper function to return a min betwen the two uints
    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }

    /// @notice The fallback function: If the contract's controller has not been
    ///  set to 0, then the `proxyPayment` method is called which relays the
    ///  ether and creates tokens as described in the token controller contract
    function() public payable {
        require(isContract(controller));
        require(
            TokenController(controller).proxyPayment.value(msg.value)(
                msg.sender
            )
        );
    }

    //////////
    // Safety Methods
    //////////

    /// @notice This method can be used by the controller to extract mistakenly
    ///  sent tokens to this contract.
    /// @param _token The address of the token contract that you want to recover
    ///  set to 0 in case you want to extract ether.
    function claimTokens(address _token) public onlyController {
        if (_token == 0x0) {
            controller.transfer(this.balance);
            return;
        }

        MiniMeToken token = MiniMeToken(_token);
        uint256 balance = token.balanceOf(this);
        token.transfer(controller, balance);
        ClaimedTokens(_token, controller, balance);
    }

    ////////////////
    // Events
    ////////////////
    event ClaimedTokens(
        address indexed _token,
        address indexed _controller,
        uint256 _amount
    );
    event Transfer(address indexed _from, address indexed _to, uint256 _amount);
    event NewCloneToken(address indexed _cloneToken, uint256 _snapshotBlock);
    event Approval(
        address indexed _owner,
        address indexed _spender,
        uint256 _amount
    );
}

////////////////
// MiniMeTokenFactory
////////////////
/// @dev This contract is used to generate clone contracts from a contract.
///  In solidity this is the way to create a contract from a contract of the
///  same class
contract MiniMeTokenFactory {
    /// @notice Update the DApp by creating a new token with new functionalities
    ///  the msg.sender becomes the controller of this clone token
    /// @param _parentToken Address of the token being cloned
    /// @param _snapshotBlock Block of the parent token that will
    ///  determine the initial distribution of the clone token
    /// @param _tokenName Name of the new token
    /// @param _decimalUnits Number of decimals of the new token
    /// @param _tokenSymbol Token Symbol for the new token
    /// @param _transfersEnabled If true, tokens will be able to be transferred
    /// @param _tokenSupply the total supply of the mini me token
    /// @return The address of the new token contract
    function createCloneToken(
        address _parentToken,
        uint256 _snapshotBlock,
        string _tokenName,
        uint8 _decimalUnits,
        string _tokenSymbol,
        bool _transfersEnabled,
        uint256 _tokenSupply
    ) public returns (MiniMeToken) {
        MiniMeToken newToken =
            new MiniMeToken(
                this,
                _parentToken,
                _snapshotBlock,
                _tokenName,
                _decimalUnits,
                _tokenSymbol,
                _transfersEnabled,
                _tokenSupply, 
                false
            );

        newToken.changeController(msg.sender);
        return newToken;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"creationBlock","outputs":[{"name":"","type":"uint256"}],"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":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newController","type":"address"}],"name":"changeController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cloneTokenName","type":"string"},{"name":"_cloneDecimalUnits","type":"uint8"},{"name":"_cloneTokenSymbol","type":"string"},{"name":"_snapshotBlock","type":"uint256"},{"name":"_transfersEnabled","type":"bool"},{"name":"_totalSupply","type":"uint256"}],"name":"createCloneToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_blockNumber","type":"uint256"}],"name":"balanceOfAt","outputs":[{"name":"","type":"uint256"}],"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":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"parentToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_blockNumber","type":"uint256"}],"name":"totalSupplyAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transfersEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"parentSnapShotBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenFactory","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_transfersEnabled","type":"bool"}],"name":"enableTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_tokenFactory","type":"address"},{"name":"_parentToken","type":"address"},{"name":"_parentSnapShotBlock","type":"uint256"},{"name":"_tokenName","type":"string"},{"name":"_decimalUnits","type":"uint8"},{"name":"_tokenSymbol","type":"string"},{"name":"_transfersEnabled","type":"bool"},{"name":"_tokenSupply","type":"uint256"},{"name":"_generateInitialSupply","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_controller","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_cloneToken","type":"address"},{"indexed":false,"name":"_snapshotBlock","type":"uint256"}],"name":"NewCloneToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"}]

60606040526040805190810160405280600781526020017f4d4d545f302e3200000000000000000000000000000000000000000000000000815250600490805190602001906200005192919062000c4e565b5034156200005e57600080fd5b604051620036323803806200363283398101604052808051906020019091908051906020019091908051906020019091908051820191906020018051906020019091908051820191906020018051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600190805190602001906200016092919062000c4e565b5084600260006101000a81548160ff021916908360ff16021790555083600390805190602001906200019492919062000c4e565b5087600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508660068190555082600b60006101000a81548160ff0219169083151502179055504360078190555080156200022757620002253383620002366401000000000262002718176401000000009004565b505b50505050505050505062000d94565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200029757600080fd5b620002b5620003db6401000000000262000e5e176401000000009004565b91508184830110151515620002c957600080fd5b620002e8856200040164010000000002620016d1176401000000009004565b90508084820110151515620002fc57600080fd5b6200031f600a8584016200042a6401000000000262002510176401000000009004565b6200037f600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208583016200042a6401000000000262002510176401000000009004565b8473ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000620003fc43620005a964010000000002620017a8176401000000009004565b905090565b60006200042382436200076664010000000002620013be176401000000009004565b9050919050565b600080600084805490501480620004925750438460018680549050038154811015156200045357fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16105b15620005445783848054809190600101620004ae919062000cd5565b815481101515620004bb57fe5b90600052602060002090019150438260000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550828260000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550620005a3565b8360018580549050038154811015156200055a57fe5b90600052602060002090019050828160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b50505050565b600080600a8054905014806200060b575081600a6000815481101515620005cc57fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16115b156200073d576000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156200073357600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663981b24d0620006b48460065462000a0f64010000000002620022e3176401000000009004565b6000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156200070f57600080fd5b6102c65a03f115156200072157600080fd5b50505060405180519050905062000761565b6000905062000761565b6200075e600a8362000a2a64010000000002620022fc176401000000009004565b90505b919050565b600080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050148062000842575081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154811015156200080357fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16115b15620009a8576000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156200099e57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ee2cd7e84620008ec8560065462000a0f64010000000002620022e3176401000000009004565b6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156200097a57600080fd5b6102c65a03f115156200098c57600080fd5b50505060405180519050905062000a09565b6000905062000a09565b62000a06600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208362000a2a64010000000002620022fc176401000000009004565b90505b92915050565b600081831062000a20578162000a22565b825b905092915050565b60008060008060008680549050141562000a48576000935062000c45565b85600187805490500381548110151562000a5e57fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168510151562000aff5785600187805490500381548110151562000aba57fe5b906000526020600020900160000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16935062000c45565b85600081548110151562000b0f57fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1685101562000b5e576000935062000c45565b60009250600186805490500391505b8282111562000bf657600260018484010181151562000b8857fe5b04905084868281548110151562000b9b57fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1611151562000be95780925062000bf0565b6001810391505b62000b6d565b858381548110151562000c0557fe5b906000526020600020900160000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1693505b50505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000c9157805160ff191683800117855562000cc2565b8280016001018555821562000cc2579182015b8281111562000cc157825182559160200191906001019062000ca4565b5b50905062000cd1919062000d04565b5090565b81548183558181151162000cff5781836000526020600020918201910162000cfe919062000d2c565b5b505050565b62000d2991905b8082111562000d2557600081600090555060010162000d0b565b5090565b90565b62000d9191905b8082111562000d8d57600080820160006101000a8154906fffffffffffffffffffffffffffffffff02191690556000820160106101000a8154906fffffffffffffffffffffffffffffffff02191690555060010162000d33565b5090565b90565b61288e8062000da46000396000f300606060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610255578063095ea7b3146102e3578063176345141461033d57806318160ddd1461036657806323b872dd1461038f578063313ce567146104085780633cebb823146104375780633e6c0933146104705780634ee2cd7e1461057957806354fd4d50146105cf57806370a082311461065d57806380a54001146106aa57806395d89b41146106ff578063981b24d01461078d578063a9059cbb146107c4578063bef97c871461081e578063c5bcc4f11461084b578063cae9ca5114610874578063dd62ed3e14610911578063df8de3e71461097d578063e77772fe146109b6578063f41e60c514610a0b578063f77c479114610a30575b61015d6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a85565b151561016857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f48c305434336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506020604051808303818588803b151561022c57600080fd5b6125ee5a03f1151561023d57600080fd5b5050505060405180519050151561025357600080fd5b005b341561026057600080fd5b610268610ac1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a857808201518184015260208101905061028d565b50505050905090810190601f1680156102d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102ee57600080fd5b610323600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b5f565b604051808215151515815260200191505060405180910390f35b341561034857600080fd5b610350610e58565b6040518082815260200191505060405180910390f35b341561037157600080fd5b610379610e5e565b6040518082815260200191505060405180910390f35b341561039a57600080fd5b6103ee600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e6e565b604051808215151515815260200191505060405180910390f35b341561041357600080fd5b61041b61100d565b604051808260ff1660ff16815260200191505060405180910390f35b341561044257600080fd5b61046e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611020565b005b341561047b57600080fd5b610537600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803515159060200190919080359060200190919050506110be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058457600080fd5b6105b9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506113be565b6040518082815260200191505060405180910390f35b34156105da57600080fd5b6105e2611633565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610622578082015181840152602081019050610607565b50505050905090810190601f16801561064f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561066857600080fd5b610694600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116d1565b6040518082815260200191505060405180910390f35b34156106b557600080fd5b6106bd6116e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561070a57600080fd5b61071261170a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610752578082015181840152602081019050610737565b50505050905090810190601f16801561077f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561079857600080fd5b6107ae60048080359060200190919050506117a8565b6040518082815260200191505060405180910390f35b34156107cf57600080fd5b610804600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611931565b604051808215151515815260200191505060405180910390f35b341561082957600080fd5b610831611963565b604051808215151515815260200191505060405180910390f35b341561085657600080fd5b61085e611976565b6040518082815260200191505060405180910390f35b341561087f57600080fd5b6108f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061197c565b604051808215151515815260200191505060405180910390f35b341561091c57600080fd5b610967600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611af5565b6040518082815260200191505060405180910390f35b341561098857600080fd5b6109b4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b7c565b005b34156109c157600080fd5b6109c9611ead565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1657600080fd5b610a2e60048080351515906020019091905050611ed3565b005b3415610a3b57600080fd5b610a43611f4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060008373ffffffffffffffffffffffffffffffffffffffff161415610ab05760009150610abb565b823b90506000811191505b50919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b820191906000526020600020905b815481529060010190602001808311610b3a57829003601f168201915b505050505081565b6000600b60009054906101000a900460ff161515610b7c57600080fd5b6000821480610c0757506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610c1257600080fd5b610c3c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a85565b15610d68576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da682aeb3385856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515610d4157600080fd5b6102c65a03f11515610d5257600080fd5b505050604051805190501515610d6757600080fd5b5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60075481565b6000610e69436117a8565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ff757600b60009054906101000a900460ff161515610ee157600080fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610f6c57600080fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b611002848484611f70565b600190509392505050565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561107b57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008514156110ce574394505b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9de71cc30878b8b8b8a8a6000604051602001526040518863ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001878152602001806020018660ff1660ff1681526020018060200185151515158152602001848152602001838103835288818151815260200191508051906020019080838360005b838110156111df5780820151818401526020810190506111c4565b50505050905090810190601f16801561120c5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b8381101561124557808201518184015260208101905061122a565b50505050905090810190601f1680156112725780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b151561129757600080fd5b6102c65a03f115156112a857600080fd5b5050506040518051905090508073ffffffffffffffffffffffffffffffffffffffff16633cebb823336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561134e57600080fd5b6102c65a03f1151561135f57600080fd5b5050508073ffffffffffffffffffffffffffffffffffffffff167f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade866040518082815260200191505060405180910390a2809150509695505050505050565b600080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501480611498575081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548110151561145957fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16115b156115e2576000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156115d957600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ee2cd7e8461152a856006546122e3565b6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156115b757600080fd5b6102c65a03f115156115c857600080fd5b50505060405180519050905061162d565b6000905061162d565b61162a600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836122fc565b90505b92915050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116c95780601f1061169e576101008083540402835291602001916116c9565b820191906000526020600020905b8154815290600101906020018083116116ac57829003601f168201915b505050505081565b60006116dd82436113be565b9050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117a05780601f10611775576101008083540402835291602001916117a0565b820191906000526020600020905b81548152906001019060200180831161178357829003601f168201915b505050505081565b600080600a805490501480611808575081600a60008154811015156117c957fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16115b1561191e576000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561191557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663981b24d0611899846006546122e3565b6000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156118f357600080fd5b6102c65a03f1151561190457600080fd5b50505060405180519050905061192c565b6000905061192c565b611929600a836122fc565b90505b919050565b6000600b60009054906101000a900460ff16151561194e57600080fd5b611959338484611f70565b6001905092915050565b600b60009054906101000a900460ff1681565b60065481565b60006119888484610b5f565b151561199357600080fd5b8373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a88578082015181840152602081019050611a6d565b50505050905090810190601f168015611ab55780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515611ad657600080fd5b6102c65a03f11515611ae757600080fd5b505050600190509392505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bda57600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff161415611c76576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611c7157600080fd5b611ea8565b8291508173ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611d1c57600080fd5b6102c65a03f11515611d2d57600080fd5b5050506040518051905090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611e0557600080fd5b6102c65a03f11515611e1657600080fd5b50505060405180519050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c836040518082815260200191505060405180910390a35b505050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f2e57600080fd5b80600b60006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000831415611fe6578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36122dc565b43600654101515611ff657600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff161415801561204957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b151561205457600080fd5b61205e85436113be565b915082821015151561206f57600080fd5b6120996000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a85565b156121c5576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a3931498686866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561219e57600080fd5b6102c65a03f115156121af57600080fd5b5050506040518051905015156121c457600080fd5b5b61220f600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848403612510565b61221984436113be565b9050808382011015151561222c57600080fd5b612276600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848301612510565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b5050505050565b60008183106122f257816122f4565b825b905092915050565b6000806000806000868054905014156123185760009350612507565b85600187805490500381548110151561232d57fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16851015156123cb5785600187805490500381548110151561238757fe5b906000526020600020900160000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169350612507565b8560008154811015156123da57fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168510156124275760009350612507565b60009250600186805490500391505b828211156124b957600260018484010181151561244f57fe5b04905084868281548110151561246157fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff161115156124ad578092506124b4565b6001810391505b612436565b85838154811015156124c757fe5b906000526020600020900160000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1693505b50505092915050565b60008060008480549050148061257657504384600186805490500381548110151561253757fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16105b15612623578384805480919060010161258f9190612687565b81548110151561259b57fe5b90600052602060002090019150438260000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550828260000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550612681565b83600185805490500381548110151561263857fe5b90600052602060002090019050828160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b50505050565b8154818355818115116126ae578183600052602060002091820191016126ad91906126b3565b5b505050565b61271591905b8082111561271157600080820160006101000a8154906fffffffffffffffffffffffffffffffff02191690556000820160106101000a8154906fffffffffffffffffffffffffffffffff0219169055506001016126b9565b5090565b90565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561277857600080fd5b612780610e5e565b9150818483011015151561279357600080fd5b61279c856116d1565b905080848201101515156127af57600080fd5b6127bc600a858401612510565b612806600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858301612510565b8473ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600192505050929150505600a165627a7a7230582057d91e278aec7846edc686a0736c357474e09bee47ab75d7ebd66208e1c84150002900000000000000000000000019a89d05a51b7ed5e40dc915c62c55cfd02ec528000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000001fc3842bd1f071c000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000a5761727020546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045741525000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x606060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610255578063095ea7b3146102e3578063176345141461033d57806318160ddd1461036657806323b872dd1461038f578063313ce567146104085780633cebb823146104375780633e6c0933146104705780634ee2cd7e1461057957806354fd4d50146105cf57806370a082311461065d57806380a54001146106aa57806395d89b41146106ff578063981b24d01461078d578063a9059cbb146107c4578063bef97c871461081e578063c5bcc4f11461084b578063cae9ca5114610874578063dd62ed3e14610911578063df8de3e71461097d578063e77772fe146109b6578063f41e60c514610a0b578063f77c479114610a30575b61015d6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a85565b151561016857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f48c305434336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506020604051808303818588803b151561022c57600080fd5b6125ee5a03f1151561023d57600080fd5b5050505060405180519050151561025357600080fd5b005b341561026057600080fd5b610268610ac1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102a857808201518184015260208101905061028d565b50505050905090810190601f1680156102d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102ee57600080fd5b610323600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b5f565b604051808215151515815260200191505060405180910390f35b341561034857600080fd5b610350610e58565b6040518082815260200191505060405180910390f35b341561037157600080fd5b610379610e5e565b6040518082815260200191505060405180910390f35b341561039a57600080fd5b6103ee600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e6e565b604051808215151515815260200191505060405180910390f35b341561041357600080fd5b61041b61100d565b604051808260ff1660ff16815260200191505060405180910390f35b341561044257600080fd5b61046e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611020565b005b341561047b57600080fd5b610537600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803560ff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803515159060200190919080359060200190919050506110be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561058457600080fd5b6105b9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506113be565b6040518082815260200191505060405180910390f35b34156105da57600080fd5b6105e2611633565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610622578082015181840152602081019050610607565b50505050905090810190601f16801561064f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561066857600080fd5b610694600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116d1565b6040518082815260200191505060405180910390f35b34156106b557600080fd5b6106bd6116e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561070a57600080fd5b61071261170a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610752578082015181840152602081019050610737565b50505050905090810190601f16801561077f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561079857600080fd5b6107ae60048080359060200190919050506117a8565b6040518082815260200191505060405180910390f35b34156107cf57600080fd5b610804600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611931565b604051808215151515815260200191505060405180910390f35b341561082957600080fd5b610831611963565b604051808215151515815260200191505060405180910390f35b341561085657600080fd5b61085e611976565b6040518082815260200191505060405180910390f35b341561087f57600080fd5b6108f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061197c565b604051808215151515815260200191505060405180910390f35b341561091c57600080fd5b610967600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611af5565b6040518082815260200191505060405180910390f35b341561098857600080fd5b6109b4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b7c565b005b34156109c157600080fd5b6109c9611ead565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1657600080fd5b610a2e60048080351515906020019091905050611ed3565b005b3415610a3b57600080fd5b610a43611f4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060008373ffffffffffffffffffffffffffffffffffffffff161415610ab05760009150610abb565b823b90506000811191505b50919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b575780601f10610b2c57610100808354040283529160200191610b57565b820191906000526020600020905b815481529060010190602001808311610b3a57829003601f168201915b505050505081565b6000600b60009054906101000a900460ff161515610b7c57600080fd5b6000821480610c0757506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610c1257600080fd5b610c3c6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a85565b15610d68576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663da682aeb3385856000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515610d4157600080fd5b6102c65a03f11515610d5257600080fd5b505050604051805190501515610d6757600080fd5b5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60075481565b6000610e69436117a8565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ff757600b60009054906101000a900460ff161515610ee157600080fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610f6c57600080fd5b81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b611002848484611f70565b600190509392505050565b600260009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561107b57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008514156110ce574394505b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9de71cc30878b8b8b8a8a6000604051602001526040518863ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001878152602001806020018660ff1660ff1681526020018060200185151515158152602001848152602001838103835288818151815260200191508051906020019080838360005b838110156111df5780820151818401526020810190506111c4565b50505050905090810190601f16801561120c5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b8381101561124557808201518184015260208101905061122a565b50505050905090810190601f1680156112725780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b151561129757600080fd5b6102c65a03f115156112a857600080fd5b5050506040518051905090508073ffffffffffffffffffffffffffffffffffffffff16633cebb823336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561134e57600080fd5b6102c65a03f1151561135f57600080fd5b5050508073ffffffffffffffffffffffffffffffffffffffff167f086c875b377f900b07ce03575813022f05dd10ed7640b5282cf6d3c3fc352ade866040518082815260200191505060405180910390a2809150509695505050505050565b600080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490501480611498575081600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548110151561145957fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16115b156115e2576000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156115d957600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ee2cd7e8461152a856006546122e3565b6000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156115b757600080fd5b6102c65a03f115156115c857600080fd5b50505060405180519050905061162d565b6000905061162d565b61162a600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836122fc565b90505b92915050565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116c95780601f1061169e576101008083540402835291602001916116c9565b820191906000526020600020905b8154815290600101906020018083116116ac57829003601f168201915b505050505081565b60006116dd82436113be565b9050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117a05780601f10611775576101008083540402835291602001916117a0565b820191906000526020600020905b81548152906001019060200180831161178357829003601f168201915b505050505081565b600080600a805490501480611808575081600a60008154811015156117c957fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16115b1561191e576000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561191557600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663981b24d0611899846006546122e3565b6000604051602001526040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156118f357600080fd5b6102c65a03f1151561190457600080fd5b50505060405180519050905061192c565b6000905061192c565b611929600a836122fc565b90505b919050565b6000600b60009054906101000a900460ff16151561194e57600080fd5b611959338484611f70565b6001905092915050565b600b60009054906101000a900460ff1681565b60065481565b60006119888484610b5f565b151561199357600080fd5b8373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a88578082015181840152602081019050611a6d565b50505050905090810190601f168015611ab55780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515611ad657600080fd5b6102c65a03f11515611ae757600080fd5b505050600190509392505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bda57600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff161415611c76576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611c7157600080fd5b611ea8565b8291508173ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611d1c57600080fd5b6102c65a03f11515611d2d57600080fd5b5050506040518051905090508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611e0557600080fd5b6102c65a03f11515611e1657600080fd5b50505060405180519050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c836040518082815260200191505060405180910390a35b505050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f2e57600080fd5b80600b60006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000831415611fe6578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a36122dc565b43600654101515611ff657600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff161415801561204957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b151561205457600080fd5b61205e85436113be565b915082821015151561206f57600080fd5b6120996000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a85565b156121c5576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a3931498686866000604051602001526040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561219e57600080fd5b6102c65a03f115156121af57600080fd5b5050506040518051905015156121c457600080fd5b5b61220f600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848403612510565b61221984436113be565b9050808382011015151561222c57600080fd5b612276600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848301612510565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b5050505050565b60008183106122f257816122f4565b825b905092915050565b6000806000806000868054905014156123185760009350612507565b85600187805490500381548110151561232d57fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16851015156123cb5785600187805490500381548110151561238757fe5b906000526020600020900160000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169350612507565b8560008154811015156123da57fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168510156124275760009350612507565b60009250600186805490500391505b828211156124b957600260018484010181151561244f57fe5b04905084868281548110151561246157fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff161115156124ad578092506124b4565b6001810391505b612436565b85838154811015156124c757fe5b906000526020600020900160000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1693505b50505092915050565b60008060008480549050148061257657504384600186805490500381548110151561253757fe5b906000526020600020900160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16105b15612623578384805480919060010161258f9190612687565b81548110151561259b57fe5b90600052602060002090019150438260000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550828260000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550612681565b83600185805490500381548110151561263857fe5b90600052602060002090019050828160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b50505050565b8154818355818115116126ae578183600052602060002091820191016126ad91906126b3565b5b505050565b61271591905b8082111561271157600080820160006101000a8154906fffffffffffffffffffffffffffffffff02191690556000820160106101000a8154906fffffffffffffffffffffffffffffffff0219169055506001016126b9565b5090565b90565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561277857600080fd5b612780610e5e565b9150818483011015151561279357600080fd5b61279c856116d1565b905080848201101515156127af57600080fd5b6127bc600a858401612510565b612806600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858301612510565b8473ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600192505050929150505600a165627a7a7230582057d91e278aec7846edc686a0736c357474e09bee47ab75d7ebd66208e1c841500029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000019a89d05a51b7ed5e40dc915c62c55cfd02ec528000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000001fc3842bd1f071c000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000a5761727020546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045741525000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _tokenFactory (address): 0x19A89d05a51B7Ed5E40dc915C62c55cFD02ec528
Arg [1] : _parentToken (address): 0x0000000000000000000000000000000000000000
Arg [2] : _parentSnapShotBlock (uint256): 0
Arg [3] : _tokenName (string): Warp Token
Arg [4] : _decimalUnits (uint8): 18
Arg [5] : _tokenSymbol (string): WARP
Arg [6] : _transfersEnabled (bool): True
Arg [7] : _tokenSupply (uint256): 150000000000000000000000
Arg [8] : _generateInitialSupply (bool): True

-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 00000000000000000000000019a89d05a51b7ed5e40dc915c62c55cfd02ec528
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [7] : 000000000000000000000000000000000000000000001fc3842bd1f071c00000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [9] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [10] : 5761727020546f6b656e00000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [12] : 5741525000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

3420:21604:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23671:22;23682:10;;;;;;;;;;;23671;:22::i;:::-;23663:31;;;;;;;;23743:10;;;;;;;;;;;23727:40;;;23774:9;23803:10;23727:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23705:134;;;;;;;;3420:21604;3462:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11447:983:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4586:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13972:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8031:753;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;471:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;17678:876;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14457:1108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3651:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10872:168:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4275:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3598:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15783:1063:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7459:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5179:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4466:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13462:382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12756:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24169:378;;;;;;;;;;;;;;;;;;;;;;;;;;;;5268:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20552:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;251:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22961:235;23023:4;23040:12;23076:1;23067:5;:10;;;23063:28;;;23086:5;23079:12;;;;23063:28;23146:5;23134:11;23126:26;;23187:1;23180:4;:8;23173:15;;22961:235;;;;;:::o;3462:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11447:983::-;11533:12;11571:16;;;;;;;;;;;11563:25;;;;;;;;11928:1;11917:7;:12;11916:54;;;;11968:1;11935:7;:19;11943:10;11935:19;;;;;;;;;;;;;;;:29;11955:8;11935:29;;;;;;;;;;;;;;;;:34;11916:54;11908:63;;;;;;;;12057:22;12068:10;;;;;;;;;;;12057;:22::i;:::-;12053:246;;;12138:10;;;;;;;;;;;12122:37;;;12182:10;12215:8;12246:7;12122:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12096:191;;;;;;;;12053:246;12343:7;12311;:19;12319:10;12311:19;;;;;;;;;;;;;;;:29;12331:8;12311:29;;;;;;;;;;;;;;;:39;;;;12382:8;12361:39;;12370:10;12361:39;;;12392:7;12361:39;;;;;;;;;;;;;;;;;;12418:4;12411:11;;11447:983;;;;:::o;4586:28::-;;;;:::o;13972:110::-;14020:7;14047:27;14061:12;14047:13;:27::i;:::-;14040:34;;13972:110;:::o;8031:753::-;8148:12;8471:10;;;;;;;;;;;8457:24;;:10;:24;;;;8453:260;;;8506:16;;;;;;;;;;;8498:25;;;;;;;;8641:7;8611;:14;8619:5;8611:14;;;;;;;;;;;;;;;:26;8626:10;8611:26;;;;;;;;;;;;;;;;:37;;8603:46;;;;;;;;8694:7;8664;:14;8672:5;8664:14;;;;;;;;;;;;;;;:26;8679:10;8664:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;8453:260;8723:31;8734:5;8741:3;8746:7;8723:10;:31::i;:::-;8772:4;8765:11;;8031:753;;;;;:::o;3528:21::-;;;;;;;;;;;;;:::o;471:118::-;226:10;;;;;;;;;;;212:24;;:10;:24;;;204:33;;;;;;;;567:14;554:10;;:27;;;;;;;;;;;;;;;;;;471:118;:::o;17678:876::-;17927:7;18012:22;17969:1;17951:14;:19;17947:54;;;17989:12;17972:29;;17947:54;18050:12;;;;;;;;;;;:29;;;18098:4;18121:14;18154:15;18188:18;18225:17;18261;18297:12;18050:274;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18012:312:0;;18337:10;:27;;;18365:10;18337:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18481:10;18459:50;;;18494:14;18459:50;;;;;;;;;;;;;;;;;;18535:10;18520:26;;17678:876;;;;;;;;;:::o;14457:1108::-;14568:7;14971:1;14944:8;:16;14953:6;14944:16;;;;;;;;;;;;;;;:23;;;;:28;14943:93;;;;15023:12;14991:8;:16;15000:6;14991:16;;;;;;;;;;;;;;;15008:1;14991:19;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:44;;;14943:93;14925:633;;;15091:1;15075:11;;;;;;;;;;;15067:25;;;;15063:321;;;15141:11;;;;;;;;;;;:23;;;15191:6;15224:38;15228:12;15242:19;;15224:3;:38::i;:::-;15141:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15113:172;;;;15063:321;15367:1;15360:8;;;;14925:633;15504:42;15515:8;:16;15524:6;15515:16;;;;;;;;;;;;;;;15533:12;15504:10;:42::i;:::-;15497:49;;14457:1108;;;;;:::o;3651:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10872:168::-;10959:15;10999:33;11011:6;11019:12;10999:11;:33::i;:::-;10992:40;;10872:168;;;:::o;4275:30::-;;;;;;;;;;;;;:::o;3598:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15783:1063::-;15880:7;16309:1;16280:18;:25;;;;:30;16279:97;;;;16363:12;16329:18;16348:1;16329:21;;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;:46;;;16279:97;16261:578;;;16431:1;16415:11;;;;;;;;;;;16407:25;;;;16403:256;;;16481:11;;;;;;;;;;;:25;;;16533:38;16537:12;16551:19;;16533:3;:38::i;:::-;16481:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16453:141;;;;16403:256;16642:1;16635:8;;;;16261:578;16783:44;16794:18;16814:12;16783:10;:44::i;:::-;16776:51;;15783:1063;;;;:::o;7459:214::-;7541:12;7579:16;;;;;;;;;;;7571:25;;;;;;;;7607:36;7618:10;7630:3;7635:7;7607:10;:36::i;:::-;7661:4;7654:11;;7459:214;;;;:::o;5179:28::-;;;;;;;;;;;;;:::o;4466:34::-;;;;:::o;13462:382::-;13589:12;13622:26;13630:8;13640:7;13622;:26::i;:::-;13614:35;;;;;;;;13685:8;13662:48;;;13725:10;13750:7;13772:4;13791:10;13662:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13832:4:0;13825:11;;13462:382;;;;;:::o;12756:180::-;12861:17;12903:7;:15;12911:6;12903:15;;;;;;;;;;;;;;;:25;12919:8;12903:25;;;;;;;;;;;;;;;;12896:32;;12756:180;;;;:::o;24169:378::-;24351:17;24401:15;226:10;;;;;;;;;;;212:24;;:10;:24;;;204:33;;;;;;;;24253:3;24243:6;:13;;;24239:100;;;24273:10;;;;;;;;;;;:19;;:33;24293:4;:12;;;24273:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24321:7;;24239:100;24383:6;24351:39;;24419:5;:15;;;24435:4;24419:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24401:39;;24451:5;:14;;;24466:10;;;;;;;;;;;24478:7;24451:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24519:10;;;;;;;;;;;24497:42;;24511:6;24497:42;;;24531:7;24497:42;;;;;;;;;;;;;;;;;;239:1;24169:378;;;:::o;5268:38::-;;;;;;;;;;;;;:::o;20552:126::-;226:10;;;;;;;;;;;212:24;;:10;:24;;;204:33;;;;;;;;20653:17;20634:16;;:36;;;;;;;;;;;;;;;;;;20552:126;:::o;251:25::-;;;;;;;;;;;;;:::o;9171:1562::-;9751:23;10395:21;9305:1;9294:7;:12;9290:149;;;9339:3;9323:29;;9332:5;9323:29;;;9344:7;9323:29;;;;;;;;;;;;;;;;;;9421:7;;9290:149;9481:12;9459:19;;:34;9451:43;;;;;;;;9593:1;9586:3;:8;;;;9585:36;;;;;9615:4;9600:20;;:3;:20;;;;9585:36;9577:45;;;;;;;;9777:32;9789:5;9796:12;9777:11;:32::i;:::-;9751:58;;9853:7;9830:19;:30;;9822:39;;;;;;;;9934:22;9945:10;;;;;;;;;;;9934;:22::i;:::-;9930:155;;;10015:10;;;;;;;;;;;9999:38;;;10038:5;10045:3;10050:7;9999:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9973:100;;;;;;;;9930:155;10207:64;10224:8;:15;10233:5;10224:15;;;;;;;;;;;;;;;10263:7;10241:19;:29;10207:16;:64::i;:::-;10419:30;10431:3;10436:12;10419:11;:30::i;:::-;10395:54;;10499:17;10488:7;10468:17;:27;:48;;10460:57;;;;;;;;10550:60;10567:8;:13;10576:3;10567:13;;;;;;;;;;;;;;;10602:7;10582:17;:27;10550:16;:60::i;:::-;10712:3;10696:29;;10705:5;10696:29;;;10717:7;10696:29;;;;;;;;;;;;;;;;;;9171:1562;;;;;;:::o;23271:106::-;23329:7;23360:1;23356;:5;:13;;23368:1;23356:13;;;23364:1;23356:13;23349:20;;23271:106;;;;:::o;21074:838::-;21198:7;21560:11;21586;21666;21249:1;21227:11;:18;;;;:23;21223:37;;;21259:1;21252:8;;;;21223:37;21329:11;21362:1;21341:11;:18;;;;:22;21329:35;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;21319:55;;:6;:55;;21315:122;;;21396:11;21429:1;21408:11;:18;;;;:22;21396:35;;;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;21389:48;;;;;;21315:122;21461:11;21473:1;21461:14;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;21452:33;;:6;:33;21448:47;;;21494:1;21487:8;;;;21448:47;21574:1;21560:15;;21621:1;21600:11;:18;;;;:22;21586:36;;21633:232;21646:3;21640;:9;21633:232;;;21698:1;21693;21687:3;21681;:9;:13;21680:19;;;;;;;;21666:33;;21748:6;21718:11;21730:3;21718:16;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;:36;;;;21714:140;;;21781:3;21775:9;;21714:140;;;21837:1;21831:3;:7;21825:13;;21714:140;21633:232;;;21882:11;21894:3;21882:16;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;21875:29;;;;21074:838;;;;;;;;:::o;22136:649::-;22395:32;22627;22287:1;22265:11;:18;;;;:23;22264:104;;;;22355:12;22307:11;22340:1;22319:11;:18;;;;:22;22307:35;;;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;:60;;;22264:104;22246:532;;;22447:11;22459;:20;;;;;;;;;;;:::i;:::-;22447:33;;;;;;;;;;;;;;;;;;22395:85;;22529:12;22495:13;:23;;;:47;;;;;;;;;;;;;;;;;;22587:6;22557:13;:19;;;:37;;;;;;;;;;;;;;;;;;22246:532;;;22679:11;22712:1;22691:11;:18;;;;:22;22679:35;;;;;;;;;;;;;;;;;;22627:87;;22759:6;22729:13;:19;;;:37;;;;;;;;;;;;;;;;;;22246:532;22136:649;;;;:::o;3420:21604::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18907:622::-;19023:4;19045:22;19178:25;226:10;;;;;;;;;;;212:24;;:10;:24;;;204:33;;;;;;;;19070:13;:11;:13::i;:::-;19045:38;;19130:14;19119:7;19102:14;:24;:42;;19094:51;;;;;;;;19206:17;19216:6;19206:9;:17::i;:::-;19178:45;;19273:17;19262:7;19242:17;:27;:48;;19234:57;;;;;;;;19324:62;19341:18;19378:7;19361:14;:24;19324:16;:62::i;:::-;19397:63;19414:8;:16;19423:6;19414:16;;;;;;;;;;;;;;;19452:7;19432:17;:27;19397:16;:63::i;:::-;19483:6;19471:28;;19480:1;19471:28;19491:7;19471:28;;;;;;;;;;;;;;;;;;19517:4;19510:11;;18907:622;;;;;;:::o

Swarm Source

bzzr://57d91e278aec7846edc686a0736c357474e09bee47ab75d7ebd66208e1c84150
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.