ETH Price: $2,535.81 (+0.10%)

Token

FANZY EXCHANGE (FX)
 

Overview

Max Total Supply

5,000,000,000 FX

Holders

135

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
61,903,814.3639 FX

Value
$0.00
0x2cd34f7231a31c2b952772fdf7ccb370295b3aea
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
MyToken

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, OSL-3.0 license

Contract Source Code (Solidity Multiple files format)

File 6 of 7: MyToken.sol
pragma solidity ^0.5.0; // solidity 0.5.2

import './LockableToken.sol';

contract MyToken is LockableToken {
  string public constant name = "FANZY EXCHANGE";
  string public constant symbol = "FX";
  uint public constant decimals = 18; // 소수점 18자리
  uint public constant INITIAL_SUPPLY = 7000000000 * 10 ** decimals; // 초기 발행량

  constructor() public {
    _mint(msg.sender, INITIAL_SUPPLY);
  }
}

File 1 of 7: ERC20.sol
pragma solidity ^0.5.0;

import "./IERC20.sol";
import "./SafeMath.sol";

/**
 * @dev Implementation of the `IERC20` interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using `_mint`.
 * For a generic mechanism see `ERC20Mintable`.
 *
 * *For a detailed writeup see our guide [How to implement supply
 * mechanisms](https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226).*
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an `Approval` event is emitted on calls to `transferFrom`.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard `decreaseAllowance` and `increaseAllowance`
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See `IERC20.approve`.
 */
contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) public _balances;

    mapping (address => mapping (address => uint256)) public _allowances;

    uint256 private _totalSupply;

    /**
     * @dev See `IERC20.totalSupply`.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See `IERC20.balanceOf`.
     */
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See `IERC20.transfer`.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    /**
     * @dev See `IERC20.allowance`.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See `IERC20.approve`.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev See `IERC20.transferFrom`.
     *
     * Emits an `Approval` event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of `ERC20`;
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `value`.
     * - the caller must have allowance for `sender`'s tokens of at least
     * `amount`.
     */
    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;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to `transfer`, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a `Transfer` event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `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");

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a `Transfer` event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

     /**
     * @dev Destoys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a `Transfer` event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an `Approval` event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Destoys `amount` tokens from `account`.`amount` is then deducted
     * from the caller's allowance.
     *
     * See `_burn` and `_approve`.
     */
    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
    }
}

File 2 of 7: ERC20Burnable.sol
pragma solidity ^0.5.0;
import "./ERC20.sol";

/**
 * @dev Extension of `ERC20` that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
contract ERC20Burnable is ERC20 {
    /**
     * @dev Destoys `amount` tokens from the caller.
     *
     * See `ERC20._burn`.
     */
    function burn(uint256 amount) public {
        _burn(msg.sender, amount);
    }

    /**
     * @dev See `ERC20._burnFrom`.
     */
    function burnFrom(address account, uint256 amount) public {
        _burnFrom(account, amount);
    }
}

File 3 of 7: IERC20.sol
pragma solidity ^0.5.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see `ERC20Detailed`.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a `Transfer` event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through `transferFrom`. This is
     * zero by default.
     *
     * This value changes when `approve` or `transferFrom` are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * > Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an `Approval` event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a `Transfer` event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to `approve`. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 4 of 7: LockableToken.sol
pragma solidity ^0.5.0; // solidity 0.5.2

import './ERC20.sol';
import './MultiOwnable.sol';
import './ERC20Burnable.sol';
/**
 * @title Lockable token
 */
contract LockableToken is ERC20, MultiOwnable, ERC20Burnable {
    bool public locked = true;
    uint256 public constant LOCK_MAX = uint256(-1);

    /**
     * dev 락 상태에서도 거래 가능한 언락 계정
     */
    mapping(address => bool) public unlockAddrs;
    /**
     * dev 계정 별로 lock value 만큼 잔고가 잠김
     * dev - 값이 0 일 때 : 잔고가 0 이어도 되므로 제한이 없는 것임.
     * dev - 값이 LOCK_MAX 일 때 : 잔고가 uint256 의 최대값이므로 아예 잠긴 것임.
     */
    mapping(address => uint256) public lockValues;

    event Locked(bool locked, string note);
    event LockedTo(address indexed addr, bool locked, string note);
    event SetLockValue(address indexed addr, uint256 value, string note);

    constructor() public {
        unlockTo(msg.sender,  "");
    }

    modifier checkUnlock (address addr, uint256 value) {
        require(!locked || unlockAddrs[addr], "The account is currently locked.");
        require(_balances[addr].sub(value) >= lockValues[addr], "Transferable limit exceeded. Check the status of the lock value.");
        _;
    }

    function lock(string memory note) onlyOwner public {
        locked = true;
        emit Locked(locked, note);
    }

    function unlock(string memory note) onlyOwner public {
        locked = false;
        emit Locked(locked, note);
    }

    function lockTo(address addr, string memory note) onlyOwner public {
        setLockValue(addr, LOCK_MAX, note);
        unlockAddrs[addr] = false;

        emit LockedTo(addr, true, note);
    }

    function unlockTo(address addr, string memory note) onlyOwner public {
        if (lockValues[addr] == LOCK_MAX)
            setLockValue(addr, 0, note);
        unlockAddrs[addr] = true;

        emit LockedTo(addr, false, note);
    }

    function setLockValue(address addr, uint256 value, string memory note) onlyOwner public {
        lockValues[addr] = value;
        emit SetLockValue(addr, value, note);
    }

    /**
     * dev 이체 가능 금액을 조회한다.
     */
    function getMyUnlockValue() public view returns (uint256) {
        address addr = msg.sender;
        if ((!locked || unlockAddrs[addr]) && _balances[addr] > lockValues[addr])
            return _balances[addr].sub(lockValues[addr]);
        else
            return 0;
    }

    function transfer(address to, uint256 value) checkUnlock(msg.sender, value) public returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) checkUnlock(from, value) public returns (bool) {
        return super.transferFrom(from, to, value);
    }
    
    function burn(uint256 amount) onlyOwner public {
        return super.burn(amount);
    }
    
    function burnFrom(address account, uint256 amount) onlyOwner public {
        return super.burnFrom(account,amount);
    }
    
}

File 5 of 7: MultiOwnable.sol
pragma solidity ^0.5.0; // solidity 0.5.2

import "./SafeMath.sol";

/**
 * @title MultiOwnable
 * dev
 */
contract MultiOwnable {
    using SafeMath for uint256;

    address public root; // 혹시 몰라 준비해둔 superOwner 의 백업. 하드웨어 월렛 주소로 세팅할 예정.
    address public superOwner;
    mapping (address => bool) public owners;
    address[] public ownerList;

    // for changeSuperOwnerByDAO
    // mapping(address => mapping (address => bool)) public preSuperOwnerMap;
    mapping(address => address) public candidateSuperOwnerMap;


    event ChangedRoot(address newRoot);
    event ChangedSuperOwner(address newSuperOwner);
    event AddedNewOwner(address newOwner);
    event DeletedOwner(address deletedOwner);

    constructor() public {
        root = msg.sender;
        superOwner = msg.sender;
        owners[root] = true;

        ownerList.push(msg.sender);

    }

    modifier onlyRoot() {
        require(msg.sender == root, "Root privilege is required.");
        _;
    }

    modifier onlySuperOwner() {
        require(msg.sender == superOwner, "SuperOwner priviledge is required.");
        _;
    }

    modifier onlyOwner() {
        require(owners[msg.sender], "Owner priviledge is required.");
        _;
    }

    /**
     * dev root 교체 (root 는 root 와 superOwner 를 교체할 수 있는 권리가 있다.)
     * dev 기존 루트가 관리자에서 지워지지 않고, 새 루트가 자동으로 관리자에 등록되지 않음을 유의!
     */
    function changeRoot(address newRoot) onlyRoot public returns (bool) {
        require(newRoot != address(0), "This address to be set is zero address(0). Check the input address.");

        root = newRoot;

        emit ChangedRoot(newRoot);
        return true;
    }

    /**
     * dev superOwner 교체 (root 는 root 와 superOwner 를 교체할 수 있는 권리가 있다.)
     * dev 기존 superOwner 가 관리자에서 지워지지 않고, 새 superOwner 가 자동으로 관리자에 등록되지 않음을 유의!
     */
    function changeSuperOwner(address newSuperOwner) onlyRoot public returns (bool) {
        require(newSuperOwner != address(0), "This address to be set is zero address(0). Check the input address.");

        superOwner = newSuperOwner;

        emit ChangedSuperOwner(newSuperOwner);
        return true;
    }

    /**
     * dev owner 들의 1/2 초과가 합의하면 superOwner 를 교체할 수 있다.
     */
    function changeSuperOwnerByDAO(address newSuperOwner) onlyOwner public returns (bool) {
        require(newSuperOwner != address(0), "This address to be set is zero address(0). Check the input address.");
        require(newSuperOwner != candidateSuperOwnerMap[msg.sender], "You have already voted for this account.");

        candidateSuperOwnerMap[msg.sender] = newSuperOwner;

        uint8 votingNumForSuperOwner = 0;
        uint8 i = 0;

        for (i = 0; i < ownerList.length; i++) {
            if (candidateSuperOwnerMap[ownerList[i]] == newSuperOwner)
                votingNumForSuperOwner++;
        }

        if (votingNumForSuperOwner > ownerList.length / 2) { // 과반수 이상이면 DAO 성립 => superOwner 교체
            superOwner = newSuperOwner;

            // 초기화
            for (i = 0; i < ownerList.length; i++) {
                delete candidateSuperOwnerMap[ownerList[i]];
            }

            emit ChangedSuperOwner(newSuperOwner);
        }

        return true;
    }

    function newOwner(address owner) onlySuperOwner public returns (bool) {
        require(owner != address(0), "This address to be set is zero address(0). Check the input address.");
        require(!owners[owner], "This address is already registered.");

        owners[owner] = true;
        ownerList.push(owner);

        emit AddedNewOwner(owner);
        return true;
    }

    function deleteOwner(address owner) onlySuperOwner public returns (bool) {
        require(owners[owner], "This input address is not a super owner.");
        delete owners[owner];

        for (uint256 i = 0; i < ownerList.length; i++) {
            if (ownerList[i] == owner) {
                ownerList[i] = ownerList[ownerList.length.sub(1)];
                ownerList.length = ownerList.length.sub(1);
                break;
            }
        }

        emit DeletedOwner(owner);
        return true;
    }
}

File 7 of 7: SafeMath.sol
pragma solidity ^0.5.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"note","type":"string"}],"name":"unlockTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"owners","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"_allowances","outputs":[{"name":"","type":"uint256"}],"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":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSuperOwner","type":"address"}],"name":"changeSuperOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"note","type":"string"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"LOCK_MAX","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newRoot","type":"address"}],"name":"changeRoot","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMyUnlockValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"unlockAddrs","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"candidateSuperOwnerMap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"note","type":"string"}],"name":"lockTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"_balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"newOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"superOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newSuperOwner","type":"address"}],"name":"changeSuperOwnerByDAO","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"note","type":"string"}],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockValues","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"deleteOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"locked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"value","type":"uint256"},{"name":"note","type":"string"}],"name":"setLockValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"ownerList","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"root","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"locked","type":"bool"},{"indexed":false,"name":"note","type":"string"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"locked","type":"bool"},{"indexed":false,"name":"note","type":"string"}],"name":"LockedTo","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"note","type":"string"}],"name":"SetLockValue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newRoot","type":"address"}],"name":"ChangedRoot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newSuperOwner","type":"address"}],"name":"ChangedSuperOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"AddedNewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"deletedOwner","type":"address"}],"name":"DeletedOwner","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"}]

60806040526001600860006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060063390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001ba336020604051908101604052806000815250620001e6640100000000026401000000009004565b620001e0336012600a0a6401a13b8600026200044d640100000000026401000000009004565b6200087f565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515620002a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156200032e576200032d826000836200062b640100000000026401000000009004565b5b6001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4bf46282901af80a4309ce07c36d841184ce98297f8735f7769d169497ac7a4c600083604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156200040d578082015181840152602081019050620003f0565b50505050905090810190601f1680156200043b5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515620004f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6200051881600254620007f46401000000000262003803179091906401000000009004565b6002819055506200057f816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620007f46401000000000262003803179091906401000000009004565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515620006ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167fb19425af6288c6bb0d88f64d6d1cfe5eb7e2d31ee92f1012798df97a9b6b011a83836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620007b357808201518184015260208101905062000796565b50505050905090810190601f168015620007e15780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505050565b600080828401905083811015151562000875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b613fea806200088f6000396000f3fe608060405234801561001057600080fd5b5060043610610238576000357c0100000000000000000000000000000000000000000000000000000000900480636bd5e26a11610142578063a9059cbb116100ca578063cf30901211610099578063cf30901214610e71578063d712800f14610e93578063dd62ed3e14610f78578063def79ab514610ff0578063ebf0c7171461105e57610238565b8063a9059cbb14610c9c578063a96ce7aa14610d02578063cb619a3314610dbd578063cd5c4c7014610e1557610238565b806385952454116101115780638595245414610ab157806387dcd2b614610b0d5780638bde695f14610b5757806395d89b4114610bb3578063a457c2d714610c3657610238565b80636bd5e26a146108d85780636ebcf607146109b357806370a0823114610a0b57806379cc679014610a6357610238565b8063313ce567116101c557806342966c681161019457806342966c68146107505780634a7902d21461077e5780634aa678c3146107da578063505450d4146107f857806360bbb7b81461085457610238565b8063313ce567146105f3578063320a98fd1461061157806339509351146106cc5780633d8731ac1461073257610238565b8063095ea7b31161020c578063095ea7b31461046f5780631044c66b146104d557806318160ddd1461053157806323b872dd1461054f5780632ff2e9dc146105d557610238565b80623078b01461023d578063022914a714610318578063024c2ddd1461037457806306fdde03146103ec575b600080fd5b6103166004803603604081101561025357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561029057600080fd5b8201836020820111156102a257600080fd5b803590602001918460018302840111640100000000831117156102c457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110a8565b005b61035a6004803603602081101561032e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f9565b604051808215151515815260200191505060405180910390f35b6103d66004803603604081101561038a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611319565b6040518082815260200191505060405180910390f35b6103f461133e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610434578082015181840152602081019050610419565b50505050905090810190601f1680156104615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104bb6004803603604081101561048557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611377565b604051808215151515815260200191505060405180910390f35b610517600480360360208110156104eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061138e565b604051808215151515815260200191505060405180910390f35b61053961158a565b6040518082815260200191505060405180910390f35b6105bb6004803603606081101561056557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611594565b604051808215151515815260200191505060405180910390f35b6105dd611771565b6040518082815260200191505060405180910390f35b6105fb611780565b6040518082815260200191505060405180910390f35b6106ca6004803603602081101561062757600080fd5b810190808035906020019064010000000081111561064457600080fd5b82018360208201111561065657600080fd5b8035906020019184600183028401116401000000008311171561067857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611785565b005b610718600480360360408110156106e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061191b565b604051808215151515815260200191505060405180910390f35b61073a6119c0565b6040518082815260200191505060405180910390f35b61077c6004803603602081101561076657600080fd5b81019080803590602001909291905050506119e4565b005b6107c06004803603602081101561079457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ab1565b604051808215151515815260200191505060405180910390f35b6107e2611cad565b6040518082815260200191505060405180910390f35b61083a6004803603602081101561080e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e46565b604051808215151515815260200191505060405180910390f35b6108966004803603602081101561086a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e66565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109b1600480360360408110156108ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561092b57600080fd5b82018360208201111561093d57600080fd5b8035906020019184600183028401116401000000008311171561095f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611e99565b005b6109f5600480360360208110156109c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120a1565b6040518082815260200191505060405180910390f35b610a4d60048036036020811015610a2157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120b9565b6040518082815260200191505060405180910390f35b610aaf60048036036040811015610a7957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612101565b005b610af360048036036020811015610ac757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121d0565b604051808215151515815260200191505060405180910390f35b610b156124d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b9960048036036020811015610b6d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124f7565b604051808215151515815260200191505060405180910390f35b610bbb612a36565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610c8260048036036040811015610c4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a6f565b604051808215151515815260200191505060405180910390f35b610ce860048036036040811015610cb257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b14565b604051808215151515815260200191505060405180910390f35b610dbb60048036036020811015610d1857600080fd5b8101908080359060200190640100000000811115610d3557600080fd5b820183602082011115610d4757600080fd5b80359060200191846001830284011164010000000083111715610d6957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612cef565b005b610dff60048036036020811015610dd357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e85565b6040518082815260200191505060405180910390f35b610e5760048036036020811015610e2b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e9d565b604051808215151515815260200191505060405180910390f35b610e79613209565b604051808215151515815260200191505060405180910390f35b610f7660048036036060811015610ea957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610ef057600080fd5b820183602082011115610f0257600080fd5b80359060200191846001830284011164010000000083111715610f2457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061321c565b005b610fda60048036036040811015610f8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133e1565b6040518082815260200191505060405180910390f35b61101c6004803603602081101561100657600080fd5b8101908080359060200190929190505050613468565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6110666134a6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156111dd576111dc8260008361321c565b5b6001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4bf46282901af80a4309ce07c36d841184ce98297f8735f7769d169497ac7a4c600083604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156112ba57808201518184015260208101905061129f565b50505050905090810190601f1680156112e75780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25050565b60056020528060005260406000206000915054906101000a900460ff1681565b6001602052816000526040600020602052806000526040600020600091509150505481565b6040805190810160405280600e81526020017f46414e5a592045584348414e474500000000000000000000000000000000000081525081565b60006113843384846134cc565b6001905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f526f6f742070726976696c6567652069732072657175697265642e000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156114dd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e1b6043913960600191505060405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f94b17f1a4844062cbed00809347b0f8149fc88c5a3ea720c7aed42c559eed46d82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160019050919050565b6000600254905090565b60008382600860009054906101000a900460ff1615806115fd5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515611671576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f546865206163636f756e742069732063757272656e746c79206c6f636b65642e81525060200191505060405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611702826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b1015151561175b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180613ea26040913960400191505060405180910390fd5b611766868686613752565b925050509392505050565b6012600a0a6401a13b86000281565b601281565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b6001600860006101000a81548160ff0219169083151502179055507fc1086893b0a3f1d991fd25e26cd28cad11de174842b04a55cc2423ed178e4382600860009054906101000a900460ff1682604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156118dd5780820151818401526020810190506118c2565b50505050905090810190601f16801561190a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b60006119b633846119b185600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461380390919063ffffffff16565b6134cc565b6001905092915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611aa5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b611aae8161388d565b50565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f526f6f742070726976696c6567652069732072657175697265642e000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e1b6043913960600191505060405180910390fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f43ddeae7116ae634a7d05c2d1c588bca11b7bbc8cb96fbb2cb9c5b1afdf9ce1282604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160019050919050565b600080339050600860009054906101000a900460ff161580611d185750600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015611da05750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611e3d57611e35600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b915050611e43565b60009150505b90565b60096020528060005260406000206000915054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b611f85827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8361321c565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4bf46282901af80a4309ce07c36d841184ce98297f8735f7769d169497ac7a4c600183604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612062578082015181840152602081019050612047565b50505050905090810190601f16801561208f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25050565b60006020528060005260406000206000915090505481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b6121cc828261389a565b5050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561227a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e5e6022913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612302576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e1b6043913960600191505060405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156123a7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613ee26023913960400191505060405180910390fd5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060068290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f5446d64d957daf41eca8227aa8fa5eb7f92c617adf03fbd9df64e8eb564d824e82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160019050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156125ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612642576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e1b6043913960600191505060405180910390fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612728576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613f4e6028913960400191505060405180910390fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008090506000809050600090505b6006805490508160ff1610156128aa578373ffffffffffffffffffffffffffffffffffffffff166007600060068460ff168154811015156127f257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561289d5781806001019250505b80806001019150506127b5565b60026006805490508115156128bb57fe5b048260ff161115612a2b5783600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600090505b6006805490508160ff1610156129c7576007600060068360ff1681548110151561293257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808060010191505061290c565b7f94b17f1a4844062cbed00809347b0f8149fc88c5a3ea720c7aed42c559eed46d84604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b600192505050919050565b6040805190810160405280600281526020017f465800000000000000000000000000000000000000000000000000000000000081525081565b6000612b0a3384612b0585600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b6134cc565b6001905092915050565b60003382600860009054906101000a900460ff161580612b7d5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515612bf1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f546865206163636f756e742069732063757272656e746c79206c6f636b65642e81525060200191505060405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c82826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b10151515612cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180613ea26040913960400191505060405180910390fd5b612ce585856138a8565b9250505092915050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612db0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b6000600860006101000a81548160ff0219169083151502179055507fc1086893b0a3f1d991fd25e26cd28cad11de174842b04a55cc2423ed178e4382600860009054906101000a900460ff1682604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612e47578082015181840152602081019050612e2c565b50505050905090810190601f168015612e745780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b600a6020528060005260406000206000915090505481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e5e6022913960400191505060405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613f056028913960400191505060405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560008090505b60068054905081101561319c578273ffffffffffffffffffffffffffffffffffffffff1660068281548110151561307357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561318f5760066130d560016006805490506136c790919063ffffffff16565b8154811015156130e157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660068281548110151561311b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061317c60016006805490506136c790919063ffffffff16565b6006816131899190613da6565b5061319c565b8080600101915050613040565b507f1e64d9a491033a9731fa82493f0ab60e9f74294eca27edd93629f1fbaa15d28782604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160019050919050565b600860009054906101000a900460ff1681565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156132dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167fb19425af6288c6bb0d88f64d6d1cfe5eb7e2d31ee92f1012798df97a9b6b011a83836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156133a1578082015181840152602081019050613386565b50505050905090810190601f1680156133ce5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60068181548110151561347757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613554576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613f9b6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156135dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e806022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000828211151515613741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600061375f8484846138bf565b6137f884336137f385600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b6134cc565b600190509392505050565b6000808284019050838110151515613883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6138973382613b5f565b50565b6138a48282613cff565b5050565b60006138b53384846138bf565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613947576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613f766025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156139cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613df86023913960400191505060405180910390fd5b613a20816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ab3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461380390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613f2d6021913960400191505060405180910390fd5b613bfc816002546136c790919063ffffffff16565b600281905550613c53816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b613d098282613b5f565b613da28233613d9d84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b6134cc565b5050565b815481835581811115613dcd57818360005260206000209182019101613dcc9190613dd2565b5b505050565b613df491905b80821115613df0576000816000905550600101613dd8565b5090565b9056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737354686973206164647265737320746f20626520736574206973207a65726f20616464726573732830292e20436865636b2074686520696e70757420616464726573732e53757065724f776e65722070726976696c656467652069732072657175697265642e45524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657261626c65206c696d69742065786365656465642e20436865636b2074686520737461747573206f6620746865206c6f636b2076616c75652e54686973206164647265737320697320616c726561647920726567697374657265642e5468697320696e7075742061646472657373206973206e6f742061207375706572206f776e65722e45524332303a206275726e2066726f6d20746865207a65726f2061646472657373596f75206861766520616c726561647920766f74656420666f722074686973206163636f756e742e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820ccd1ab15f9c4c75e566a7b20269f5e77400a5c7ecfb40ac8da31de33e02879e00029

Deployed Bytecode

0x608060405234801561001057600080fd5b5060043610610238576000357c0100000000000000000000000000000000000000000000000000000000900480636bd5e26a11610142578063a9059cbb116100ca578063cf30901211610099578063cf30901214610e71578063d712800f14610e93578063dd62ed3e14610f78578063def79ab514610ff0578063ebf0c7171461105e57610238565b8063a9059cbb14610c9c578063a96ce7aa14610d02578063cb619a3314610dbd578063cd5c4c7014610e1557610238565b806385952454116101115780638595245414610ab157806387dcd2b614610b0d5780638bde695f14610b5757806395d89b4114610bb3578063a457c2d714610c3657610238565b80636bd5e26a146108d85780636ebcf607146109b357806370a0823114610a0b57806379cc679014610a6357610238565b8063313ce567116101c557806342966c681161019457806342966c68146107505780634a7902d21461077e5780634aa678c3146107da578063505450d4146107f857806360bbb7b81461085457610238565b8063313ce567146105f3578063320a98fd1461061157806339509351146106cc5780633d8731ac1461073257610238565b8063095ea7b31161020c578063095ea7b31461046f5780631044c66b146104d557806318160ddd1461053157806323b872dd1461054f5780632ff2e9dc146105d557610238565b80623078b01461023d578063022914a714610318578063024c2ddd1461037457806306fdde03146103ec575b600080fd5b6103166004803603604081101561025357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561029057600080fd5b8201836020820111156102a257600080fd5b803590602001918460018302840111640100000000831117156102c457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506110a8565b005b61035a6004803603602081101561032e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112f9565b604051808215151515815260200191505060405180910390f35b6103d66004803603604081101561038a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611319565b6040518082815260200191505060405180910390f35b6103f461133e565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610434578082015181840152602081019050610419565b50505050905090810190601f1680156104615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104bb6004803603604081101561048557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611377565b604051808215151515815260200191505060405180910390f35b610517600480360360208110156104eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061138e565b604051808215151515815260200191505060405180910390f35b61053961158a565b6040518082815260200191505060405180910390f35b6105bb6004803603606081101561056557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611594565b604051808215151515815260200191505060405180910390f35b6105dd611771565b6040518082815260200191505060405180910390f35b6105fb611780565b6040518082815260200191505060405180910390f35b6106ca6004803603602081101561062757600080fd5b810190808035906020019064010000000081111561064457600080fd5b82018360208201111561065657600080fd5b8035906020019184600183028401116401000000008311171561067857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611785565b005b610718600480360360408110156106e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061191b565b604051808215151515815260200191505060405180910390f35b61073a6119c0565b6040518082815260200191505060405180910390f35b61077c6004803603602081101561076657600080fd5b81019080803590602001909291905050506119e4565b005b6107c06004803603602081101561079457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ab1565b604051808215151515815260200191505060405180910390f35b6107e2611cad565b6040518082815260200191505060405180910390f35b61083a6004803603602081101561080e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e46565b604051808215151515815260200191505060405180910390f35b6108966004803603602081101561086a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e66565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109b1600480360360408110156108ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561092b57600080fd5b82018360208201111561093d57600080fd5b8035906020019184600183028401116401000000008311171561095f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611e99565b005b6109f5600480360360208110156109c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120a1565b6040518082815260200191505060405180910390f35b610a4d60048036036020811015610a2157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120b9565b6040518082815260200191505060405180910390f35b610aaf60048036036040811015610a7957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612101565b005b610af360048036036020811015610ac757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121d0565b604051808215151515815260200191505060405180910390f35b610b156124d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b9960048036036020811015610b6d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124f7565b604051808215151515815260200191505060405180910390f35b610bbb612a36565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610c8260048036036040811015610c4c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a6f565b604051808215151515815260200191505060405180910390f35b610ce860048036036040811015610cb257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b14565b604051808215151515815260200191505060405180910390f35b610dbb60048036036020811015610d1857600080fd5b8101908080359060200190640100000000811115610d3557600080fd5b820183602082011115610d4757600080fd5b80359060200191846001830284011164010000000083111715610d6957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612cef565b005b610dff60048036036020811015610dd357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e85565b6040518082815260200191505060405180910390f35b610e5760048036036020811015610e2b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e9d565b604051808215151515815260200191505060405180910390f35b610e79613209565b604051808215151515815260200191505060405180910390f35b610f7660048036036060811015610ea957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610ef057600080fd5b820183602082011115610f0257600080fd5b80359060200191846001830284011164010000000083111715610f2457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061321c565b005b610fda60048036036040811015610f8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133e1565b6040518082815260200191505060405180910390f35b61101c6004803603602081101561100657600080fd5b8101908080359060200190929190505050613468565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6110666134a6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156111dd576111dc8260008361321c565b5b6001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4bf46282901af80a4309ce07c36d841184ce98297f8735f7769d169497ac7a4c600083604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156112ba57808201518184015260208101905061129f565b50505050905090810190601f1680156112e75780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25050565b60056020528060005260406000206000915054906101000a900460ff1681565b6001602052816000526040600020602052806000526040600020600091509150505481565b6040805190810160405280600e81526020017f46414e5a592045584348414e474500000000000000000000000000000000000081525081565b60006113843384846134cc565b6001905092915050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f526f6f742070726976696c6567652069732072657175697265642e000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156114dd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e1b6043913960600191505060405180910390fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f94b17f1a4844062cbed00809347b0f8149fc88c5a3ea720c7aed42c559eed46d82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160019050919050565b6000600254905090565b60008382600860009054906101000a900460ff1615806115fd5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515611671576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f546865206163636f756e742069732063757272656e746c79206c6f636b65642e81525060200191505060405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611702826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b1015151561175b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180613ea26040913960400191505060405180910390fd5b611766868686613752565b925050509392505050565b6012600a0a6401a13b86000281565b601281565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b6001600860006101000a81548160ff0219169083151502179055507fc1086893b0a3f1d991fd25e26cd28cad11de174842b04a55cc2423ed178e4382600860009054906101000a900460ff1682604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156118dd5780820151818401526020810190506118c2565b50505050905090810190601f16801561190a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b60006119b633846119b185600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461380390919063ffffffff16565b6134cc565b6001905092915050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611aa5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b611aae8161388d565b50565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f526f6f742070726976696c6567652069732072657175697265642e000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e1b6043913960600191505060405180910390fd5b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f43ddeae7116ae634a7d05c2d1c588bca11b7bbc8cb96fbb2cb9c5b1afdf9ce1282604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160019050919050565b600080339050600860009054906101000a900460ff161580611d185750600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015611da05750600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15611e3d57611e35600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b915050611e43565b60009150505b90565b60096020528060005260406000206000915054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611f5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b611f85827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8361321c565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f4bf46282901af80a4309ce07c36d841184ce98297f8735f7769d169497ac7a4c600183604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612062578082015181840152602081019050612047565b50505050905090810190601f16801561208f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25050565b60006020528060005260406000206000915090505481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b6121cc828261389a565b5050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561227a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e5e6022913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612302576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e1b6043913960600191505060405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156123a7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613ee26023913960400191505060405180910390fd5b6001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060068290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f5446d64d957daf41eca8227aa8fa5eb7f92c617adf03fbd9df64e8eb564d824e82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160019050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156125ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612642576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180613e1b6043913960600191505060405180910390fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612728576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613f4e6028913960400191505060405180910390fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008090506000809050600090505b6006805490508160ff1610156128aa578373ffffffffffffffffffffffffffffffffffffffff166007600060068460ff168154811015156127f257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561289d5781806001019250505b80806001019150506127b5565b60026006805490508115156128bb57fe5b048260ff161115612a2b5783600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600090505b6006805490508160ff1610156129c7576007600060068360ff1681548110151561293257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055808060010191505061290c565b7f94b17f1a4844062cbed00809347b0f8149fc88c5a3ea720c7aed42c559eed46d84604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b600192505050919050565b6040805190810160405280600281526020017f465800000000000000000000000000000000000000000000000000000000000081525081565b6000612b0a3384612b0585600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b6134cc565b6001905092915050565b60003382600860009054906101000a900460ff161580612b7d5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515612bf1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f546865206163636f756e742069732063757272656e746c79206c6f636b65642e81525060200191505060405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c82826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b10151515612cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526040815260200180613ea26040913960400191505060405180910390fd5b612ce585856138a8565b9250505092915050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612db0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b6000600860006101000a81548160ff0219169083151502179055507fc1086893b0a3f1d991fd25e26cd28cad11de174842b04a55cc2423ed178e4382600860009054906101000a900460ff1682604051808315151515815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612e47578082015181840152602081019050612e2c565b50505050905090810190601f168015612e745780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b600a6020528060005260406000206000915090505481565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e5e6022913960400191505060405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612feb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613f056028913960400191505060405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560008090505b60068054905081101561319c578273ffffffffffffffffffffffffffffffffffffffff1660068281548110151561307357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561318f5760066130d560016006805490506136c790919063ffffffff16565b8154811015156130e157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660068281548110151561311b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061317c60016006805490506136c790919063ffffffff16565b6006816131899190613da6565b5061319c565b8080600101915050613040565b507f1e64d9a491033a9731fa82493f0ab60e9f74294eca27edd93629f1fbaa15d28782604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160019050919050565b600860009054906101000a900460ff1681565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156132dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4f776e65722070726976696c656467652069732072657175697265642e00000081525060200191505060405180910390fd5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167fb19425af6288c6bb0d88f64d6d1cfe5eb7e2d31ee92f1012798df97a9b6b011a83836040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156133a1578082015181840152602081019050613386565b50505050905090810190601f1680156133ce5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a2505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60068181548110151561347757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613554576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613f9b6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156135dc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613e806022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000828211151515613741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600061375f8484846138bf565b6137f884336137f385600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b6134cc565b600190509392505050565b6000808284019050838110151515613883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6138973382613b5f565b50565b6138a48282613cff565b5050565b60006138b53384846138bf565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613947576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613f766025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156139cf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613df86023913960400191505060405180910390fd5b613a20816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613ab3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461380390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613be7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613f2d6021913960400191505060405180910390fd5b613bfc816002546136c790919063ffffffff16565b600281905550613c53816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b613d098282613b5f565b613da28233613d9d84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546136c790919063ffffffff16565b6134cc565b5050565b815481835581811115613dcd57818360005260206000209182019101613dcc9190613dd2565b5b505050565b613df491905b80821115613df0576000816000905550600101613dd8565b5090565b9056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737354686973206164647265737320746f20626520736574206973207a65726f20616464726573732830292e20436865636b2074686520696e70757420616464726573732e53757065724f776e65722070726976696c656467652069732072657175697265642e45524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657261626c65206c696d69742065786365656465642e20436865636b2074686520737461747573206f6620746865206c6f636b2076616c75652e54686973206164647265737320697320616c726561647920726567697374657265642e5468697320696e7075742061646472657373206973206e6f742061207375706572206f776e65722e45524332303a206275726e2066726f6d20746865207a65726f2061646472657373596f75206861766520616c726561647920766f74656420666f722074686973206163636f756e742e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820ccd1ab15f9c4c75e566a7b20269f5e77400a5c7ecfb40ac8da31de33e02879e00029

Deployed Bytecode Sourcemap

74:345:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;74:345:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1749:236:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1749:236:3;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1749:236:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1749:236:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1749:236:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1749:236:3;;;;;;;;;;;;;;;:::i;:::-;;325:39:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;325:39:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1339:68:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1339:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;112:46:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;112:46:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2442:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2442:145:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2068:310:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2068:310:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1503:89:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2671:169:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2671:169:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;262:65:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;202:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1301:116:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1301:116:3;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1301:116:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1301:116:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1301:116:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1301:116:3;;;;;;;;;;;;;;;:::i;:::-;;3691:203:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3691:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;255:46:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2850:89;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2850:89:3;;;;;;;;;;;;;;;;;:::i;:::-;;1529:268:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1529:268:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2237:275:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;386:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;386:43:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;514:57:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;514:57:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1548:195:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1548:195:3;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1548:195:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1548:195:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1548:195:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1548:195:3;;;;;;;;;;;;;;;:::i;:::-;;1287:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1287:45:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1650:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1650:108:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2949:122:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2949:122:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3514:377:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3514:377:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;294:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2488:1020;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2488:1020:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;162:36:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;162:36:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4381:213:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4381:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2518:147:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2518:147:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1423:119;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1423:119:3;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1423:119:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1423:119:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1423:119:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1423:119:3;;;;;;;;;;;;;;;:::i;:::-;;702:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;702:45:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3897:515:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3897:515:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;224:25:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1991:175;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1991:175:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1991:175:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1991:175:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1991:175:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1991:175:3;;;;;;;;;;;;;;;:::i;:::-;;2172:132:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2172:132:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;370:26:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;370:26:4;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;168:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1749:236:3;1204:6:4;:18;1211:10;1204:18;;;;;;;;;;;;;;;;;;;;;;;;;1196:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;298:2:3;1832:10;:16;1843:4;1832:16;;;;;;;;;;;;;;;;:28;1828:73;;;1874:27;1887:4;1893:1;1896:4;1874:12;:27::i;:::-;1828:73;1931:4;1911:11;:17;1923:4;1911:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;1960:4;1951:27;;;1966:5;1973:4;1951:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1951:27:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1749:236;;:::o;325:39:4:-;;;;;;;;;;;;;;;;;;;;;;:::o;1339:68:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;112:46:5:-;;;;;;;;;;;;;;;;;;;;:::o;2442:145:0:-;2507:4;2523:36;2532:10;2544:7;2553:5;2523:8;:36::i;:::-;2576:4;2569:11;;2442:145;;;;:::o;2068:310:4:-;2142:4;974;;;;;;;;;;;960:18;;:10;:18;;;952:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2191:1;2166:27;;:13;:27;;;;2158:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2289:13;2276:10;;:26;;;;;;;;;;;;;;;;;;2318:32;2336:13;2318:32;;;;;;;;;;;;;;;;;;;;;;2367:4;2360:11;;2068:310;;;:::o;1503:89:0:-;1547:7;1573:12;;1566:19;;1503:89;:::o;2671:169:3:-;2775:4;2746;2752:5;1080:6;;;;;;;;;;;1079:7;:28;;;;1090:11;:17;1102:4;1090:17;;;;;;;;;;;;;;;;;;;;;;;;;1079:28;1071:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1192:10;:16;1203:4;1192:16;;;;;;;;;;;;;;;;1162:26;1182:5;1162:9;:15;1172:4;1162:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;:46;;1154:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2798:35;2817:4;2823:2;2827:5;2798:18;:35::i;:::-;2791:42;;2671:169;;;;;;;:::o;262:65:5:-;234:2;313;:14;300:10;:27;262:65;:::o;202:34::-;234:2;202:34;:::o;1301:116:3:-;1204:6:4;:18;1211:10;1204:18;;;;;;;;;;;;;;;;;;;;;;;;;1196:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1371:4:3;1362:6;;:13;;;;;;;;;;;;;;;;;;1390:20;1397:6;;;;;;;;;;;1405:4;1390:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1390:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1301:116;:::o;3691:203:0:-;3771:4;3787:79;3796:10;3808:7;3817:48;3854:10;3817:11;:23;3829:10;3817:23;;;;;;;;;;;;;;;:32;3841:7;3817:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;3787:8;:79::i;:::-;3883:4;3876:11;;3691:203;;;;:::o;255:46:3:-;298:2;255:46;:::o;2850:89::-;1204:6:4;:18;1211:10;1204:18;;;;;;;;;;;;;;;;;;;;;;;;;1196:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2914:18:3;2925:6;2914:10;:18::i;:::-;2850:89;:::o;1529:268:4:-;1591:4;974;;;;;;;;;;;960:18;;:10;:18;;;952:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1634:1;1615:21;;:7;:21;;;;1607:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1726:7;1719:4;;:14;;;;;;;;;;;;;;;;;;1749:20;1761:7;1749:20;;;;;;;;;;;;;;;;;;;;;;1786:4;1779:11;;1529:268;;;:::o;2237:275:3:-;2286:7;2305:12;2320:10;2305:25;;2346:6;;;;;;;;;;;2345:7;:28;;;;2356:11;:17;2368:4;2356:17;;;;;;;;;;;;;;;;;;;;;;;;;2345:28;2344:68;;;;;2396:10;:16;2407:4;2396:16;;;;;;;;;;;;;;;;2378:9;:15;2388:4;2378:15;;;;;;;;;;;;;;;;:34;2344:68;2340:165;;;2433:37;2453:10;:16;2464:4;2453:16;;;;;;;;;;;;;;;;2433:9;:15;2443:4;2433:15;;;;;;;;;;;;;;;;:19;;:37;;;;:::i;:::-;2426:44;;;;;2340:165;2504:1;2497:8;;;2237:275;;:::o;386:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;514:57:4:-;;;;;;;;;;;;;;;;;;;;;;:::o;1548:195:3:-;1204:6:4;:18;1211:10;1204:18;;;;;;;;;;;;;;;;;;;;;;;;;1196:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1625:34:3;1638:4;298:2;1654:4;1625:12;:34::i;:::-;1689:5;1669:11;:17;1681:4;1669:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;1719:4;1710:26;;;1725:4;1731;1710:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1710:26:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1548:195;;:::o;1287:45:0:-;;;;;;;;;;;;;;;;;:::o;1650:108::-;1707:7;1733:9;:18;1743:7;1733:18;;;;;;;;;;;;;;;;1726:25;;1650:108;;;:::o;2949:122:3:-;1204:6:4;:18;1211:10;1204:18;;;;;;;;;;;;;;;;;;;;;;;;;1196:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3034:30:3;3049:7;3057:6;3034:14;:30::i;:::-;2949:122;;:::o;3514:377:4:-;3578:4;1092:10;;;;;;;;;;;1078:24;;:10;:24;;;1070:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3619:1;3602:19;;:5;:19;;;;3594:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3712:6;:13;3719:5;3712:13;;;;;;;;;;;;;;;;;;;;;;;;;3711:14;3703:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3792:4;3776:6;:13;3783:5;3776:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;3806:9;3821:5;3806:21;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3806:21:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3843:20;3857:5;3843:20;;;;;;;;;;;;;;;;;;;;;;3880:4;3873:11;;3514:377;;;:::o;294:25::-;;;;;;;;;;;;;:::o;2488:1020::-;2568:4;1204:6;:18;1211:10;1204:18;;;;;;;;;;;;;;;;;;;;;;;;;1196:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2617:1;2592:27;;:13;:27;;;;2584:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2726:22;:34;2749:10;2726:34;;;;;;;;;;;;;;;;;;;;;;;;;2709:51;;:13;:51;;;;2701:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2853:13;2816:22;:34;2839:10;2816:34;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;2877:28;2908:1;2877:32;;2919:7;2929:1;2919:11;;2950:1;2946:5;;2941:163;2957:9;:16;;;;2953:1;:20;;;2941:163;;;3038:13;2998:53;;:22;:36;3021:9;3031:1;3021:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2998:36;;;;;;;;;;;;;;;;;;;;;;;;;:53;;;2994:99;;;3069:24;;;;;;;2994:99;2975:3;;;;;;;2941:163;;;3162:1;3143:9;:16;;;;:20;;;;;;;;3118:22;:45;;;3114:366;;;3250:13;3237:10;;:26;;;;;;;;;;;;;;;;;;3312:1;3308:5;;3303:115;3319:9;:16;;;;3315:1;:20;;;3303:115;;;3367:22;:36;3390:9;3400:1;3390:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3367:36;;;;;;;;;;;;;;;;3360:43;;;;;;;;;;;3337:3;;;;;;;3303:115;;;3437:32;3455:13;3437:32;;;;;;;;;;;;;;;;;;;;;;3114:366;3497:4;3490:11;;;;2488:1020;;;:::o;162:36:5:-;;;;;;;;;;;;;;;;;;;;:::o;4381:213:0:-;4466:4;4482:84;4491:10;4503:7;4512:53;4549:15;4512:11;:23;4524:10;4512:23;;;;;;;;;;;;;;;:32;4536:7;4512:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;4482:8;:84::i;:::-;4583:4;4576:11;;4381:213;;;;:::o;2518:147:3:-;2610:4;2575:10;2587:5;1080:6;;;;;;;;;;;1079:7;:28;;;;1090:11;:17;1102:4;1090:17;;;;;;;;;;;;;;;;;;;;;;;;;1079:28;1071:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1192:10;:16;1203:4;1192:16;;;;;;;;;;;;;;;;1162:26;1182:5;1162:9;:15;1172:4;1162:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;:46;;1154:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2633:25;2648:2;2652:5;2633:14;:25::i;:::-;2626:32;;2518:147;;;;;;:::o;1423:119::-;1204:6:4;:18;1211:10;1204:18;;;;;;;;;;;;;;;;;;;;;;;;;1196:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1495:5:3;1486:6;;:14;;;;;;;;;;;;;;;;;;1515:20;1522:6;;;;;;;;;;;1530:4;1515:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1515:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1423:119;:::o;702:45::-;;;;;;;;;;;;;;;;;:::o;3897:515:4:-;3964:4;1092:10;;;;;;;;;;;1078:24;;:10;:24;;;1070:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3988:6;:13;3995:5;3988:13;;;;;;;;;;;;;;;;;;;;;;;;;3980:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4063:6;:13;4070:5;4063:13;;;;;;;;;;;;;;;;4056:20;;;;;;;;;;;4092:9;4104:1;4092:13;;4087:263;4111:9;:16;;;;4107:1;:20;4087:263;;;4168:5;4152:21;;:9;4162:1;4152:12;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4148:192;;;4208:9;4218:23;4239:1;4218:9;:16;;;;:20;;:23;;;;:::i;:::-;4208:34;;;;;;;;;;;;;;;;;;;;;;;;;;;4193:9;4203:1;4193:12;;;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;4279:23;4300:1;4279:9;:16;;;;:20;;:23;;;;:::i;:::-;4260:9;:42;;;;;:::i;:::-;;4320:5;;4148:192;4129:3;;;;;;;4087:263;;;;4365:19;4378:5;4365:19;;;;;;;;;;;;;;;;;;;;;;4401:4;4394:11;;3897:515;;;:::o;224:25:3:-;;;;;;;;;;;;;:::o;1991:175::-;1204:6:4;:18;1211:10;1204:18;;;;;;;;;;;;;;;;;;;;;;;;;1196:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2108:5:3;2089:10;:16;2100:4;2089:16;;;;;;;;;;;;;;;:24;;;;2141:4;2128:31;;;2147:5;2154:4;2128:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2128:31:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1991:175;;;:::o;2172:132:0:-;2244:7;2270:11;:18;2282:5;2270:18;;;;;;;;;;;;;;;:27;2289:7;2270:27;;;;;;;;;;;;;;;;2263:34;;2172:132;;;;:::o;370:26:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;168:19::-;;;;;;;;;;;;;:::o;7106:329:0:-;7215:1;7198:19;;:5;:19;;;;7190:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7295:1;7276:21;;:7;:21;;;;7268:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7377:5;7347:11;:18;7359:5;7347:18;;;;;;;;;;;;;;;:27;7366:7;7347:27;;;;;;;;;;;;;;;:35;;;;7413:7;7397:31;;7406:5;7397:31;;;7422:5;7397:31;;;;;;;;;;;;;;;;;;7106:329;;;:::o;1274:179:6:-;1332:7;1364:1;1359;:6;;1351:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1410:9;1426:1;1422;:5;1410:17;;1445:1;1438:8;;;1274:179;;;;:::o;3044:252:0:-;3133:4;3149:36;3159:6;3167:9;3178:6;3149:9;:36::i;:::-;3195:73;3204:6;3212:10;3224:43;3260:6;3224:11;:19;3236:6;3224:19;;;;;;;;;;;;;;;:31;3244:10;3224:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;3195:8;:73::i;:::-;3285:4;3278:11;;3044:252;;;;;:::o;834:176:6:-;892:7;911:9;927:1;923;:5;911:17;;951:1;946;:6;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;995:8;;;834:176;;;;:::o;396:79:1:-;443:25;449:10;461:6;443:5;:25::i;:::-;396:79;:::o;532:101::-;600:26;610:7;619:6;600:9;:26::i;:::-;532:101;;:::o;1961:153:0:-;2030:4;2046:40;2056:10;2068:9;2079:6;2046:9;:40::i;:::-;2103:4;2096:11;;1961:153;;;;:::o;5068:422::-;5183:1;5165:20;;:6;:20;;;;5157:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:1;5245:23;;:9;:23;;;;5237:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5339:29;5361:6;5339:9;:17;5349:6;5339:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;5319:9;:17;5329:6;5319:17;;;;;;;;;;;;;;;:49;;;;5401:32;5426:6;5401:9;:20;5411:9;5401:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;5378:9;:20;5388:9;5378:20;;;;;;;;;;;;;;;:55;;;;5465:9;5448:35;;5457:6;5448:35;;;5476:6;5448:35;;;;;;;;;;;;;;;;;;5068:422;;;:::o;6381:300::-;6474:1;6455:21;;:7;:21;;;;6447:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6540:23;6557:5;6540:12;;:16;;:23;;;;:::i;:::-;6525:12;:38;;;;6594:29;6617:5;6594:9;:18;6604:7;6594:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;6573:9;:18;6583:7;6573:18;;;;;;;;;;;;;;;:50;;;;6664:1;6638:36;;6647:7;6638:36;;;6668:5;6638:36;;;;;;;;;;;;;;;;;;6381:300;;:::o;7612:185::-;7683:22;7689:7;7698:6;7683:5;:22::i;:::-;7715:75;7724:7;7733:10;7745:44;7782:6;7745:11;:20;7757:7;7745:20;;;;;;;;;;;;;;;:32;7766:10;7745:32;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;7715:8;:75::i;:::-;7612:185;;:::o;74:345:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://ccd1ab15f9c4c75e566a7b20269f5e77400a5c7ecfb40ac8da31de33e02879e0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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