ETH Price: $3,897.87 (+0.19%)

Token

THECASH (TCH)
 

Overview

Max Total Supply

38,000,000 TCH

Holders

727 (0.00%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
THECASH

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-07-14
*/

/**
 *Submitted for verification at Etherscan.io on 2019-10-02
*/

pragma solidity ^0.5.8;


/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0);
        uint256 c = a / b;
        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;
        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);
        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

contract Ownable
{
    bool private stopped;
    
    address public _owner;
    address public _admin;
    address private proposedOwner;
    mapping(address => bool) private _allowed;

    event Stopped();
    event Started();
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event Allowed(address indexed _address);
    event RemoveAllowed(address indexed _address);

    constructor () internal
    {
        stopped = false;
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    function owner() public view returns (address)
    {
        return _owner;
    }

    modifier onlyOwner()
    {
        require(isOwner());
        _;
    }

    modifier onlyAllowed()
    {
        require(isAllowed() || isOwner());
        _;
    }

    modifier onlyWhenNotStopped()
    {
        require(!isStopped());
        _;
    }

    function isOwner() public view returns (bool)
    {
        return msg.sender == _owner;
    }

    function isAllowed() public view returns (bool)
    {
        return _allowed[msg.sender];
    }

    function allow(address _target) external onlyOwner returns (bool)
    {
        _allowed[_target] = true;
        emit Allowed(_target);
        return true;
    }

    function removeAllowed(address _target) external onlyOwner returns (bool)
    {
        _allowed[_target] = false;
        emit RemoveAllowed(_target);
        return true;
    }

    function isStopped() public view returns (bool)
    {
        if(isOwner() || isAllowed())
        {
            return false;
        }
        else
        {
            return stopped;
        }
    }

    function stop() public onlyOwner
    {
        _stop();
    }

    function start() public onlyOwner
    {
        _start();
    }

    function proposeOwner(address _proposedOwner) public onlyOwner
    {
        require(msg.sender != _proposedOwner);
        proposedOwner = _proposedOwner;
    }

    function claimOwnership() public
    {
        require(msg.sender == proposedOwner);

        emit OwnershipTransferred(_owner, proposedOwner);

        _owner = proposedOwner;
        proposedOwner = address(0);
    }

    function _stop() internal
    {
        emit Stopped();
        stopped = true;
    }

    function _start() internal
    {
        emit Started();
        stopped = false;
    }
}

contract BaseToken is Ownable
{
    using SafeMath for uint256;

    uint256 constant internal E18 = 1000000000000000000;
    uint256 constant public decimals = 18;
    uint256 public totalSupply;

    struct Lock {
        uint256 amount;
        uint256 expiresAt;
    }

    mapping (address => uint256) public balances;
    mapping (address => mapping ( address => uint256 )) public approvals;
    mapping (address => Lock[]) public lockup;
    mapping(address => bool) public lockedAddresses;

    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    event Locked(address _who,uint256 _index);
    event UnlockedAll(address _who);
    event UnlockedIndex(address _who, uint256 _index);
    
    event Burn(address indexed from, uint256 indexed value);
    
    constructor() public
    {
        balances[msg.sender] = totalSupply;
    }

    modifier transferParamsValidation(address _from, address _to, uint256 _value)
    {
        require(_from != address(0));
        require(_to != address(0));
        require(_value > 0);
        require(balances[_from] >= _value);
        require(!isLocked(_from, _value));
        _;
    }
    
    modifier canTransfer(address _sender, uint256 _value) {
    require(!lockedAddresses[_sender]);
    require(_sender != address(0));
    

    _;
    }

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

    function lockedBalanceOf(address _who) view public returns (uint256)
    {
        require(_who != address(0));

        uint256 lockedBalance = 0;
        if(lockup[_who].length > 0)
        {
            Lock[] storage locks = lockup[_who];

            uint256 length = locks.length;
            for (uint i = 0; i < length; i++)
            {
                if (now < locks[i].expiresAt)
                {
                    lockedBalance = lockedBalance.add(locks[i].amount);
                }
            }
        }

        return lockedBalance;
    }

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

    function isLocked(address _who, uint256 _value) view public returns(bool)
    {
        uint256 lockedBalance = lockedBalanceOf(_who);
        uint256 balance = balanceOf(_who);

        if(lockedBalance <= 0)
        {
            return false;
        }
        else
        {
            return !(balance > lockedBalance && balance.sub(lockedBalance) >= _value);
        }
    }

    function transfer(address _to, uint256 _value) external onlyWhenNotStopped canTransfer(msg.sender, _value) transferParamsValidation(msg.sender, _to, _value) returns (bool)
    {
        
        _transfer(msg.sender, _to, _value);

        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) external onlyWhenNotStopped transferParamsValidation(_from, _to, _value) returns (bool)
    {
        require(approvals[_from][msg.sender] >= _value);

        approvals[_from][msg.sender] = approvals[_from][msg.sender].sub(_value);

        _transfer(_from, _to, _value);

        return true;
    }
    
    // transferWithLock is only for airdrop or marketing purpose

    function transferWithLock(address _to, uint256 _value, uint256 _time) onlyOwner transferParamsValidation(msg.sender, _to, _value) external returns (bool)
    {
        require(_time > now);

        _lock(_to, _value, _time);
        _transfer(msg.sender, _to, _value);

        return true;
    }
    
    // lockAddress is only for security accident prevention
    
    function lockAddress(address _addr, bool _locked) onlyOwner external
    {
        lockedAddresses[_addr] = _locked;
    }

    // approve is for transfer authentication
    function approve(address _spender, uint256 _value) external onlyWhenNotStopped returns (bool)
    {
        require(_spender != address(0));
        require(balances[msg.sender] >= _value);
        require(msg.sender != _spender);

        approvals[msg.sender][_spender] = _value;

        emit Approval(msg.sender, _spender, _value);

        return true;
    }

    
    function unlock(address _who, uint256 _index) onlyOwner external returns (bool)
    {
        uint256 length = lockup[_who].length;
        require(length > _index);

        lockup[_who][_index] = lockup[_who][length - 1];
        lockup[_who].length--;

        emit UnlockedIndex(_who, _index);

        return true;
    }

    function unlockAll(address _who) onlyOwner external returns (bool)
    {
        require(lockup[_who].length > 0);

        delete lockup[_who];
        emit UnlockedAll(_who);

        return true;
    }
    
    // burn is for incubator fund or security accident prevention

    function burn(uint256 _value) external
    {
        require(balances[msg.sender] >= _value);
        require(_value > 0);

        balances[msg.sender] = balances[msg.sender].sub(_value);

        totalSupply = totalSupply.sub(_value);

        emit Burn(msg.sender, _value);
    }
    
    

    function _mint(address account, uint256 _value) internal 
    {
        require(account != address(0));

        totalSupply = totalSupply.add(_value);
        balances[account] = balances[account].add(_value);
        emit Transfer(address(0), account, _value);
    }

   
    function _transfer(address _from, address _to, uint256 _value) internal
    {
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        
        
        emit Transfer(_from, _to, _value);
    }

    function _lock(address _who, uint256 _value, uint256 _dateTime) onlyOwner internal
    {
        lockup[_who].push(Lock(_value, _dateTime));

        emit Locked(_who, lockup[_who].length - 1);
    }

    // destruction is for token upgrade
    function destruction() onlyOwner public
    {
        selfdestruct(msg.sender);
    }
    
    
}

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev give an account access to this role
     */
    function add(Role storage role, address account) internal {
        require(account != address(0));
        require(!has(role, account));

        role.bearer[account] = true;
    }

    /**
     * @dev remove an account's access to this role
     */
    function remove(Role storage role, address account) internal {
        require(account != address(0));
        require(has(role, account));

        role.bearer[account] = false;
    }

    /**
     * @dev check if an account has this role
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0));
        return role.bearer[account];
    }
}

contract MinterRole {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    constructor () internal {
        _addMinter(msg.sender);
    }

    modifier onlyMinter() {
        require(isMinter(msg.sender));
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function addMinter(address account) public onlyMinter {
        _addMinter(account);
    }

    function renounceMinter() public {
        _removeMinter(msg.sender);
    }

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

/**
 * @title ERC20Mintable
 * @dev ERC20 minting logic
 */
contract ERC20Mintable is BaseToken, MinterRole {
    /**
     * @dev Function to mint tokens
     * @param to The address that will receive the minted tokens.
     * @param value The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
     
    // mint is only for THENODE's daily MPoS mining (250000 THE)
    function mint(address to, uint256 value) public onlyMinter returns (bool) {
        _mint(to, value);
        return true;
    }
}


contract THECASH is BaseToken, ERC20Mintable
{
    using SafeMath for uint256;

    string constant public name    = 'THECASH';
    string constant public symbol  = 'TCH';
    string constant public version = '1.0.0';


    constructor() public
    {
        totalSupply = 2000000 * E18;
        balances[msg.sender] = totalSupply;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"_admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isStopped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"}],"name":"lockedBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"}],"name":"removeAllowed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"},{"name":"_index","type":"uint256"}],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_value","type":"uint256"}],"name":"isLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isAllowed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"approvals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockedAddresses","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lockup","outputs":[{"name":"amount","type":"uint256"},{"name":"expiresAt","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_proposedOwner","type":"address"}],"name":"proposeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"}],"name":"unlockAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"destruction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_time","type":"uint256"}],"name":"transferWithLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_locked","type":"bool"}],"name":"lockAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"}],"name":"allow","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_who","type":"address"},{"indexed":false,"name":"_index","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_who","type":"address"}],"name":"UnlockedAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_who","type":"address"},{"indexed":false,"name":"_index","type":"uint256"}],"name":"UnlockedIndex","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"Stopped","type":"event"},{"anonymous":false,"inputs":[],"name":"Started","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"}],"name":"Allowed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"}],"name":"RemoveAllowed","type":"event"}]

60806040523480156200001157600080fd5b5060008060006101000a81548160ff02191690831515021790555033600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600454600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200014133620001a160201b60201c565b670de0b6b3a7640000621e848002600481905550600454600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200034b565b620001bc8160096200020260201b620029901790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200023d57600080fd5b6200024f8282620002b860201b60201c565b156200025a57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002f457600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612b98806200035b6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c806395d89b4111610130578063aa271e1a116100b8578063d37c6c9e1161007c578063d37c6c9e14610bfb578063dd62ed3e14610c05578063de6baccb14610c7d578063f226003114610ced578063ff9913e814610d3d57610232565b8063aa271e1a14610aab578063b2bdfa7b14610b07578063b5ed298a14610b51578063be9a655514610b95578063c4f3a85314610b9f57610232565b8063a21fbc92116100ff578063a21fbc92146108e6578063a32ce11e14610908578063a5bbd67a14610980578063a7b86824146109dc578063a9059cbb14610a4557610232565b806395d89b41146107af578063983b2d5614610832578063986502751461087657806399cca36c1461088057610232565b806340c10f19116101be5780636470db2f116101825780636470db2f1461062957806370a08231146106855780637eee288d146106dd5780638da5cb5b146107435780638f32d59b1461078d57610232565b806340c10f19146104b057806342966c68146105165780634e71e0c81461054457806354fd4d501461054e57806359355736146105d157610232565b806318160ddd1161020557806318160ddd1461037457806323b872dd1461039257806327e235e314610418578063313ce567146104705780633f683b6a1461048e57610232565b806301bc45c91461023757806306fdde031461028157806307da68f514610304578063095ea7b31461030e575b600080fd5b61023f610d99565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610289610dbf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102c95780820151818401526020810190506102ae565b50505050905090810190601f1680156102f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61030c610df8565b005b61035a6004803603604081101561032457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e13565b604051808215151515815260200191505060405180910390f35b61037c610fd6565b6040518082815260200191505060405180910390f35b6103fe600480360360608110156103a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fdc565b604051808215151515815260200191505060405180910390f35b61045a6004803603602081101561042e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611285565b6040518082815260200191505060405180910390f35b61047861129d565b6040518082815260200191505060405180910390f35b6104966112a2565b604051808215151515815260200191505060405180910390f35b6104fc600480360360408110156104c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112de565b604051808215151515815260200191505060405180910390f35b6105426004803603602081101561052c57600080fd5b8101908080359060200190929190505050611306565b005b61054c611456565b005b6105566115f5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561059657808201518184015260208101905061057b565b50505050905090810190601f1680156105c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610613600480360360208110156105e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162e565b6040518082815260200191505060405180910390f35b61066b6004803603602081101561063f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611785565b604051808215151515815260200191505060405180910390f35b6106c76004803603602081101561069b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061183c565b6040518082815260200191505060405180910390f35b610729600480360360408110156106f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611885565b604051808215151515815260200191505060405180910390f35b61074b611a7e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610795611aa7565b604051808215151515815260200191505060405180910390f35b6107b7611afe565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107f75780820151818401526020810190506107dc565b50505050905090810190601f1680156108245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108746004803603602081101561084857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b37565b005b61087e611b55565b005b6108cc6004803603604081101561089657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b60565b604051808215151515815260200191505060405180910390f35b6108ee611bbb565b604051808215151515815260200191505060405180910390f35b61096a6004803603604081101561091e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c0f565b6040518082815260200191505060405180910390f35b6109c26004803603602081101561099657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c34565b604051808215151515815260200191505060405180910390f35b610a28600480360360408110156109f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c54565b604051808381526020018281526020019250505060405180910390f35b610a9160048036036040811015610a5b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c92565b604051808215151515815260200191505060405180910390f35b610aed60048036036020811015610ac157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e37565b604051808215151515815260200191505060405180910390f35b610b0f611e54565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b9360048036036020811015610b6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e7a565b005b610b9d611f08565b005b610be160048036036020811015610bb557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f23565b604051808215151515815260200191505060405180910390f35b610c0361203c565b005b610c6760048036036040811015610c1b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612066565b6040518082815260200191505060405180910390f35b610cd360048036036060811015610c9357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506120ed565b604051808215151515815260200191505060405180910390f35b610d3b60048036036040811015610d0357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612214565b005b610d7f60048036036020811015610d5357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612280565b604051808215151515815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600781526020017f544845434153480000000000000000000000000000000000000000000000000081525081565b610e00611aa7565b610e0957600080fd5b610e11612337565b565b6000610e1d6112a2565b15610e2757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e6157600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ead57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610ee657600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60045481565b6000610fe66112a2565b15610ff057600080fd5b838383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561102d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106757600080fd5b6000811161107457600080fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156110c057600080fd5b6110ca8382611b60565b156110d457600080fd5b84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561115d57600080fd5b6111ec85600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237f90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061127787878761239f565b600193505050509392505050565b60056020528060005260406000206000915090505481565b601281565b60006112ac611aa7565b806112bb57506112ba611bbb565b5b156112c957600090506112db565b6000809054906101000a900460ff1690505b90565b60006112e933611e37565b6112f257600080fd5b6112fc8383612533565b6001905092915050565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561135257600080fd5b6000811161135f57600080fd5b6113b181600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237f90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114098160045461237f90919063ffffffff16565b600481905550803373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560405160405180910390a350565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114b057600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561166957600080fd5b60008090506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111561177c576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008180549050905060008090505b818110156117785782818154811061171f57fe5b90600052602060002090600202016001015442101561176b5761176883828154811061174757fe5b9060005260206000209060020201600001548561268790919063ffffffff16565b93505b808060010191505061170b565b5050505b80915050919050565b600061178f611aa7565b61179857600080fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5d9380eecb09de6c59dcca531d6c3da62117987963d921ccb7db0deb8a663dac60405160405180910390a260019050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061188f611aa7565b61189857600080fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090508281116118eb57600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600182038154811061193857fe5b9060005260206000209060020201600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061199057fe5b90600052602060002090600202016000820154816000015560018201548160010155905050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003611a079190612ae7565b507f657baf241b86add9803c50dcc5c1e3af63c10bf6c9e0500b0344ae29235279ca8484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600191505092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f544348000000000000000000000000000000000000000000000000000000000081525081565b611b4033611e37565b611b4957600080fd5b611b52816126a6565b50565b611b5e33612700565b565b600080611b6c8461162e565b90506000611b798561183c565b905060008211611b8e57600092505050611bb5565b8181118015611baf575083611bac838361237f90919063ffffffff16565b10155b15925050505b92915050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905090565b6006602052816000526040600020602052806000526040600020600091509150505481565b60086020528060005260406000206000915054906101000a900460ff1681565b60076020528160005260406000208181548110611c6d57fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b6000611c9c6112a2565b15611ca657600080fd5b3382600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611cff57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d3957600080fd5b338585600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611db057600080fd5b60008111611dbd57600080fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611e0957600080fd5b611e138382611b60565b15611e1d57600080fd5b611e2833898961239f565b60019550505050505092915050565b6000611e4d82600961275a90919063ffffffff16565b9050919050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e82611aa7565b611e8b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611ec457600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611f10611aa7565b611f1957600080fd5b611f216127ec565b565b6000611f2d611aa7565b611f3657600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011611f8557600080fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611fd09190612b19565b7f500b38ce040ec2c9a2f10695ec52a72efd3b83b3366d10c8a9fb082f528b32fc82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160019050919050565b612044611aa7565b61204d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16ff5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006120f7611aa7565b61210057600080fd5b338484600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561213d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561217757600080fd5b6000811161218457600080fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156121d057600080fd5b6121da8382611b60565b156121e457600080fd5b4285116121f057600080fd5b6121fb878787612834565b61220633888861239f565b600193505050509392505050565b61221c611aa7565b61222557600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061228a611aa7565b61229357600080fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f77a7dbc6ad97703ad411a8d5edfcd1df382fb34b076a90898b11884f7ebdcc0560405160405180910390a260019050919050565b7f7acc84e34091ae817647a4c49116f5cc07f319078ba80f8f5fde37ea7e25cbd660405160405180910390a160016000806101000a81548160ff021916908315150217905550565b60008282111561238e57600080fd5b600082840390508091505092915050565b6123f181600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237f90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248681600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561256d57600080fd5b6125828160045461268790919063ffffffff16565b6004819055506125da81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008082840190508381101561269c57600080fd5b8091505092915050565b6126ba81600961299090919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b612714816009612a3c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561279557600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b7fd8cea0ecd56872ff072e771658b5682ffe4de16d752947f79597d600ea56f7a960405160405180910390a160008060006101000a81548160ff021916908315150217905550565b61283c611aa7565b61284557600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001838152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050507f9f1ec8c880f76798e7b793325d625e9b60e4082a553c98f42b6cda368dd60008836001600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129ca57600080fd5b6129d4828261275a565b156129de57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612a7657600080fd5b612a80828261275a565b612a8957600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b815481835581811115612b1457600202816002028360005260206000209182019101612b139190612b3d565b5b505050565b5080546000825560020290600052602060002090810190612b3a9190612b3d565b50565b612b6991905b80821115612b6557600080820160009055600182016000905550600201612b43565b5090565b9056fea165627a7a72305820688b05cb3c4681d686ce82fee718db6c6e213555845319fdc6df353d40f2550b0029

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102325760003560e01c806395d89b4111610130578063aa271e1a116100b8578063d37c6c9e1161007c578063d37c6c9e14610bfb578063dd62ed3e14610c05578063de6baccb14610c7d578063f226003114610ced578063ff9913e814610d3d57610232565b8063aa271e1a14610aab578063b2bdfa7b14610b07578063b5ed298a14610b51578063be9a655514610b95578063c4f3a85314610b9f57610232565b8063a21fbc92116100ff578063a21fbc92146108e6578063a32ce11e14610908578063a5bbd67a14610980578063a7b86824146109dc578063a9059cbb14610a4557610232565b806395d89b41146107af578063983b2d5614610832578063986502751461087657806399cca36c1461088057610232565b806340c10f19116101be5780636470db2f116101825780636470db2f1461062957806370a08231146106855780637eee288d146106dd5780638da5cb5b146107435780638f32d59b1461078d57610232565b806340c10f19146104b057806342966c68146105165780634e71e0c81461054457806354fd4d501461054e57806359355736146105d157610232565b806318160ddd1161020557806318160ddd1461037457806323b872dd1461039257806327e235e314610418578063313ce567146104705780633f683b6a1461048e57610232565b806301bc45c91461023757806306fdde031461028157806307da68f514610304578063095ea7b31461030e575b600080fd5b61023f610d99565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610289610dbf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102c95780820151818401526020810190506102ae565b50505050905090810190601f1680156102f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61030c610df8565b005b61035a6004803603604081101561032457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e13565b604051808215151515815260200191505060405180910390f35b61037c610fd6565b6040518082815260200191505060405180910390f35b6103fe600480360360608110156103a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fdc565b604051808215151515815260200191505060405180910390f35b61045a6004803603602081101561042e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611285565b6040518082815260200191505060405180910390f35b61047861129d565b6040518082815260200191505060405180910390f35b6104966112a2565b604051808215151515815260200191505060405180910390f35b6104fc600480360360408110156104c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112de565b604051808215151515815260200191505060405180910390f35b6105426004803603602081101561052c57600080fd5b8101908080359060200190929190505050611306565b005b61054c611456565b005b6105566115f5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561059657808201518184015260208101905061057b565b50505050905090810190601f1680156105c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610613600480360360208110156105e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162e565b6040518082815260200191505060405180910390f35b61066b6004803603602081101561063f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611785565b604051808215151515815260200191505060405180910390f35b6106c76004803603602081101561069b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061183c565b6040518082815260200191505060405180910390f35b610729600480360360408110156106f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611885565b604051808215151515815260200191505060405180910390f35b61074b611a7e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610795611aa7565b604051808215151515815260200191505060405180910390f35b6107b7611afe565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107f75780820151818401526020810190506107dc565b50505050905090810190601f1680156108245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6108746004803603602081101561084857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b37565b005b61087e611b55565b005b6108cc6004803603604081101561089657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b60565b604051808215151515815260200191505060405180910390f35b6108ee611bbb565b604051808215151515815260200191505060405180910390f35b61096a6004803603604081101561091e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c0f565b6040518082815260200191505060405180910390f35b6109c26004803603602081101561099657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c34565b604051808215151515815260200191505060405180910390f35b610a28600480360360408110156109f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c54565b604051808381526020018281526020019250505060405180910390f35b610a9160048036036040811015610a5b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c92565b604051808215151515815260200191505060405180910390f35b610aed60048036036020811015610ac157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e37565b604051808215151515815260200191505060405180910390f35b610b0f611e54565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b9360048036036020811015610b6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e7a565b005b610b9d611f08565b005b610be160048036036020811015610bb557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f23565b604051808215151515815260200191505060405180910390f35b610c0361203c565b005b610c6760048036036040811015610c1b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612066565b6040518082815260200191505060405180910390f35b610cd360048036036060811015610c9357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506120ed565b604051808215151515815260200191505060405180910390f35b610d3b60048036036040811015610d0357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612214565b005b610d7f60048036036020811015610d5357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612280565b604051808215151515815260200191505060405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600781526020017f544845434153480000000000000000000000000000000000000000000000000081525081565b610e00611aa7565b610e0957600080fd5b610e11612337565b565b6000610e1d6112a2565b15610e2757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e6157600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610ead57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610ee657600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60045481565b6000610fe66112a2565b15610ff057600080fd5b838383600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561102d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106757600080fd5b6000811161107457600080fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156110c057600080fd5b6110ca8382611b60565b156110d457600080fd5b84600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561115d57600080fd5b6111ec85600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237f90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061127787878761239f565b600193505050509392505050565b60056020528060005260406000206000915090505481565b601281565b60006112ac611aa7565b806112bb57506112ba611bbb565b5b156112c957600090506112db565b6000809054906101000a900460ff1690505b90565b60006112e933611e37565b6112f257600080fd5b6112fc8383612533565b6001905092915050565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561135257600080fd5b6000811161135f57600080fd5b6113b181600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237f90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114098160045461237f90919063ffffffff16565b600481905550803373ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca560405160405180910390a350565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114b057600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561166957600080fd5b60008090506000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050111561177c576000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008180549050905060008090505b818110156117785782818154811061171f57fe5b90600052602060002090600202016001015442101561176b5761176883828154811061174757fe5b9060005260206000209060020201600001548561268790919063ffffffff16565b93505b808060010191505061170b565b5050505b80915050919050565b600061178f611aa7565b61179857600080fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5d9380eecb09de6c59dcca531d6c3da62117987963d921ccb7db0deb8a663dac60405160405180910390a260019050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061188f611aa7565b61189857600080fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090508281116118eb57600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600182038154811061193857fe5b9060005260206000209060020201600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061199057fe5b90600052602060002090600202016000820154816000015560018201548160010155905050600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003611a079190612ae7565b507f657baf241b86add9803c50dcc5c1e3af63c10bf6c9e0500b0344ae29235279ca8484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600191505092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f544348000000000000000000000000000000000000000000000000000000000081525081565b611b4033611e37565b611b4957600080fd5b611b52816126a6565b50565b611b5e33612700565b565b600080611b6c8461162e565b90506000611b798561183c565b905060008211611b8e57600092505050611bb5565b8181118015611baf575083611bac838361237f90919063ffffffff16565b10155b15925050505b92915050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905090565b6006602052816000526040600020602052806000526040600020600091509150505481565b60086020528060005260406000206000915054906101000a900460ff1681565b60076020528160005260406000208181548110611c6d57fe5b9060005260206000209060020201600091509150508060000154908060010154905082565b6000611c9c6112a2565b15611ca657600080fd5b3382600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611cff57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d3957600080fd5b338585600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611db057600080fd5b60008111611dbd57600080fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611e0957600080fd5b611e138382611b60565b15611e1d57600080fd5b611e2833898961239f565b60019550505050505092915050565b6000611e4d82600961275a90919063ffffffff16565b9050919050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e82611aa7565b611e8b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611ec457600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611f10611aa7565b611f1957600080fd5b611f216127ec565b565b6000611f2d611aa7565b611f3657600080fd5b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011611f8557600080fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611fd09190612b19565b7f500b38ce040ec2c9a2f10695ec52a72efd3b83b3366d10c8a9fb082f528b32fc82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160019050919050565b612044611aa7565b61204d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16ff5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006120f7611aa7565b61210057600080fd5b338484600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561213d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561217757600080fd5b6000811161218457600080fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156121d057600080fd5b6121da8382611b60565b156121e457600080fd5b4285116121f057600080fd5b6121fb878787612834565b61220633888861239f565b600193505050509392505050565b61221c611aa7565b61222557600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061228a611aa7565b61229357600080fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f77a7dbc6ad97703ad411a8d5edfcd1df382fb34b076a90898b11884f7ebdcc0560405160405180910390a260019050919050565b7f7acc84e34091ae817647a4c49116f5cc07f319078ba80f8f5fde37ea7e25cbd660405160405180910390a160016000806101000a81548160ff021916908315150217905550565b60008282111561238e57600080fd5b600082840390508091505092915050565b6123f181600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237f90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248681600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561256d57600080fd5b6125828160045461268790919063ffffffff16565b6004819055506125da81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008082840190508381101561269c57600080fd5b8091505092915050565b6126ba81600961299090919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b612714816009612a3c90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561279557600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b7fd8cea0ecd56872ff072e771658b5682ffe4de16d752947f79597d600ea56f7a960405160405180910390a160008060006101000a81548160ff021916908315150217905550565b61283c611aa7565b61284557600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001838152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050507f9f1ec8c880f76798e7b793325d625e9b60e4082a553c98f42b6cda368dd60008836001600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156129ca57600080fd5b6129d4828261275a565b156129de57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612a7657600080fd5b612a80828261275a565b612a8957600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b815481835581811115612b1457600202816002028360005260206000209182019101612b139190612b3d565b5b505050565b5080546000825560020290600052602060002090810190612b3a9190612b3d565b50565b612b6991905b80821115612b6557600080820160009055600182016000905550600201612b43565b5090565b9056fea165627a7a72305820688b05cb3c4681d686ce82fee718db6c6e213555845319fdc6df353d40f2550b0029

Deployed Bytecode Sourcemap

12863:355:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12863:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1696:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12951:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12951:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3371:64;;;:::i;:::-;;8136:374;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8136:374:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4294:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7117:375;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7117:375:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4410:44;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4410:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4250:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3150:213;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12723:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12723:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9161:292;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9161:292:0;;;;;;;;;;;;;;;;;:::i;:::-;;3690:226;;;:::i;:::-;;13045:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13045:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5703:581;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5703:581:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2959:183;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2959:183:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5587:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5587:108:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8524:336;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8524:336:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2201:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2571:97;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13000:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13000:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11832:92;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11832:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11932:77;;;:::i;:::-;;6443:394;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6443:394:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2676:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4461:68;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4461:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4584:47;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4584:47:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4536:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4536:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6845:264;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6845:264:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11715:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11715:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1668:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3517:165;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3517:165:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3443:66;;;:::i;:::-;;8868:212;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8868:212:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10279:88;;;:::i;:::-;;6292:143;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6292:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7572:305;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7572:305:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7956:125;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7956:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2783:168;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2783:168:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1696:21;;;;;;;;;;;;;:::o;12951:42::-;;;;;;;;;;;;;;;;;;;:::o;3371:64::-;2338:9;:7;:9::i;:::-;2330:18;;;;;;3420:7;:5;:7::i;:::-;3371:64::o;8136:374::-;8224:4;2531:11;:9;:11::i;:::-;2530:12;2522:21;;;;;;8274:1;8254:22;;:8;:22;;;;8246:31;;;;;;8320:6;8296:8;:20;8305:10;8296:20;;;;;;;;;;;;;;;;:30;;8288:39;;;;;;8360:8;8346:22;;:10;:22;;;;8338:31;;;;;;8416:6;8382:9;:21;8392:10;8382:21;;;;;;;;;;;;;;;:31;8404:8;8382:31;;;;;;;;;;;;;;;:40;;;;8461:8;8440:38;;8449:10;8440:38;;;8471:6;8440:38;;;;;;;;;;;;;;;;;;8498:4;8491:11;;8136:374;;;;:::o;4294:26::-;;;;:::o;7117:375::-;7265:4;2531:11;:9;:11::i;:::-;2530:12;2522:21;;;;;;7236:5;7243:3;7248:6;5232:1;5215:19;;:5;:19;;;;5207:28;;;;;;5269:1;5254:17;;:3;:17;;;;5246:26;;;;;;5300:1;5291:6;:10;5283:19;;;;;;5340:6;5321:8;:15;5330:5;5321:15;;;;;;;;;;;;;;;;:25;;5313:34;;;;;;5367:23;5376:5;5383:6;5367:8;:23::i;:::-;5366:24;5358:33;;;;;;7327:6;7295:9;:16;7305:5;7295:16;;;;;;;;;;;;;;;:28;7312:10;7295:28;;;;;;;;;;;;;;;;:38;;7287:47;;;;;;7378:40;7411:6;7378:9;:16;7388:5;7378:16;;;;;;;;;;;;;;;:28;7395:10;7378:28;;;;;;;;;;;;;;;;:32;;:40;;;;:::i;:::-;7347:9;:16;7357:5;7347:16;;;;;;;;;;;;;;;:28;7364:10;7347:28;;;;;;;;;;;;;;;:71;;;;7431:29;7441:5;7448:3;7453:6;7431:9;:29::i;:::-;7480:4;7473:11;;2554:1;;;7117:375;;;;;:::o;4410:44::-;;;;;;;;;;;;;;;;;:::o;4250:37::-;4285:2;4250:37;:::o;3150:213::-;3192:4;3217:9;:7;:9::i;:::-;:24;;;;3230:11;:9;:11::i;:::-;3217:24;3214:142;;;3274:5;3267:12;;;;3214:142;3337:7;;;;;;;;;;;3330:14;;3150:213;;:::o;12723:131::-;12791:4;11666:20;11675:10;11666:8;:20::i;:::-;11658:29;;;;;;12808:16;12814:2;12818:5;12808;:16::i;:::-;12842:4;12835:11;;12723:131;;;;:::o;9161:292::-;9248:6;9224:8;:20;9233:10;9224:20;;;;;;;;;;;;;;;;:30;;9216:39;;;;;;9283:1;9274:6;:10;9266:19;;;;;;9321:32;9346:6;9321:8;:20;9330:10;9321:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9298:8;:20;9307:10;9298:20;;;;;;;;;;;;;;;:55;;;;9380:23;9396:6;9380:11;;:15;;:23;;;;:::i;:::-;9366:11;:37;;;;9438:6;9426:10;9421:24;;;;;;;;;;;;9161:292;:::o;3690:226::-;3761:13;;;;;;;;;;;3747:27;;:10;:27;;;3739:36;;;;;;3822:13;;;;;;;;;;;3793:43;;3814:6;;;;;;;;;;;3793:43;;;;;;;;;;;;3858:13;;;;;;;;;;;3849:6;;:22;;;;;;;;;;;;;;;;;;3906:1;3882:13;;:26;;;;;;;;;;;;;;;;;;3690:226::o;13045:40::-;;;;;;;;;;;;;;;;;;;:::o;5703:581::-;5763:7;5812:1;5796:18;;:4;:18;;;;5788:27;;;;;;5828:21;5852:1;5828:25;;5889:1;5867:6;:12;5874:4;5867:12;;;;;;;;;;;;;;;:19;;;;:23;5864:380;;;5916:20;5939:6;:12;5946:4;5939:12;;;;;;;;;;;;;;;5916:35;;5968:14;5985:5;:12;;;;5968:29;;6017:6;6026:1;6017:10;;6012:221;6033:6;6029:1;:10;6012:221;;;6088:5;6094:1;6088:8;;;;;;;;;;;;;;;;;;:18;;;6082:3;:24;6078:140;;;6164:34;6182:5;6188:1;6182:8;;;;;;;;;;;;;;;;;;:15;;;6164:13;:17;;:34;;;;:::i;:::-;6148:50;;6078:140;6041:3;;;;;;;6012:221;;;;5864:380;;;6263:13;6256:20;;;5703:581;;;:::o;2959:183::-;3027:4;2338:9;:7;:9::i;:::-;2330:18;;;;;;3069:5;3049:8;:17;3058:7;3049:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;3104:7;3090:22;;;;;;;;;;;;3130:4;3123:11;;2959:183;;;:::o;5587:108::-;5641:7;5673:8;:14;5682:4;5673:14;;;;;;;;;;;;;;;;5666:21;;5587:108;;;:::o;8524:336::-;8598:4;2338:9;:7;:9::i;:::-;2330:18;;;;;;8620:14;8637:6;:12;8644:4;8637:12;;;;;;;;;;;;;;;:19;;;;8620:36;;8684:6;8675;:15;8667:24;;;;;;8727:6;:12;8734:4;8727:12;;;;;;;;;;;;;;;8749:1;8740:6;:10;8727:24;;;;;;;;;;;;;;;;;;8704:6;:12;8711:4;8704:12;;;;;;;;;;;;;;;8717:6;8704:20;;;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;;8762:6;:12;8769:4;8762:12;;;;;;;;;;;;;;;:21;;;;;;;;;;;;:::i;:::-;;8801:27;8815:4;8821:6;8801:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;8848:4;8841:11;;;8524:336;;;;:::o;2201:84::-;2239:7;2271:6;;;;;;;;;;;2264:13;;2201:84;:::o;2571:97::-;2611:4;2654:6;;;;;;;;;;;2640:20;;:10;:20;;;2633:27;;2571:97;:::o;13000:38::-;;;;;;;;;;;;;;;;;;;:::o;11832:92::-;11666:20;11675:10;11666:8;:20::i;:::-;11658:29;;;;;;11897:19;11908:7;11897:10;:19::i;:::-;11832:92;:::o;11932:77::-;11976:25;11990:10;11976:13;:25::i;:::-;11932:77::o;6443:394::-;6511:4;6533:21;6557;6573:4;6557:15;:21::i;:::-;6533:45;;6589:15;6607;6617:4;6607:9;:15::i;:::-;6589:33;;6655:1;6638:13;:18;6635:195;;6689:5;6682:12;;;;;;6635:195;6764:13;6754:7;:23;:63;;;;;6811:6;6781:26;6793:13;6781:7;:11;;:26;;;;:::i;:::-;:36;;6754:63;6752:66;6745:73;;;;6443:394;;;;;:::o;2676:99::-;2718:4;2747:8;:20;2756:10;2747:20;;;;;;;;;;;;;;;;;;;;;;;;;2740:27;;2676:99;:::o;4461:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4584:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;4536:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6845:264::-;7011:4;2531:11;:9;:11::i;:::-;2530:12;2522:21;;;;;;6932:10;6944:6;5493:15;:24;5509:7;5493:24;;;;;;;;;;;;;;;;;;;;;;;;;5492:25;5484:34;;;;;;5552:1;5533:21;;:7;:21;;;;5525:30;;;;;;6977:10;6989:3;6994:6;5232:1;5215:19;;:5;:19;;;;5207:28;;;;;;5269:1;5254:17;;:3;:17;;;;5246:26;;;;;;5300:1;5291:6;:10;5283:19;;;;;;5340:6;5321:8;:15;5330:5;5321:15;;;;;;;;;;;;;;;;:25;;5313:34;;;;;;5367:23;5376:5;5383:6;5367:8;:23::i;:::-;5366:24;5358:33;;;;;;7043:34;7053:10;7065:3;7070:6;7043:9;:34::i;:::-;7097:4;7090:11;;5570:1;;;2554;;6845:264;;;;:::o;11715:109::-;11771:4;11795:21;11808:7;11795:8;:12;;:21;;;;:::i;:::-;11788:28;;11715:109;;;:::o;1668:21::-;;;;;;;;;;;;;:::o;3517:165::-;2338:9;:7;:9::i;:::-;2330:18;;;;;;3618:14;3604:28;;:10;:28;;;;3596:37;;;;;;3660:14;3644:13;;:30;;;;;;;;;;;;;;;;;;3517:165;:::o;3443:66::-;2338:9;:7;:9::i;:::-;2330:18;;;;;;3493:8;:6;:8::i;:::-;3443:66::o;8868:212::-;8929:4;2338:9;:7;:9::i;:::-;2330:18;;;;;;8981:1;8959:6;:12;8966:4;8959:12;;;;;;;;;;;;;;;:19;;;;:23;8951:32;;;;;;9003:6;:12;9010:4;9003:12;;;;;;;;;;;;;;;;8996:19;;;;:::i;:::-;9031:17;9043:4;9031:17;;;;;;;;;;;;;;;;;;;;;;9068:4;9061:11;;8868:212;;;:::o;10279:88::-;2338:9;:7;:9::i;:::-;2330:18;;;;;;10348:10;10335:24;;;6292:143;6368:7;6400:9;:17;6410:6;6400:17;;;;;;;;;;;;;;;:27;6418:8;6400:27;;;;;;;;;;;;;;;;6393:34;;6292:143;;;;:::o;7572:305::-;7720:4;2338:9;:7;:9::i;:::-;2330:18;;;;;;7677:10;7689:3;7694:6;5232:1;5215:19;;:5;:19;;;;5207:28;;;;;;5269:1;5254:17;;:3;:17;;;;5246:26;;;;;;5300:1;5291:6;:10;5283:19;;;;;;5340:6;5321:8;:15;5330:5;5321:15;;;;;;;;;;;;;;;;:25;;5313:34;;;;;;5367:23;5376:5;5383:6;5367:8;:23::i;:::-;5366:24;5358:33;;;;;;7758:3;7750:5;:11;7742:20;;;;;;7775:25;7781:3;7786:6;7794:5;7775;:25::i;:::-;7811:34;7821:10;7833:3;7838:6;7811:9;:34::i;:::-;7865:4;7858:11;;2359:1;;;7572:305;;;;;:::o;7956:125::-;2338:9;:7;:9::i;:::-;2330:18;;;;;;8066:7;8041:15;:22;8057:5;8041:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;7956:125;;:::o;2783:168::-;2843:4;2338:9;:7;:9::i;:::-;2330:18;;;;;;2885:4;2865:8;:17;2874:7;2865:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;2913:7;2905:16;;;;;;;;;;;;2939:4;2932:11;;2783:168;;;:::o;3924:89::-;3971:9;;;;;;;;;;4001:4;3991:7;;:14;;;;;;;;;;;;;;;;;;3924:89::o;939:148::-;997:7;1030:1;1025;:6;;1017:15;;;;;;1043:9;1059:1;1055;:5;1043:17;;1078:1;1071:8;;;939:148;;;;:::o;9761:257::-;9867:27;9887:6;9867:8;:15;9876:5;9867:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9849:8;:15;9858:5;9849:15;;;;;;;;;;;;;;;:45;;;;9921:25;9939:6;9921:8;:13;9930:3;9921:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;9905:8;:13;9914:3;9905:13;;;;;;;;;;;;;;;:41;;;;9998:3;9982:28;;9991:5;9982:28;;;10003:6;9982:28;;;;;;;;;;;;;;;;;;9761:257;;;:::o;9473:275::-;9574:1;9555:21;;:7;:21;;;;9547:30;;;;;;9604:23;9620:6;9604:11;;:15;;:23;;;;:::i;:::-;9590:11;:37;;;;9658:29;9680:6;9658:8;:17;9667:7;9658:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;9638:8;:17;9647:7;9638:17;;;;;;;;;;;;;;;:49;;;;9724:7;9703:37;;9720:1;9703:37;;;9733:6;9703:37;;;;;;;;;;;;;;;;;;9473:275;;:::o;1173:148::-;1231:7;1251:9;1267:1;1263;:5;1251:17;;1292:1;1287;:6;;1279:15;;;;;;1312:1;1305:8;;;1173:148;;;;:::o;12017:122::-;12074:21;12087:7;12074:8;:12;;:21;;;;:::i;:::-;12123:7;12111:20;;;;;;;;;;;;12017:122;:::o;12147:130::-;12207:24;12223:7;12207:8;:15;;:24;;;;:::i;:::-;12261:7;12247:22;;;;;;;;;;;;12147:130;:::o;11180:165::-;11252:4;11296:1;11277:21;;:7;:21;;;;11269:30;;;;;;11317:4;:11;;:20;11329:7;11317:20;;;;;;;;;;;;;;;;;;;;;;;;;11310:27;;11180:165;;;;:::o;4021:91::-;4069:9;;;;;;;;;;4099:5;4089:7;;:15;;;;;;;;;;;;;;;;;;4021:91::o;10026:204::-;2338:9;:7;:9::i;:::-;2330:18;;;;;;10125:6;:12;10132:4;10125:12;;;;;;;;;;;;;;;10143:23;;;;;;;;10148:6;10143:23;;;;10156:9;10143:23;;;10125:42;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10125:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10185:37;10192:4;10220:1;10198:6;:12;10205:4;10198:12;;;;;;;;;;;;;;;:19;;;;:23;10185:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;10026:204;;;:::o;10632:186::-;10728:1;10709:21;;:7;:21;;;;10701:30;;;;;;10751:18;10755:4;10761:7;10751:3;:18::i;:::-;10750:19;10742:28;;;;;;10806:4;10783;:11;;:20;10795:7;10783:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;10632:186;;:::o;10897:189::-;10996:1;10977:21;;:7;:21;;;;10969:30;;;;;;11018:18;11022:4;11028:7;11018:3;:18::i;:::-;11010:27;;;;;;11073:5;11050:4;:11;;:20;11062:7;11050:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10897:189;;:::o;12863:355::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://688b05cb3c4681d686ce82fee718db6c6e213555845319fdc6df353d40f2550b
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.