ETH Price: $3,599.26 (+5.02%)
Gas: 5.89 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

CardioCoin (CRDC) (@$0.0002)

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Transfer214557512024-12-22 4:48:4713 days ago1734842927IN
CardioCoin: CRDC Token
0 ETH0.0004982411.82659762
Transfer214557112024-12-22 4:40:3513 days ago1734842435IN
CardioCoin: CRDC Token
0 ETH0.000337075.69100475
Transfer214489822024-12-21 6:06:1114 days ago1734761171IN
CardioCoin: CRDC Token
0 ETH0.000854459.11410819
Transfer214020212024-12-14 16:43:3520 days ago1734194615IN
CardioCoin: CRDC Token
0 ETH0.000575879.72283652
Transfer213633562024-12-09 7:09:4726 days ago1733728187IN
CardioCoin: CRDC Token
0 ETH0.0005127710.92656074
Transfer213496382024-12-07 9:11:1127 days ago1733562671IN
CardioCoin: CRDC Token
0 ETH0.0007408517.58045258
Transfer213496032024-12-07 9:04:1127 days ago1733562251IN
CardioCoin: CRDC Token
0 ETH0.0015522814.61191917
Transfer213214222024-12-03 10:36:3531 days ago1733222195IN
CardioCoin: CRDC Token
0 ETH0.0011394527.05456647
Transfer213214022024-12-03 10:32:3531 days ago1733221955IN
CardioCoin: CRDC Token
0 ETH0.0025350220.5818354
Transfer212481922024-11-23 4:57:1142 days ago1732337831IN
CardioCoin: CRDC Token
0 ETH0.0005837812.43658607
Transfer212458762024-11-22 21:12:2342 days ago1732309943IN
CardioCoin: CRDC Token
0 ETH0.0012358820.86615003
Transfer212457482024-11-22 20:46:4742 days ago1732308407IN
CardioCoin: CRDC Token
0 ETH0.0011412713.79899276
Transfer212366802024-11-21 14:23:5943 days ago1732199039IN
CardioCoin: CRDC Token
0 ETH0.0016524439.23460818
Transfer212366782024-11-21 14:23:3543 days ago1732199015IN
CardioCoin: CRDC Token
0 ETH0.0026832435.0059753
Transfer210542852024-10-27 3:30:2369 days ago1729999823IN
CardioCoin: CRDC Token
0 ETH0.00023724.00488541
Transfer210191232024-10-22 5:46:4774 days ago1729576007IN
CardioCoin: CRDC Token
0 ETH0.000575086.13419408
Transfer209112382024-10-07 4:17:5989 days ago1728274679IN
CardioCoin: CRDC Token
0 ETH0.000500836.53397807
Transfer208669472024-10-01 0:05:4795 days ago1727741147IN
CardioCoin: CRDC Token
0 ETH0.00450
Transfer208669132024-09-30 23:58:5995 days ago1727740739IN
CardioCoin: CRDC Token
0 ETH0.003550
Transfer208666472024-09-30 23:05:3595 days ago1727737535IN
CardioCoin: CRDC Token
0 ETH0.004260
Transfer208392232024-09-27 3:18:5999 days ago1727407139IN
CardioCoin: CRDC Token
0 ETH0.0010187324.18815788
Transfer208392082024-09-27 3:15:5999 days ago1727406959IN
CardioCoin: CRDC Token
0 ETH0.0013441317.5357458
Transfer208389352024-09-27 2:21:1199 days ago1727403671IN
CardioCoin: CRDC Token
0 ETH0.0006835114.56492382
Transfer208174492024-09-24 2:25:35102 days ago1727144735IN
CardioCoin: CRDC Token
0 ETH0.0014181923.9442598
Transfer208173912024-09-24 2:13:47102 days ago1727144027IN
CardioCoin: CRDC Token
0 ETH0.0011527218.00320081
View all transactions

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CardioCoin

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-28
*/

pragma solidity ^0.4.24;

/**
 * @dev SafeMath
 * Math operations with safety checks that throw on error
 * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

    function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {
        if (b > a) return 0;
        return a - b;
    }

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

interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

contract IERC20 is IERC165 {
    function totalSupply() public view returns (uint256);
    function balanceOf(address account) public view returns (uint256);
    function decimals() public view returns (uint8);
    function transfer(address recipient, uint256 amount) public returns (bool);
    function allowance(address owner, address spender) public view returns (uint256);
    function approve(address spender, uint256 amount) public returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool);
    function safeTransfer(address recipient, uint256 amount, bytes memory data) public;
    function safeTransfer(address recipient, uint256 amount) public;
    function safeTransferFrom(address sender, address recipient, uint256 amount, bytes memory data) public;
    function safeTransferFrom(address sender, address recipient, uint256 amount) public;

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

contract ERC165 is IERC165 {
    bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;
    mapping(bytes4 => bool) private _supportedInterfaces;

    constructor () internal {
        _registerInterface(_INTERFACE_ID_ERC165);
    }

    function supportsInterface(bytes4 interfaceId) external view returns (bool) {
        return _supportedInterfaces[interfaceId];
    }

    function _registerInterface(bytes4 interfaceId) internal {
        require(interfaceId != 0xffffffff, "ERC165: invalid interface id");
        _supportedInterfaces[interfaceId] = true;
    }
}

contract IERC20Receiver {
    function onERC20Received(address _operator, address _from, uint256 _amount, bytes memory _data) public returns (bytes4);
}
// ----------------------------------------------------------------------------
// @title Ownable
// ----------------------------------------------------------------------------
contract Ownable {
    address public owner;

    event SetOwner(address owner);
    event SetMinter(address minter);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() public {
        owner    = msg.sender;

        emit SetOwner(msg.sender);
        emit SetMinter(msg.sender);
    }

    modifier onlyOwner() { require(msg.sender == owner); _; }

    function transferOwnership(address _newOwner) external onlyOwner {
        require(_newOwner != address(0));
        emit OwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}
// ----------------------------------------------------------------------------
// @title ERC20
// ----------------------------------------------------------------------------
contract ERC20 is ERC165, IERC20, Ownable {
    using SafeMath for uint256;
    
    event LockedInfo(address indexed from, address indexed to, uint256 value, uint8 tokenType, uint256 distributedTime, uint256 lockUpPeriodMonth, uint256 unlockAmountPerCount, uint256 remainUnLockCount, uint256 CONST_UNLOCKCOUNT);
    event ChangeListingTime(uint256 oldTime, uint256 newTime);
    event FinshedSetExchangeListingTime();

    struct LockInfo {
        bool isLocked;
        uint8 tokenType;
        uint256 amount;
        uint256 distributedTime;
        uint256 lockUpPeriodMonth;
        uint256 lastUnlockTimestamp;
        uint256 unlockAmountPerCount;
        uint256 remainUnLockCount;
        uint256 CONST_UNLOCKCOUNT;
        uint256 CONST_AMOUNT;
    }
    
    uint256 internal _totalSupply;
    uint8 private _decimals = 18;

    uint256 internal _tokenCreatedTime;
    
    mapping(address => uint256) internal _balances;
    mapping(address => mapping (address => uint256)) internal _allowances;

    mapping(address => uint8) internal _cardioWallet;
    mapping(address => mapping (uint8 => LockInfo)) internal _lockedInfo;

    bytes4 private constant _ERC20_RECEIVED = 0x9d188c22;
    bytes4 private constant _INTERFACE_ID_ERC20 = 0x65787371;

    constructor() public {
        _tokenCreatedTime = now;
        // Crowd Sale Wallet
        _cardioWallet[0x93f53B4C8ED2C0Cc84BdE1166B290998bAA0d005] = 1;
        // Team & Advisors
        _cardioWallet[0x0787bb893334FE0E6254a575B7D11E1009CBD2a3] = 2;
        // Ecosystem Activation
        _cardioWallet[0x3E5553619440A990f9227AB4557433e6AFCb1267] = 3;
        // Business Development
        _cardioWallet[0x0f1b039128d04891BC15137271F61c259B4f239D] = 4;
    }

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view returns (uint256) {
        uint256 totalBalances = _balances[account];
        uint8 tokenType;

        for (tokenType = 1; tokenType <= 4; tokenType++) {
            LockInfo memory lockInfo = _lockedInfo[account][tokenType];
            totalBalances = totalBalances.add(lockInfo.amount);
        }
        
        return totalBalances;
    }

    function unLockBalanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function lockUpInfo(address account, uint8 tokenType) public view returns (bool, uint8, uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256) {
        LockInfo memory lockInfo = _lockedInfo[account][tokenType];
        return (lockInfo.isLocked, lockInfo.tokenType, lockInfo.amount, lockInfo.distributedTime, lockInfo.lockUpPeriodMonth, lockInfo.lastUnlockTimestamp, lockInfo.unlockAmountPerCount, lockInfo.remainUnLockCount, lockInfo.CONST_UNLOCKCOUNT, lockInfo.CONST_AMOUNT);
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function increaseApproval(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(amount));
        return true;
    }

    function decreaseApproval(address spender, uint256 amount) public returns (bool) {
        if (amount >= _allowances[msg.sender][spender]) {
            amount = 0;
        } else {
            amount = _allowances[msg.sender][spender].sub(amount);
        }

        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }
    
    function safeTransfer(address recipient, uint256 amount) public {
        safeTransfer(recipient, amount, "");
    }

    function safeTransfer(address recipient, uint256 amount, bytes memory data) public {
        transfer(recipient, amount);
        require(_checkOnERC20Received(msg.sender, recipient, amount, data), "ERC20: transfer to non ERC20Receiver implementer");
    }
    
    function safeTransferFrom(address sender, address recipient, uint256 amount) public {
        safeTransferFrom(sender, recipient, amount, "");
    }

    function safeTransferFrom(address sender, address recipient, uint256 amount, bytes memory data) public {
        transferFrom(sender, recipient, amount);
        require(_checkOnERC20Received(sender, recipient, amount, data), "ERC20: transfer to non ERC20Receiver implementer");
    }

    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint8 adminAccountType = _cardioWallet[sender];
        // Crowd Sale Wallet, Team & Advisors from admin wallet Type 1, 2
        if(adminAccountType >= 1 && adminAccountType <= 2) {
            _addLocker(sender, recipient, adminAccountType, amount);
        } else {
            // Check "From" LockUp Balance
            uint8 tokenType;
            for (tokenType = 1; tokenType <= 4; tokenType++) {
                LockInfo storage lockInfo = _lockedInfo[sender][tokenType];
                if (lockInfo.isLocked) {
                    _unLock(sender, tokenType);
                }
            }
            _balances[sender] = _balances[sender].sub(amount);
            _balances[recipient] = _balances[recipient].add(amount);
        }

        emit Transfer(sender, recipient, amount);
    }

    function _addLocker(address sender, address recipient, uint8 adminAcountType, uint256 amount) internal {
        require(_lockedInfo[recipient][adminAcountType].isLocked == false, "Already Locked User");
        
        uint256 distributedTime;
        uint256 lockUpPeriodMonth;
        uint256 unlockAmountPerCount;
        uint256 remainUnLockCount;
        uint256 CONST_UNLOCKCOUNT;
        uint256 CONST_AMOUNT;
        
        if(adminAcountType == 1) { // Crowd Sale
            distributedTime = now;
            lockUpPeriodMonth = 12;
            unlockAmountPerCount = amount.div(100);
            remainUnLockCount = 6;
            CONST_UNLOCKCOUNT = 5;
            CONST_AMOUNT = amount;
        } else { // Team & Advisors
            distributedTime = now;
            lockUpPeriodMonth = 20;
            unlockAmountPerCount = amount.div(40);
            remainUnLockCount = 40;
            CONST_UNLOCKCOUNT = 40;
            CONST_AMOUNT = amount;
        }
        
        LockInfo memory newLockInfo = LockInfo({
            isLocked: true,
            tokenType : adminAcountType,
            amount: amount,
            distributedTime: distributedTime,
            lockUpPeriodMonth: lockUpPeriodMonth,
            lastUnlockTimestamp: 0,
            unlockAmountPerCount: unlockAmountPerCount,
            remainUnLockCount: remainUnLockCount,
            CONST_UNLOCKCOUNT: CONST_UNLOCKCOUNT,
            CONST_AMOUNT: CONST_AMOUNT
        });
        
        _balances[sender] = _balances[sender].sub(amount);
        _lockedInfo[recipient][adminAcountType] = newLockInfo;
    }
    
    function _unLock(address sender, uint8 tokenType) internal {
        LockInfo storage lockInfo = _lockedInfo[sender][tokenType];

        // Only Crowd Sale Type
        // 518400 = 6 Days
        if(tokenType == 1 && lockInfo.remainUnLockCount == 6 && lockInfo.distributedTime.add(518400) <= now) {
            // lockInfo update
            lockInfo.remainUnLockCount = 5;

            // Fisrt Distribute 5%
            uint256 distributeAmount = lockInfo.unlockAmountPerCount.mul(50);
            lockInfo.amount = lockInfo.amount.sub(distributeAmount);
            _balances[sender] = _balances[sender].add(distributeAmount);
        }

        if(_isOverLockUpPeriodMonth((now.safeSub(lockInfo.distributedTime)), lockInfo.lockUpPeriodMonth) == false) {
            return;
        }

        uint256 blockTime = now;
        uint256 count = _getUnLockCount(blockTime, lockInfo);

        // None
        if(count == 0) return;
        uint256 unlockAmount;
        if(tokenType == 1) {
            unlockAmount = count.mul(lockInfo.unlockAmountPerCount.mul(10));
        } else {
            unlockAmount = count.mul(lockInfo.unlockAmountPerCount);
        }

        // Shortage due to burn token
        // or the last distribution
        uint256 remainUnLockCount = lockInfo.remainUnLockCount.safeSub(count);
        if (lockInfo.amount.safeSub(unlockAmount) == 0 || remainUnLockCount == 0) {
            unlockAmount = lockInfo.amount;
            lockInfo.isLocked = false;
        }
        
        // lockInfo update
        lockInfo.lastUnlockTimestamp = now;
        lockInfo.remainUnLockCount = remainUnLockCount;
        lockInfo.amount = lockInfo.amount.sub(unlockAmount);
        
        _balances[sender] = _balances[sender].add(unlockAmount);
    }
    
    function _getUnLockCount(uint256 curBlockTime, LockInfo lockInfo) internal pure returns (uint256) {
        // 1 Month = 30 Days 
        uint256 lockUpTime = lockInfo.lockUpPeriodMonth * 30 * 24 * 60 * 60;

        uint256 startTime = lockInfo.distributedTime.add(lockUpTime);
        uint256 count = 0;

        if (lockInfo.lastUnlockTimestamp == 0) {
            count = _convertMSToMonth(curBlockTime - startTime);
        } else {
            uint256 unLockedCount = _convertMSToMonth(curBlockTime - startTime);
            uint256 alreadyUnLockCount = lockInfo.CONST_UNLOCKCOUNT - lockInfo.remainUnLockCount;
            
            count = unLockedCount.safeSub(alreadyUnLockCount);
        }
        return count;
    }
    
    function _isOverLockUpPeriodMonth(uint256 time, uint256 period) internal pure returns (bool) {
        return _convertMSToMonth(time) > period;
    }
    
    function _convertMSToMonth(uint256 time) internal pure returns (uint256) {
        return time.div(60).div(60).div(24).div(30);
    }

    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    function _checkOnERC20Received(address sender, address recipient, uint256 amount, bytes memory _data) internal returns (bool) {
        if (!isContract(recipient)) {
            return true;
        }
        bytes4 retval = IERC20Receiver(recipient).onERC20Received(msg.sender, sender, amount, _data);
        return (retval == _ERC20_RECEIVED);
    }
}
// ----------------------------------------------------------------------------
// @title Burnable Token
// @dev Token that can be irreversibly burned (destroyed).
// ----------------------------------------------------------------------------
contract BurnableToken is ERC20 {
    event BurnAdminAmount(address indexed burner, uint256 value);
    event BurnLockedToken(address indexed burner, uint256 value, uint8 tokenType);

    function burnAdminAmount(uint256 _value) onlyOwner public {
        require(_value <= _balances[msg.sender]);

        _balances[msg.sender] = _balances[msg.sender].sub(_value);
        _totalSupply = _totalSupply.sub(_value);
    
        emit BurnAdminAmount(msg.sender, _value);
        emit Transfer(msg.sender, address(0), _value);
    }
}
// ----------------------------------------------------------------------------
// @title Mintable token
// @dev Simple ERC20 Token example, with mintable token creation
// Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
// ----------------------------------------------------------------------------
contract MintableToken is ERC20 {
    event Mint(address indexed to, uint256 amount);
    event MintFinished();

    uint256 ECOSYSTEM_AMOUNT = 5400000000 * (10**18);
    uint256 BUSINESSDEVELOPMENT_AMOUNT = 3000000000 * (10**18);
    bool private _mintingFinished = false;

    modifier canMint() { require(!_mintingFinished); _; }

    function mintingFinished() public view returns (bool) {
        return _mintingFinished;
    }

    // Token Type - 1 : Crowd Sale
    // Token Type - 2 : Team & Advisors
    // Token Type - 3 : Ecosystem Activation
    // Token Type - 4 : Business Development
    function mint(address _to, uint256 _amount, uint8 _tokenType) onlyOwner canMint public returns (bool) {
        require(_tokenType < 5, "Token Type NULL");
        _totalSupply = _totalSupply.add(_amount);

        uint256 lockUpPeriodMonth;
        uint256 unlockAmountPerCount;
        uint256 remainUnLockCount;
        uint256 CONST_UNLOCKCOUNT;
        uint256 CONST_AMOUNT;

        // Ecosystem Activation
        if(_tokenType == 3) {
            lockUpPeriodMonth = 12;
            unlockAmountPerCount = ECOSYSTEM_AMOUNT.div(50);
            remainUnLockCount = 50;
            CONST_UNLOCKCOUNT = 50;
            CONST_AMOUNT = ECOSYSTEM_AMOUNT;
            
            LockInfo memory newLockInfoEA = LockInfo({
                isLocked: true,
                tokenType : _tokenType,
                amount: _amount,
                distributedTime: _tokenCreatedTime,
                lockUpPeriodMonth: lockUpPeriodMonth,
                lastUnlockTimestamp: 0,
                unlockAmountPerCount: unlockAmountPerCount,
                remainUnLockCount: remainUnLockCount,
                CONST_UNLOCKCOUNT: CONST_UNLOCKCOUNT,
                CONST_AMOUNT: CONST_AMOUNT
            });
            
            _lockedInfo[_to][_tokenType] = newLockInfoEA;
            
            emit LockedInfo(address(0), _to, _amount, _tokenType, _tokenCreatedTime, lockUpPeriodMonth, unlockAmountPerCount, remainUnLockCount, CONST_UNLOCKCOUNT);
        } else if(_tokenType == 4) {
            // Business Development
            lockUpPeriodMonth = 24;
            unlockAmountPerCount = BUSINESSDEVELOPMENT_AMOUNT.div(40);
            remainUnLockCount = 36;
            CONST_UNLOCKCOUNT = 36;
            CONST_AMOUNT = BUSINESSDEVELOPMENT_AMOUNT;
            
            LockInfo memory newLockInfoBD = LockInfo({
                isLocked: true,
                tokenType : _tokenType,
                amount: _amount,
                distributedTime: _tokenCreatedTime,
                lockUpPeriodMonth: lockUpPeriodMonth,
                lastUnlockTimestamp: 0,
                unlockAmountPerCount: unlockAmountPerCount,
                remainUnLockCount: remainUnLockCount,
                CONST_UNLOCKCOUNT: CONST_UNLOCKCOUNT,
                CONST_AMOUNT: CONST_AMOUNT
            });
            
            _lockedInfo[_to][_tokenType] = newLockInfoBD;
            
            emit LockedInfo(address(0), _to, _amount, _tokenType, _tokenCreatedTime, lockUpPeriodMonth, unlockAmountPerCount, remainUnLockCount, CONST_UNLOCKCOUNT);
        } else {
            _balances[_to] = _balances[_to].add(_amount);
        }

        emit Mint(_to, _amount);
        emit Transfer(address(0), _to, _amount);

        return true;
    }

    function finishMinting() onlyOwner canMint public returns (bool) {
        _mintingFinished = true;
        emit MintFinished();
        return true;
    }
}
// ----------------------------------------------------------------------------
// @Project CardioCoin
// ----------------------------------------------------------------------------
contract CardioCoin is MintableToken, BurnableToken {
    event SetTokenInfo(string name, string symbol);
    string private _name = "";
    string private _symbol = "";

    constructor() public {
        _name = "CardioCoin";
        _symbol = "CRDC";

        emit SetTokenInfo(_name, _symbol);
    }

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"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":"spender","type":"address"},{"name":"amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"unLockBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"},{"name":"tokenType","type":"uint8"}],"name":"lockUpInfo","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"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":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","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":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"safeTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_tokenType","type":"uint8"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"amount","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burnAdminAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"},{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"amount","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"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":"recipient","type":"address"},{"name":"amount","type":"uint256"},{"name":"data","type":"bytes"}],"name":"safeTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"symbol","type":"string"}],"name":"SetTokenInfo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"BurnAdminAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"tokenType","type":"uint8"}],"name":"BurnLockedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"tokenType","type":"uint8"},{"indexed":false,"name":"distributedTime","type":"uint256"},{"indexed":false,"name":"lockUpPeriodMonth","type":"uint256"},{"indexed":false,"name":"unlockAmountPerCount","type":"uint256"},{"indexed":false,"name":"remainUnLockCount","type":"uint256"},{"indexed":false,"name":"CONST_UNLOCKCOUNT","type":"uint256"}],"name":"LockedInfo","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldTime","type":"uint256"},{"indexed":false,"name":"newTime","type":"uint256"}],"name":"ChangeListingTime","type":"event"},{"anonymous":false,"inputs":[],"name":"FinshedSetExchangeListingTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"}],"name":"SetOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minter","type":"address"}],"name":"SetMinter","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":"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"}]

60806040526012600360006101000a81548160ff021916908360ff1602179055506b1172c67a9232b47c180000006009556b09b18ab5df7180b6b8000000600a556000600b60006101000a81548160ff0219169083151502179055506020604051908101604052806000815250600c908051906020019062000083929190620006d0565b506020604051908101604052806000815250600d9080519060200190620000ac929190620006d0565b50348015620000ba57600080fd5b50620000f86301ffc9a77c010000000000000000000000000000000000000000000000000000000002620005a9640100000000026401000000009004565b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f167d3e9c1016ab80e58802ca9da10ce5c6a0f4debc46a2e7a2cd9e56899a4fb533604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17fcec52196e972044edde8689a1b608e459c5946b7f3e5c8cd3d6d8e126d422e1c33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1426004819055506001600760007393f53b4c8ed2c0cc84bde1166b290998baa0d00573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600260076000730787bb893334fe0e6254a575b7d11e1009cbd2a373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600360076000733e5553619440a990f9227ab4557433e6afcb126773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550600460076000730f1b039128d04891bc15137271f61c259b4f239d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506040805190810160405280600a81526020017f43617264696f436f696e00000000000000000000000000000000000000000000815250600c908051906020019062000407929190620006d0565b506040805190810160405280600481526020017f4352444300000000000000000000000000000000000000000000000000000000815250600d908051906020019062000455929190620006d0565b507f9a6645cd07452c704655abb8d3df1bb29cc145ac1bdd0cb6370469cf6bbc9a29600c600d6040518080602001806020018381038352858181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156200050c5780601f10620004e0576101008083540402835291602001916200050c565b820191906000526020600020905b815481529060010190602001808311620004ee57829003601f168201915b5050838103825284818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015620005935780601f10620005675761010080835404028352916020019162000593565b820191906000526020600020905b8154815290600101906020018083116200057557829003601f168201915b505094505050505060405180910390a16200077f565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415151562000664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200071357805160ff191683800117855562000744565b8280016001018555821562000744579182015b828111156200074357825182559160200191906001019062000726565b5b50905062000753919062000757565b5090565b6200077c91905b80821115620007785760008160009055506001016200075e565b5090565b90565b6131e0806200078f6000396000f30060806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461014357806305d2035b146101a757806306fdde03146101d6578063095ea7b3146102665780630b5cc187146102cb5780631764aeca1461032257806318160ddd146103cf57806323b872dd146103fa578063313ce5671461047f578063423f6cef146104b057806342842e0e146104fd5780636112e8ac1461056a57806366188463146105dc57806370a082311461064157806376227f3b146106985780637d64bcb4146106c55780638da5cb5b146106f457806395d89b411461074b578063a9059cbb146107db578063b88d4fde14610840578063d73dd623146108f3578063dd62ed3e14610958578063eb795549146109cf578063f2fde38b14610a62575b600080fd5b34801561014f57600080fd5b5061018d60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610aa5565b604051808215151515815260200191505060405180910390f35b3480156101b357600080fd5b506101bc610b0c565b604051808215151515815260200191505060405180910390f35b3480156101e257600080fd5b506101eb610b23565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022b578082015181840152602081019050610210565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027257600080fd5b506102b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc5565b604051808215151515815260200191505060405180910390f35b3480156102d757600080fd5b5061030c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bdc565b6040518082815260200191505060405180910390f35b34801561032e57600080fd5b50610370600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610c25565b604051808b1515151581526020018a60ff1660ff1681526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a505050505050505050505060405180910390f35b3480156103db57600080fd5b506103e4610d81565b6040518082815260200191505060405180910390f35b34801561040657600080fd5b50610465600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d8b565b604051808215151515815260200191505060405180910390f35b34801561048b57600080fd5b50610494610e3c565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104bc57600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e53565b005b34801561050957600080fd5b50610568600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b005b34801561057657600080fd5b506105c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190505050610e93565b604051808215151515815260200191505060405180910390f35b3480156105e857600080fd5b50610627600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611545565b604051808215151515815260200191505060405180910390f35b34801561064d57600080fd5b50610682600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061167c565b6040518082815260200191505060405180910390f35b3480156106a457600080fd5b506106c3600480360381019080803590602001909291905050506117fb565b005b3480156106d157600080fd5b506106da611a0c565b604051808215151515815260200191505060405180910390f35b34801561070057600080fd5b50610709611ad4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561075757600080fd5b50610760611afa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107a0578082015181840152602081019050610785565b50505050905090810190601f1680156107cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107e757600080fd5b50610826600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b9c565b604051808215151515815260200191505060405180910390f35b34801561084c57600080fd5b506108f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611bb3565b005b3480156108ff57600080fd5b5061093e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c6b565b604051808215151515815260200191505060405180910390f35b34801561096457600080fd5b506109b9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d10565b6040518082815260200191505060405180910390f35b3480156109db57600080fd5b50610a60600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611d97565b005b348015610a6e57600080fd5b50610aa3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4d565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600b60009054906101000a900460ff16905090565b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bbb5780601f10610b9057610100808354040283529160200191610bbb565b820191906000526020600020905b815481529060010190602001808311610b9e57829003601f168201915b5050505050905090565b6000610bd2338484611fa5565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080600080600080600080610c3c61315b565b600860008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d60ff1660ff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815250509050806000015181602001518260400151836060015184608001518560a001518660c001518760e001518861010001518961012001519a509a509a509a509a509a509a509a509a509a50509295989b9194979a5092959850565b6000600254905090565b6000610d98848484612226565b610e318433610e2c85600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b611fa5565b600190509392505050565b6000600360009054906101000a900460ff16905090565b610e6e82826020604051908101604052806000815250611d97565b5050565b610e8e8383836020604051908101604052806000815250611bb3565b505050565b600080600080600080610ea461315b565b610eac61315b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0857600080fd5b600b60009054906101000a900460ff16151515610f2457600080fd5b60058960ff16101515610f9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f546f6b656e2054797065204e554c4c000000000000000000000000000000000081525060200191505060405180910390fd5b610fb48a60025461268790919063ffffffff16565b60028190555060038960ff1614156111d157600c9650610fe060326009546126a590919063ffffffff16565b955060329450603293506009549250610140604051908101604052806001151581526020018a60ff1681526020018b815260200160045481526020018881526020016000815260200187815260200186815260200185815260200184815250915081600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050508a73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fd607f1bc6687c8d81b74e1e08dbd849544430b1ca26bd921193112d2e1f3dead8c8c6004548c8c8c8c604051808881526020018760ff1660ff16815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390a361147f565b60048960ff1614156113e857601896506111f76028600a546126a590919063ffffffff16565b95506024945060249350600a549250610140604051908101604052806001151581526020018a60ff1681526020018b815260200160045481526020018881526020016000815260200187815260200186815260200185815260200184815250905080600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050508a73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fd607f1bc6687c8d81b74e1e08dbd849544430b1ca26bd921193112d2e1f3dead8c8c6004548c8c8c8c604051808881526020018760ff1660ff16815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390a361147e565b61143a8a600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b8a73ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858b6040518082815260200191505060405180910390a28a73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a360019750505050505050509392505050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821015156115d55760009150611667565b61166482600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b91505b611672338484611fa5565b6001905092915050565b600080600061168961315b565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250600191505b60048260ff161115156117f057600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505090506117e181604001518461268790919063ffffffff16565b925081806001019250506116d0565b829350505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185757600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156118a557600080fd5b6118f781600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061194f8160025461266e90919063ffffffff16565b6002819055503373ffffffffffffffffffffffffffffffffffffffff167fa0f3dea10c8bf26d7f1b6b0cf33166195f48616c562c681b49eaaa2423894d00826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a6a57600080fd5b600b60009054906101000a900460ff16151515611a8657600080fd5b6001600b60006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b925780601f10611b6757610100808354040283529160200191611b92565b820191906000526020600020905b815481529060010190602001808311611b7557829003601f168201915b5050505050905090565b6000611ba9338484612226565b6001905092915050565b611bbe848484610d8b565b50611bcb848484846126bb565b1515611c65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f45524332303a207472616e7366657220746f206e6f6e2045524332305265636581526020017f6976657220696d706c656d656e7465720000000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6000611d063384611d0185600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b611fa5565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611da18383611b9c565b50611dae338484846126bb565b1515611e48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f45524332303a207472616e7366657220746f206e6f6e2045524332305265636581526020017f6976657220696d706c656d656e7465720000000000000000000000000000000081525060400191505060405180910390fd5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ea957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ee557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612070576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561213b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156123c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16925060018360ff1610158015612427575060028360ff1611155b1561243d57612438868685876128c7565b612601565b600191505b60048260ff161115156124d657600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002090508060000160009054906101000a900460ff16156124c9576124c88683612bfb565b5b8180600101925050612442565b61252884600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125bd84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b600082821115151561267c57fe5b818303905092915050565b600080828401905083811015151561269b57fe5b8091505092915050565b600081838115156126b257fe5b04905092915050565b6000806126c785612fed565b15156126d657600191506128be565b8473ffffffffffffffffffffffffffffffffffffffff16634fc35859338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127cb5780820151818401526020810190506127b0565b50505050905090810190601f1680156127f85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561281a57600080fd5b505af115801561282e573d6000803e3d6000fd5b505050506040513d602081101561284457600080fd5b81019080805190602001909291905050509050639d188c227c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b6000806000806000806128d861315b565b60001515600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060000160009054906101000a900460ff1615151415156129ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416c7265616479204c6f636b656420557365720000000000000000000000000081525060200191505060405180910390fd5b60018960ff1614156129f357429650600c95506129e16064896126a590919063ffffffff16565b94506006935060059250879150612a1c565b42965060149550612a0e6028896126a590919063ffffffff16565b945060289350602892508791505b610140604051908101604052806001151581526020018a60ff16815260200189815260200188815260200187815260200160008152602001868152602001858152602001848152602001838152509050612abe88600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050505050505050505050505050565b600080600080600080600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008860ff1660ff168152602001908152602001600020955060018760ff16148015612c73575060068660060154145b8015612c98575042612c956207e900886002015461268790919063ffffffff16565b11155b15612d765760058660060181905550612cbf6032876005015461300090919063ffffffff16565b9450612cd885876001015461266e90919063ffffffff16565b8660010181905550612d3285600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60001515612d9e612d9488600201544261303b90919063ffffffff16565b886003015461305a565b15151415612dab57612fe3565b429350612e4d848761014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505061306f565b92506000831415612e5d57612fe3565b60018760ff161415612e9a57612e93612e84600a886005015461300090919063ffffffff16565b8461300090919063ffffffff16565b9150612eb4565b612eb186600501548461300090919063ffffffff16565b91505b612ecb83876006015461303b90919063ffffffff16565b90506000612ee683886001015461303b90919063ffffffff16565b1480612ef25750600081145b15612f1c578560010154915060008660000160006101000a81548160ff0219169083151502179055505b428660040181905550808660060181905550612f4582876001015461266e90919063ffffffff16565b8660010181905550612f9f82600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050505050505050565b600080823b905060008111915050919050565b60008060008414156130155760009150613034565b828402905082848281151561302657fe5b0414151561303057fe5b8091505b5092915050565b60008282111561304e5760009050613054565b81830390505b92915050565b60008161306684613105565b11905092915050565b600080600080600080603c806018601e8a608001510202020294506130a185886060015161268790919063ffffffff16565b93506000925060008760a0015114156130c6576130bf848903613105565b92506130f7565b6130d1848903613105565b91508660e001518761010001510390506130f4818361303b90919063ffffffff16565b92505b829550505050505092915050565b6000613154601e6131466018613138603c61312a603c896126a590919063ffffffff16565b6126a590919063ffffffff16565b6126a590919063ffffffff16565b6126a590919063ffffffff16565b9050919050565b61014060405190810160405280600015158152602001600060ff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a72305820f7e6dc60e25984e7f8f42bd2d93882ac43fb9f3ad13dfe966d1d71cfd701fccc0029

Deployed Bytecode

0x60806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461014357806305d2035b146101a757806306fdde03146101d6578063095ea7b3146102665780630b5cc187146102cb5780631764aeca1461032257806318160ddd146103cf57806323b872dd146103fa578063313ce5671461047f578063423f6cef146104b057806342842e0e146104fd5780636112e8ac1461056a57806366188463146105dc57806370a082311461064157806376227f3b146106985780637d64bcb4146106c55780638da5cb5b146106f457806395d89b411461074b578063a9059cbb146107db578063b88d4fde14610840578063d73dd623146108f3578063dd62ed3e14610958578063eb795549146109cf578063f2fde38b14610a62575b600080fd5b34801561014f57600080fd5b5061018d60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610aa5565b604051808215151515815260200191505060405180910390f35b3480156101b357600080fd5b506101bc610b0c565b604051808215151515815260200191505060405180910390f35b3480156101e257600080fd5b506101eb610b23565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022b578082015181840152602081019050610210565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027257600080fd5b506102b1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc5565b604051808215151515815260200191505060405180910390f35b3480156102d757600080fd5b5061030c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bdc565b6040518082815260200191505060405180910390f35b34801561032e57600080fd5b50610370600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610c25565b604051808b1515151581526020018a60ff1660ff1681526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a505050505050505050505060405180910390f35b3480156103db57600080fd5b506103e4610d81565b6040518082815260200191505060405180910390f35b34801561040657600080fd5b50610465600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d8b565b604051808215151515815260200191505060405180910390f35b34801561048b57600080fd5b50610494610e3c565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104bc57600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e53565b005b34801561050957600080fd5b50610568600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e72565b005b34801561057657600080fd5b506105c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190505050610e93565b604051808215151515815260200191505060405180910390f35b3480156105e857600080fd5b50610627600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611545565b604051808215151515815260200191505060405180910390f35b34801561064d57600080fd5b50610682600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061167c565b6040518082815260200191505060405180910390f35b3480156106a457600080fd5b506106c3600480360381019080803590602001909291905050506117fb565b005b3480156106d157600080fd5b506106da611a0c565b604051808215151515815260200191505060405180910390f35b34801561070057600080fd5b50610709611ad4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561075757600080fd5b50610760611afa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107a0578082015181840152602081019050610785565b50505050905090810190601f1680156107cd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107e757600080fd5b50610826600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b9c565b604051808215151515815260200191505060405180910390f35b34801561084c57600080fd5b506108f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611bb3565b005b3480156108ff57600080fd5b5061093e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c6b565b604051808215151515815260200191505060405180910390f35b34801561096457600080fd5b506109b9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d10565b6040518082815260200191505060405180910390f35b3480156109db57600080fd5b50610a60600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611d97565b005b348015610a6e57600080fd5b50610aa3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e4d565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6000600b60009054906101000a900460ff16905090565b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bbb5780601f10610b9057610100808354040283529160200191610bbb565b820191906000526020600020905b815481529060010190602001808311610b9e57829003601f168201915b5050505050905090565b6000610bd2338484611fa5565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080600080600080600080610c3c61315b565b600860008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d60ff1660ff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff168152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815250509050806000015181602001518260400151836060015184608001518560a001518660c001518760e001518861010001518961012001519a509a509a509a509a509a509a509a509a509a50509295989b9194979a5092959850565b6000600254905090565b6000610d98848484612226565b610e318433610e2c85600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b611fa5565b600190509392505050565b6000600360009054906101000a900460ff16905090565b610e6e82826020604051908101604052806000815250611d97565b5050565b610e8e8383836020604051908101604052806000815250611bb3565b505050565b600080600080600080610ea461315b565b610eac61315b565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0857600080fd5b600b60009054906101000a900460ff16151515610f2457600080fd5b60058960ff16101515610f9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f546f6b656e2054797065204e554c4c000000000000000000000000000000000081525060200191505060405180910390fd5b610fb48a60025461268790919063ffffffff16565b60028190555060038960ff1614156111d157600c9650610fe060326009546126a590919063ffffffff16565b955060329450603293506009549250610140604051908101604052806001151581526020018a60ff1681526020018b815260200160045481526020018881526020016000815260200187815260200186815260200185815260200184815250915081600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050508a73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fd607f1bc6687c8d81b74e1e08dbd849544430b1ca26bd921193112d2e1f3dead8c8c6004548c8c8c8c604051808881526020018760ff1660ff16815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390a361147f565b60048960ff1614156113e857601896506111f76028600a546126a590919063ffffffff16565b95506024945060249350600a549250610140604051908101604052806001151581526020018a60ff1681526020018b815260200160045481526020018881526020016000815260200187815260200186815260200185815260200184815250905080600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050508a73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fd607f1bc6687c8d81b74e1e08dbd849544430b1ca26bd921193112d2e1f3dead8c8c6004548c8c8c8c604051808881526020018760ff1660ff16815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390a361147e565b61143a8a600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b8a73ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858b6040518082815260200191505060405180910390a28a73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c6040518082815260200191505060405180910390a360019750505050505050509392505050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821015156115d55760009150611667565b61166482600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b91505b611672338484611fa5565b6001905092915050565b600080600061168961315b565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250600191505b60048260ff161115156117f057600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002061014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505090506117e181604001518461268790919063ffffffff16565b925081806001019250506116d0565b829350505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185757600080fd5b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156118a557600080fd5b6118f781600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061194f8160025461266e90919063ffffffff16565b6002819055503373ffffffffffffffffffffffffffffffffffffffff167fa0f3dea10c8bf26d7f1b6b0cf33166195f48616c562c681b49eaaa2423894d00826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a6a57600080fd5b600b60009054906101000a900460ff16151515611a8657600080fd5b6001600b60006101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600d8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b925780601f10611b6757610100808354040283529160200191611b92565b820191906000526020600020905b815481529060010190602001808311611b7557829003601f168201915b5050505050905090565b6000611ba9338484612226565b6001905092915050565b611bbe848484610d8b565b50611bcb848484846126bb565b1515611c65576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f45524332303a207472616e7366657220746f206e6f6e2045524332305265636581526020017f6976657220696d706c656d656e7465720000000000000000000000000000000081525060400191505060405180910390fd5b50505050565b6000611d063384611d0185600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b611fa5565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611da18383611b9c565b50611dae338484846126bb565b1515611e48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f45524332303a207472616e7366657220746f206e6f6e2045524332305265636581526020017f6976657220696d706c656d656e7465720000000000000000000000000000000081525060400191505060405180910390fd5b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ea957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ee557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612070576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561213b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515156123c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16925060018360ff1610158015612427575060028360ff1611155b1561243d57612438868685876128c7565b612601565b600191505b60048260ff161115156124d657600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008360ff1660ff16815260200190815260200160002090508060000160009054906101000a900460ff16156124c9576124c88683612bfb565b5b8180600101925050612442565b61252884600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125bd84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b600082821115151561267c57fe5b818303905092915050565b600080828401905083811015151561269b57fe5b8091505092915050565b600081838115156126b257fe5b04905092915050565b6000806126c785612fed565b15156126d657600191506128be565b8473ffffffffffffffffffffffffffffffffffffffff16634fc35859338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127cb5780820151818401526020810190506127b0565b50505050905090810190601f1680156127f85780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561281a57600080fd5b505af115801561282e573d6000803e3d6000fd5b505050506040513d602081101561284457600080fd5b81019080805190602001909291905050509050639d188c227c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b6000806000806000806128d861315b565b60001515600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060000160009054906101000a900460ff1615151415156129ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416c7265616479204c6f636b656420557365720000000000000000000000000081525060200191505060405180910390fd5b60018960ff1614156129f357429650600c95506129e16064896126a590919063ffffffff16565b94506006935060059250879150612a1c565b42965060149550612a0e6028896126a590919063ffffffff16565b945060289350602892508791505b610140604051908101604052806001151581526020018a60ff16815260200189815260200188815260200187815260200160008152602001868152602001858152602001848152602001838152509050612abe88600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461266e90919063ffffffff16565b600560008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b60ff1660ff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e08201518160060155610100820151816007015561012082015181600801559050505050505050505050505050565b600080600080600080600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008860ff1660ff168152602001908152602001600020955060018760ff16148015612c73575060068660060154145b8015612c98575042612c956207e900886002015461268790919063ffffffff16565b11155b15612d765760058660060181905550612cbf6032876005015461300090919063ffffffff16565b9450612cd885876001015461266e90919063ffffffff16565b8660010181905550612d3285600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60001515612d9e612d9488600201544261303b90919063ffffffff16565b886003015461305a565b15151415612dab57612fe3565b429350612e4d848761014060405190810160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff1660ff1660ff1681526020016001820154815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682015481526020016007820154815260200160088201548152505061306f565b92506000831415612e5d57612fe3565b60018760ff161415612e9a57612e93612e84600a886005015461300090919063ffffffff16565b8461300090919063ffffffff16565b9150612eb4565b612eb186600501548461300090919063ffffffff16565b91505b612ecb83876006015461303b90919063ffffffff16565b90506000612ee683886001015461303b90919063ffffffff16565b1480612ef25750600081145b15612f1c578560010154915060008660000160006101000a81548160ff0219169083151502179055505b428660040181905550808660060181905550612f4582876001015461266e90919063ffffffff16565b8660010181905550612f9f82600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268790919063ffffffff16565b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050505050505050565b600080823b905060008111915050919050565b60008060008414156130155760009150613034565b828402905082848281151561302657fe5b0414151561303057fe5b8091505b5092915050565b60008282111561304e5760009050613054565b81830390505b92915050565b60008161306684613105565b11905092915050565b600080600080600080603c806018601e8a608001510202020294506130a185886060015161268790919063ffffffff16565b93506000925060008760a0015114156130c6576130bf848903613105565b92506130f7565b6130d1848903613105565b91508660e001518761010001510390506130f4818361303b90919063ffffffff16565b92505b829550505050505092915050565b6000613154601e6131466018613138603c61312a603c896126a590919063ffffffff16565b6126a590919063ffffffff16565b6126a590919063ffffffff16565b6126a590919063ffffffff16565b9050919050565b61014060405190810160405280600015158152602001600060ff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a72305820f7e6dc60e25984e7f8f42bd2d93882ac43fb9f3ad13dfe966d1d71cfd701fccc0029

Deployed Bytecode Sourcemap

20560:502:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2427:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2427:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17114:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17114:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20881:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20881:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;20881:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7245:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7245:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6211:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6211:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6335:505;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6335:505:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5699:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5699:91:0;;;;;;;;;;;;;;;;;;;;;;;7958:256;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7958:256:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6848:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6848:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8226:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8226:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8623:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8623:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17387:2815;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17387:2815:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7608:342;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7608:342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5798:405;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5798:405:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16042:350;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16042:350:0;;;;;;;;;;;;;;;;;;;;;;;;;;20210:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20210:159:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3131:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3131:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;20972:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20972:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;20972:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6939:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6939:156:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8781:287;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8781:287:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7403:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7403:197:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7103:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7103:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8352:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8352:259:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3535:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3535:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2427:135;2497:4;2521:20;:33;2542:11;2521:33;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:40;;2427:135;;;:::o;17114:96::-;17162:4;17186:16;;;;;;;;;;;17179:23;;17114:96;:::o;20881:83::-;20918:6;20951:5;20944:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20881:83;:::o;7245:150::-;7311:4;7328:37;7337:10;7349:7;7358:6;7328:8;:37::i;:::-;7383:4;7376:11;;7245:150;;;;:::o;6211:116::-;6274:7;6301:9;:18;6311:7;6301:18;;;;;;;;;;;;;;;;6294:25;;6211:116;;;:::o;6335:505::-;6410:4;6416:5;6423:7;6432;6441;6450;6459;6468;6477;6486;6506:24;;:::i;:::-;6533:11;:20;6545:7;6533:20;;;;;;;;;;;;;;;:31;6554:9;6533:31;;;;;;;;;;;;;;;6506:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6583:8;:17;;;6602:8;:18;;;6622:8;:15;;;6639:8;:24;;;6665:8;:26;;;6693:8;:28;;;6723:8;:29;;;6754:8;:26;;;6782:8;:26;;;6810:8;:21;;;6575:257;;;;;;;;;;;;;;;;;;;;6335:505;;;;;;;;;;;;;;:::o;5699:91::-;5743:7;5770:12;;5763:19;;5699:91;:::o;7958:256::-;8047:4;8064:36;8074:6;8082:9;8093:6;8064:9;:36::i;:::-;8111:73;8120:6;8128:10;8140:43;8176:6;8140:11;:19;8152:6;8140:19;;;;;;;;;;;;;;;:31;8160:10;8140:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;8111:8;:73::i;:::-;8202:4;8195:11;;7958:256;;;;;:::o;6848:83::-;6889:5;6914:9;;;;;;;;;;;6907:16;;6848:83;:::o;8226:118::-;8301:35;8314:9;8325:6;8301:35;;;;;;;;;;;;;:12;:35::i;:::-;8226:118;;:::o;8623:150::-;8718:47;8735:6;8743:9;8754:6;8718:47;;;;;;;;;;;;;:16;:47::i;:::-;8623:150;;;:::o;17387:2815::-;17483:4;17606:25;17642:28;17681:25;17717;17753:20;18087:29;;:::i;:::-;19213;;:::i;:::-;3515:5;;;;;;;;;;;3501:19;;:10;:19;;;3493:28;;;;;;;;17083:16;;;;;;;;;;;17082:17;17074:26;;;;;;;;17521:1;17508:10;:14;;;17500:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17568:25;17585:7;17568:12;;:16;;:25;;;;:::i;:::-;17553:12;:40;;;;17836:1;17822:10;:15;;;17819:2266;;;17874:2;17854:22;;17914:24;17935:2;17914:16;;:20;;:24;;;;:::i;:::-;17891:47;;17973:2;17953:22;;18010:2;17990:22;;18042:16;;18027:31;;18119:498;;;;;;;;;18157:4;18119:498;;;;;;18192:10;18119:498;;;;;;18229:7;18119:498;;;;18272:17;;18119:498;;;;18327:17;18119:498;;;;18384:1;18119:498;;;;18426:20;18119:498;;;;18484:17;18119:498;;;;18539:17;18119:498;;;;18589:12;18119:498;;;18087:530;;18677:13;18646:11;:16;18658:3;18646:16;;;;;;;;;;;;;;;:28;18663:10;18646:28;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18747:3;18724:146;;18743:1;18724:146;;;18752:7;18761:10;18773:17;;18792;18811:20;18833:17;18852;18724:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17819:2266;;;18905:1;18891:10;:15;;;18888:1197;;;18980:2;18960:22;;19020:34;19051:2;19020:26;;:30;;:34;;;;:::i;:::-;18997:57;;19089:2;19069:22;;19126:2;19106:22;;19158:26;;19143:41;;19245:498;;;;;;;;;19283:4;19245:498;;;;;;19318:10;19245:498;;;;;;19355:7;19245:498;;;;19398:17;;19245:498;;;;19453:17;19245:498;;;;19510:1;19245:498;;;;19552:20;19245:498;;;;19610:17;19245:498;;;;19665:17;19245:498;;;;19715:12;19245:498;;;19213:530;;19803:13;19772:11;:16;19784:3;19772:16;;;;;;;;;;;;;;;:28;19789:10;19772:28;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19873:3;19850:146;;19869:1;19850:146;;;19878:7;19887:10;19899:17;;19918;19937:20;19959:17;19978;19850:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18888:1197;;;20046:27;20065:7;20046:9;:14;20056:3;20046:14;;;;;;;;;;;;;;;;:18;;:27;;;;:::i;:::-;20029:9;:14;20039:3;20029:14;;;;;;;;;;;;;;;:44;;;;18888:1197;17819:2266;20107:3;20102:18;;;20112:7;20102:18;;;;;;;;;;;;;;;;;;20157:3;20136:34;;20153:1;20136:34;;;20162:7;20136:34;;;;;;;;;;;;;;;;;;20190:4;20183:11;;17387:2815;;;;;;;;;;;;:::o;7608:342::-;7683:4;7714:11;:23;7726:10;7714:23;;;;;;;;;;;;;;;:32;7738:7;7714:32;;;;;;;;;;;;;;;;7704:6;:42;;7700:171;;;7772:1;7763:10;;7700:171;;;7815:44;7852:6;7815:11;:23;7827:10;7815:23;;;;;;;;;;;;;;;:32;7839:7;7815:32;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;7806:53;;7700:171;7883:37;7892:10;7904:7;7913:6;7883:8;:37::i;:::-;7938:4;7931:11;;7608:342;;;;:::o;5798:405::-;5855:7;5875:21;5928:15;6020:24;;:::i;:::-;5899:9;:18;5909:7;5899:18;;;;;;;;;;;;;;;;5875:42;;5973:1;5961:13;;5956:199;5989:1;5976:9;:14;;;;5956:199;;;6047:11;:20;6059:7;6047:20;;;;;;;;;;;;;;;:31;6068:9;6047:31;;;;;;;;;;;;;;;6020:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6109:34;6127:8;:15;;;6109:13;:17;;:34;;;;:::i;:::-;6093:50;;5992:11;;;;;;;5956:199;;;6182:13;6175:20;;5798:405;;;;;;:::o;16042:350::-;3515:5;;;;;;;;;;;3501:19;;:10;:19;;;3493:28;;;;;;;;16129:9;:21;16139:10;16129:21;;;;;;;;;;;;;;;;16119:6;:31;;16111:40;;;;;;;;16188:33;16214:6;16188:9;:21;16198:10;16188:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;16164:9;:21;16174:10;16164:21;;;;;;;;;;;;;;;:57;;;;16247:24;16264:6;16247:12;;:16;;:24;;;;:::i;:::-;16232:12;:39;;;;16309:10;16293:35;;;16321:6;16293:35;;;;;;;;;;;;;;;;;;16373:1;16344:40;;16353:10;16344:40;;;16377:6;16344:40;;;;;;;;;;;;;;;;;;16042:350;:::o;20210:159::-;20269:4;3515:5;;;;;;;;;;;3501:19;;:10;:19;;;3493:28;;;;;;;;17083:16;;;;;;;;;;;17082:17;17074:26;;;;;;;;20305:4;20286:16;;:23;;;;;;;;;;;;;;;;;;20325:14;;;;;;;;;;20357:4;20350:11;;20210:159;:::o;3131:20::-;;;;;;;;;;;;;:::o;20972:87::-;21011:6;21044:7;21037:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20972:87;:::o;6939:156::-;7008:4;7025:40;7035:10;7047:9;7058:6;7025:9;:40::i;:::-;7083:4;7076:11;;6939:156;;;;:::o;8781:287::-;8895:39;8908:6;8916:9;8927:6;8895:12;:39::i;:::-;;8953:54;8975:6;8983:9;8994:6;9002:4;8953:21;:54::i;:::-;8945:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8781:287;;;;:::o;7403:197::-;7478:4;7495:75;7504:10;7516:7;7525:44;7562:6;7525:11;:23;7537:10;7525:23;;;;;;;;;;;;;;;:32;7549:7;7525:32;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;7495:8;:75::i;:::-;7588:4;7581:11;;7403:197;;;;:::o;7103:134::-;7175:7;7202:11;:18;7214:5;7202:18;;;;;;;;;;;;;;;:27;7221:7;7202:27;;;;;;;;;;;;;;;;7195:34;;7103:134;;;;:::o;8352:259::-;8446:27;8455:9;8466:6;8446:8;:27::i;:::-;;8492:58;8514:10;8526:9;8537:6;8545:4;8492:21;:58::i;:::-;8484:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8352:259;;;:::o;3535:198::-;3515:5;;;;;;;;;;;3501:19;;:10;:19;;;3493:28;;;;;;;;3640:1;3619:23;;:9;:23;;;;3611:32;;;;;;;;3687:9;3659:38;;3680:5;;;;;;;;;;;3659:38;;;;;;;;;;;;3716:9;3708:5;;:17;;;;;;;;;;;;;;;;;;3535:198;:::o;9076:338::-;9187:1;9170:19;;:5;:19;;;;9162:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9268:1;9249:21;;:7;:21;;;;9241:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9352:6;9322:11;:18;9334:5;9322:18;;;;;;;;;;;;;;;:27;9341:7;9322:27;;;;;;;;;;;;;;;:36;;;;9390:7;9374:32;;9383:5;9374:32;;;9399:6;9374:32;;;;;;;;;;;;;;;;;;9076:338;;;:::o;9422:1072::-;9677:22;10007:15;10105:25;9538:1;9520:20;;:6;:20;;;;9512:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9622:1;9601:23;;:9;:23;;;;9593:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9702:13;:21;9716:6;9702:21;;;;;;;;;;;;;;;;;;;;;;;;;9677:46;;9832:1;9812:16;:21;;;;:46;;;;;9857:1;9837:16;:21;;;;9812:46;9809:625;;;9875:55;9886:6;9894:9;9905:16;9923:6;9875:10;:55::i;:::-;9809:625;;;10054:1;10042:13;;10037:252;10070:1;10057:9;:14;;;;10037:252;;;10133:11;:19;10145:6;10133:19;;;;;;;;;;;;;;;:30;10153:9;10133:30;;;;;;;;;;;;;;;10105:58;;10186:8;:17;;;;;;;;;;;;10182:92;;;10228:26;10236:6;10244:9;10228:7;:26::i;:::-;10182:92;10073:11;;;;;;;10037:252;;;10323:29;10345:6;10323:9;:17;10333:6;10323:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;10303:9;:17;10313:6;10303:17;;;;;;;;;;;;;;;:49;;;;10390:32;10415:6;10390:9;:20;10400:9;10390:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10367:9;:20;10377:9;10367:20;;;;;;;;;;;;;;;:55;;;;9809:625;10468:9;10451:35;;10460:6;10451:35;;;10479:6;10451:35;;;;;;;;;;;;;;;;;;9422:1072;;;;;;:::o;555:123::-;613:7;645:1;640;:6;;633:14;;;;;;669:1;665;:5;658:12;;555:123;;;;:::o;826:147::-;884:7;904:9;920:1;916;:5;904:17;;944:1;939;:6;;932:14;;;;;;964:1;957:8;;826:147;;;;;:::o;449:98::-;507:7;538:1;534;:5;;;;;;;;527:12;;449:98;;;;:::o;15239:358::-;15359:4;15452:13;15381:21;15392:9;15381:10;:21::i;:::-;15380:22;15376:66;;;15426:4;15419:11;;;;15376:66;15483:9;15468:41;;;15510:10;15522:6;15530;15538:5;15468:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;15468:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15468:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15468:76:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15468:76:0;;;;;;;;;;;;;;;;15452:92;;5134:10;15573:15;;15563:25;;;:6;:25;;;;15555:34;;15239:358;;;;;;;;:::o;10502:1651::-;10726:23;10760:25;10796:28;10835:25;10871;10907:20;11525:27;;:::i;:::-;10676:5;10624:57;;:11;:22;10636:9;10624:22;;;;;;;;;;;;;;;:39;10647:15;10624:39;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:57;;;10616:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10970:1;10951:15;:20;;;10948:557;;;11020:3;11002:21;;11058:2;11038:22;;11098:15;11109:3;11098:6;:10;;:15;;;;:::i;:::-;11075:38;;11148:1;11128:21;;11184:1;11164:21;;11215:6;11200:21;;10948:557;;;11291:3;11273:21;;11329:2;11309:22;;11369:14;11380:2;11369:6;:10;;:14;;;;:::i;:::-;11346:37;;11418:2;11398:22;;11455:2;11435:22;;11487:6;11472:21;;10948:557;11555:456;;;;;;;;;11589:4;11555:456;;;;;;11620:15;11555:456;;;;;;11658:6;11555:456;;;;11696:15;11555:456;;;;11745:17;11555:456;;;;11798:1;11555:456;;;;11836:20;11555:456;;;;11890:17;11555:456;;;;11941:17;11555:456;;;;11987:12;11555:456;;;11525:486;;12052:29;12074:6;12052:9;:17;12062:6;12052:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;12032:9;:17;12042:6;12032:17;;;;;;;;;;;;;;;:49;;;;12134:11;12092;:22;12104:9;12092:22;;;;;;;;;;;;;;;:39;12115:15;12092:39;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10502:1651;;;;;;;;;;;:::o;12165:1817::-;12235:25;12598:24;12982:17;13016:13;13130:20;13446:25;12263:11;:19;12275:6;12263:19;;;;;;;;;;;;;;;:30;12283:9;12263:30;;;;;;;;;;;;;;;12235:58;;12383:1;12370:9;:14;;;:49;;;;;12418:1;12388:8;:26;;;:31;12370:49;:96;;;;;12463:3;12423:36;12452:6;12423:8;:24;;;:28;;:36;;;;:::i;:::-;:43;;12370:96;12367:451;;;12544:1;12515:8;:26;;:30;;;;12625:37;12659:2;12625:8;:29;;;:33;;:37;;;;:::i;:::-;12598:64;;12695:37;12715:16;12695:8;:15;;;:19;;:37;;;;:::i;:::-;12677:8;:15;;:55;;;;12767:39;12789:16;12767:9;:17;12777:6;12767:17;;;;;;;;;;;;;;;;:21;;:39;;;;:::i;:::-;12747:9;:17;12757:6;12747:17;;;;;;;;;;;;;;;:59;;;;12367:451;12930:5;12833:102;;:93;12859:37;12871:8;:24;;;12859:3;:11;;:37;;;;:::i;:::-;12899:8;:26;;;12833:24;:93::i;:::-;:102;;;12830:140;;;12952:7;;12830:140;13002:3;12982:23;;13032:36;13048:9;13059:8;13032:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;:36::i;:::-;13016:52;;13110:1;13101:5;:10;13098:22;;;13113:7;;13098:22;13177:1;13164:9;:14;;;13161:197;;;13210:48;13220:37;13254:2;13220:8;:29;;;:33;;:37;;;;:::i;:::-;13210:5;:9;;:48;;;;:::i;:::-;13195:63;;13161:197;;;13306:40;13316:8;:29;;;13306:5;:9;;:40;;;;:::i;:::-;13291:55;;13161:197;13474:41;13509:5;13474:8;:26;;;:34;;:41;;;;:::i;:::-;13446:69;;13571:1;13530:37;13554:12;13530:8;:15;;;:23;;:37;;;;:::i;:::-;:42;:68;;;;13597:1;13576:17;:22;13530:68;13526:171;;;13630:8;:15;;;13615:30;;13680:5;13660:8;:17;;;:25;;;;;;;;;;;;;;;;;;13526:171;13776:3;13745:8;:28;;:34;;;;13819:17;13790:8;:26;;:46;;;;13865:33;13885:12;13865:8;:15;;;:19;;:33;;;;:::i;:::-;13847:8;:15;;:51;;;;13939:35;13961:12;13939:9;:17;13949:6;13939:17;;;;;;;;;;;;;;;;:21;;:35;;;;:::i;:::-;13919:9;:17;13929:6;13919:17;;;;;;;;;;;;;;;:55;;;;12165:1817;;;;;;;;;:::o;15057:174::-;15117:4;15134:12;15188:7;15176:20;15168:28;;15222:1;15215:4;:8;15208:15;;15057:174;;;;:::o;233:208::-;291:7;368:9;320:1;315;:6;311:47;;;345:1;338:8;;;;311:47;384:1;380;:5;368:17;;412:1;407;403;:5;;;;;;;;:10;396:18;;;;;;432:1;425:8;;233:208;;;;;;:::o;686:132::-;748:7;776:1;772;:5;768:19;;;786:1;779:8;;;;768:19;809:1;805;:5;798:12;;686:132;;;;;:::o;14751:151::-;14838:4;14888:6;14862:23;14880:4;14862:17;:23::i;:::-;:32;14855:39;;14751:151;;;;:::o;13994:745::-;14083:7;14134:18;14214:17;14285:13;14453:21;14535:26;14199:2;14194;14189;14184;14155:8;:26;;;:31;:36;:41;:46;14134:67;;14234:40;14263:10;14234:8;:24;;;:28;;:40;;;;:::i;:::-;14214:60;;14301:1;14285:17;;14351:1;14319:8;:28;;;:33;14315:394;;;14377:43;14410:9;14395:12;:24;14377:17;:43::i;:::-;14369:51;;14315:394;;;14477:43;14510:9;14495:12;:24;14477:17;:43::i;:::-;14453:67;;14593:8;:26;;;14564:8;:26;;;:55;14535:84;;14656:41;14678:18;14656:13;:21;;:41;;;;:::i;:::-;14648:49;;14315:394;14726:5;14719:12;;13994:745;;;;;;;;;:::o;14914:135::-;14978:7;15005:36;15038:2;15005:28;15030:2;15005:20;15022:2;15005:12;15014:2;15005:4;:8;;:12;;;;:::i;:::-;:16;;:20;;;;:::i;:::-;:24;;:28;;;;:::i;:::-;:32;;:36;;;;:::i;:::-;14998:43;;14914:135;;;:::o;20560:502::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://f7e6dc60e25984e7f8f42bd2d93882ac43fb9f3ad13dfe966d1d71cfd701fccc

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.