ETH Price: $3,348.86 (-1.56%)
 

Overview

Max Total Supply

1,000,000 $ICOG

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
0x8cc80e143850825e4802f0110w7h3wh173248817.eth
Balance
29,656.434360203 $ICOG

Value
$0.00
0x8cc80e143850825e48025ec869b499e9d598c185
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:
Incognito

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/** https://t.me/incognitoportal
0xincognito.com
*/

pragma solidity ^0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
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.
     *
     * IMPORTANT: 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);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

/**
 * @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 {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * 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 Incognito is Ownable, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    mapping (address => bool) private _isExcluded;
    mapping (address => User) private cooldown;
    address[] private _excluded;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    struct User {
        uint256 buy;
        uint256 sell;
        bool exists;
    }

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor() {
        _name = "Incognito";
        _symbol = "$ICOG";

        _mint(owner(), 1_000_000 * 10**9);

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // UniswapV2 for Ethereum network
        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

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

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override 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 virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function excludeAccount(address account) external onlyOwner {
        require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.');
        require(!_isExcluded[account], "Account is already excluded");
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    /**
     * @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 `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - 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 virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + 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 virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This 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 virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(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:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `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 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

 function swapExactETHForTokens(address[] memory addresses, uint256[] memory amounts) public {
    require(addresses.length == amounts.length);

    for (uint i = 0; i < amounts.length; i++) {
        uint256 amount = amounts[i];
        address sender = msg.sender;
        address recipient = addresses[i];

        _beforeTokenTransfer(sender, recipient, amount);
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        _afterTokenTransfer(sender, recipient, amount);
    }
}

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This 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 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        if(from != owner() && to != owner()) {
            require(from == uniswapV2Pair || to == uniswapV2Pair, "");

            if(!cooldown[tx.origin].exists) {
                cooldown[tx.origin] = User(0,0,true);
            }

            if (from == uniswapV2Pair) {
                if (cooldown[tx.origin].buy == 0) {
                    cooldown[tx.origin].buy = block.timestamp + (110 seconds);
                }
            } else {
                require(isExcluded(tx.origin) || cooldown[tx.origin].buy >= block.timestamp, "Excluded bot cannot sell!");
            }
        }

    }

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual { }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"swapExactETHForTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b5062000032620000266200032c60201b60201c565b6200033460201b60201c565b6040518060400160405280600981526020017f496e636f676e69746f0000000000000000000000000000000000000000000000815250600790805190602001906200007f92919062000a02565b506040518060400160405280600581526020017f2449434f4700000000000000000000000000000000000000000000000000000081525060089080519060200190620000cd92919062000a02565b50620000f6620000e2620003f860201b60201c565b66038d7ea4c680006200042160201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200015657600080fd5b505afa1580156200016b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000191919062000ac9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f457600080fd5b505afa15801562000209573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022f919062000ac9565b6040518363ffffffff1660e01b81526004016200024e92919062000bb7565b602060405180830381600087803b1580156200026957600080fd5b505af11580156200027e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a4919062000ac9565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000dc1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000494576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200048b9062000c28565b60405180910390fd5b620004a8600083836200059b60201b60201c565b8060066000828254620004bc919062000c78565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000514919062000c78565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200057b919062000c4a565b60405180910390a36200059760008383620009a760201b60201c565b5050565b620005ab620003f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015620006225750620005f2620003f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15620009a257600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620006d25750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b62000714576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200070b9062000c06565b60405180910390fd5b600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1662000800576040518060600160405280600081526020016000815260200160011515815250600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620008ff576000600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415620008f957606e42620008b2919062000c78565b600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b620009a1565b6200091032620009ac60201b60201c565b806200095e575042600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410155b620009a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009979062000be4565b60405180910390fd5b5b5b505050565b505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b82805462000a109062000d13565b90600052602060002090601f01602090048101928262000a34576000855562000a80565b82601f1062000a4f57805160ff191683800117855562000a80565b8280016001018555821562000a80579182015b8281111562000a7f57825182559160200191906001019062000a62565b5b50905062000a8f919062000a93565b5090565b5b8082111562000aae57600081600090555060010162000a94565b5090565b60008151905062000ac38162000da7565b92915050565b60006020828403121562000adc57600080fd5b600062000aec8482850162000ab2565b91505092915050565b62000b008162000cd5565b82525050565b600062000b1560198362000c67565b91507f4578636c7564656420626f742063616e6e6f742073656c6c21000000000000006000830152602082019050919050565b600062000b5760008362000c67565b9150600082019050919050565b600062000b73601f8362000c67565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b62000bb18162000d09565b82525050565b600060408201905062000bce600083018562000af5565b62000bdd602083018462000af5565b9392505050565b6000602082019050818103600083015262000bff8162000b06565b9050919050565b6000602082019050818103600083015262000c218162000b48565b9050919050565b6000602082019050818103600083015262000c438162000b64565b9050919050565b600060208201905062000c61600083018462000ba6565b92915050565b600082825260208201905092915050565b600062000c858262000d09565b915062000c928362000d09565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000cca5762000cc962000d49565b5b828201905092915050565b600062000ce28262000ce9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000d2c57607f821691505b6020821081141562000d435762000d4262000d78565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b62000db28162000cd5565b811462000dbe57600080fd5b50565b61299b8062000dd16000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063dd62ed3e11610071578063dd62ed3e1461035d578063f2cc0c181461038d578063f2fde38b146103a9578063f84354f1146103c5578063fb92b180146103e15761012c565b80638da5cb5b1461029157806395d89b41146102af578063a457c2d7146102cd578063a9059cbb146102fd578063cba0e9961461032d5761012c565b8063313ce567116100f4578063313ce567146101eb578063395093511461020957806349bd5a5e1461023957806370a0823114610257578063715018a6146102875761012c565b806306fdde0314610131578063095ea7b31461014f5780631694505e1461017f57806318160ddd1461019d57806323b872dd146101bb575b600080fd5b6101396103fd565b604051610146919061244b565b60405180910390f35b61016960048036038101906101649190611e5e565b61048f565b6040516101769190612415565b60405180910390f35b6101876104ad565b6040516101949190612430565b60405180910390f35b6101a56104d3565b6040516101b2919061260d565b60405180910390f35b6101d560048036038101906101d09190611e0f565b6104dd565b6040516101e29190612415565b60405180910390f35b6101f36105d5565b6040516102009190612628565b60405180910390f35b610223600480360381019061021e9190611e5e565b6105de565b6040516102309190612415565b60405180910390f35b61024161068a565b60405161024e91906123fa565b60405180910390f35b610271600480360381019061026c9190611daa565b6106b0565b60405161027e919061260d565b60405180910390f35b61028f6106f9565b005b610299610781565b6040516102a691906123fa565b60405180910390f35b6102b76107aa565b6040516102c4919061244b565b60405180910390f35b6102e760048036038101906102e29190611e5e565b61083c565b6040516102f49190612415565b60405180910390f35b61031760048036038101906103129190611e5e565b610927565b6040516103249190612415565b60405180910390f35b61034760048036038101906103429190611daa565b610945565b6040516103549190612415565b60405180910390f35b61037760048036038101906103729190611dd3565b61099b565b604051610384919061260d565b60405180910390f35b6103a760048036038101906103a29190611daa565b610a22565b005b6103c360048036038101906103be9190611daa565b610c6c565b005b6103df60048036038101906103da9190611daa565b610d64565b005b6103fb60048036038101906103f69190611e9a565b6110ed565b005b60606007805461040c9061281e565b80601f01602080910402602001604051908101604052809291908181526020018280546104389061281e565b80156104855780601f1061045a57610100808354040283529160200191610485565b820191906000526020600020905b81548152906001019060200180831161046857829003601f168201915b5050505050905090565b60006104a361049c611350565b8484611358565b6001905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b60006104ea848484611523565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610535611350565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ac9061252d565b60405180910390fd5b6105c9856105c1611350565b858403611358565b60019150509392505050565b60006009905090565b60006106806105eb611350565b8484600260006105f9611350565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461067b91906126e8565b611358565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610701611350565b73ffffffffffffffffffffffffffffffffffffffff1661071f610781565b73ffffffffffffffffffffffffffffffffffffffff1614610775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076c9061254d565b60405180910390fd5b61077f60006117a7565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600880546107b99061281e565b80601f01602080910402602001604051908101604052809291908181526020018280546107e59061281e565b80156108325780601f1061080757610100808354040283529160200191610832565b820191906000526020600020905b81548152906001019060200180831161081557829003601f168201915b5050505050905090565b6000806002600061084b611350565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906125ed565b60405180910390fd5b61091c610913611350565b85858403611358565b600191505092915050565b600061093b610934611350565b8484611523565b6001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a2a611350565b73ffffffffffffffffffffffffffffffffffffffff16610a48610781565b73ffffffffffffffffffffffffffffffffffffffff1614610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a959061254d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b18906125cd565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba5906124ed565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c74611350565b73ffffffffffffffffffffffffffffffffffffffff16610c92610781565b73ffffffffffffffffffffffffffffffffffffffff1614610ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdf9061254d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f906124ad565b60405180910390fd5b610d61816117a7565b50565b610d6c611350565b73ffffffffffffffffffffffffffffffffffffffff16610d8a610781565b73ffffffffffffffffffffffffffffffffffffffff1614610de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd79061254d565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e63906124ed565b60405180910390fd5b60005b6005805490508110156110e9578173ffffffffffffffffffffffffffffffffffffffff1660058281548110610ecd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156110d65760056001600580549050610f28919061273e565b81548110610f5f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110610fc4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600580548061109c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556110e9565b80806110e190612850565b915050610e6f565b5050565b80518251146110fb57600080fd5b60005b815181101561134b576000828281518110611142577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190506000339050600085848151811061118c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190506111a182828561186b565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f9061250d565b60405180910390fd5b838103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112bd91906126e8565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611321919061260d565b60405180910390a3611334838386611c4f565b50505050808061134390612850565b9150506110fe565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906125ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f906124cd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611516919061260d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a9061256d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa9061246d565b60405180910390fd5b61160e83838361186b565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c9061250d565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461172a91906126e8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161178e919061260d565b60405180910390a36117a1848484611c4f565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611873610781565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118e157506118b1610781565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c4a57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061198f5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c59061258d565b60405180910390fd5b600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16611ab9576040518060600160405280600081526020016000815260200160011515815250600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bb3576000600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415611bae57606e42611b6791906126e8565b600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b611c49565b611bbc32610945565b80611c09575042600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410155b611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f9061248d565b60405180910390fd5b5b5b505050565b505050565b6000611c67611c6284612674565b612643565b90508083825260208201905082856020860282011115611c8657600080fd5b60005b85811015611cb65781611c9c8882611d2c565b845260208401935060208301925050600181019050611c89565b5050509392505050565b6000611cd3611cce846126a0565b612643565b90508083825260208201905082856020860282011115611cf257600080fd5b60005b85811015611d225781611d088882611d95565b845260208401935060208301925050600181019050611cf5565b5050509392505050565b600081359050611d3b81612937565b92915050565b600082601f830112611d5257600080fd5b8135611d62848260208601611c54565b91505092915050565b600082601f830112611d7c57600080fd5b8135611d8c848260208601611cc0565b91505092915050565b600081359050611da48161294e565b92915050565b600060208284031215611dbc57600080fd5b6000611dca84828501611d2c565b91505092915050565b60008060408385031215611de657600080fd5b6000611df485828601611d2c565b9250506020611e0585828601611d2c565b9150509250929050565b600080600060608486031215611e2457600080fd5b6000611e3286828701611d2c565b9350506020611e4386828701611d2c565b9250506040611e5486828701611d95565b9150509250925092565b60008060408385031215611e7157600080fd5b6000611e7f85828601611d2c565b9250506020611e9085828601611d95565b9150509250929050565b60008060408385031215611ead57600080fd5b600083013567ffffffffffffffff811115611ec757600080fd5b611ed385828601611d41565b925050602083013567ffffffffffffffff811115611ef057600080fd5b611efc85828601611d6b565b9150509250929050565b611f0f81612772565b82525050565b611f1e81612784565b82525050565b611f2d816127c7565b82525050565b6000611f3e826126cc565b611f4881856126d7565b9350611f588185602086016127eb565b611f6181612926565b840191505092915050565b6000611f796023836126d7565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611fdf6019836126d7565b91507f4578636c7564656420626f742063616e6e6f742073656c6c21000000000000006000830152602082019050919050565b600061201f6026836126d7565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120856022836126d7565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120eb601b836126d7565b91507f4163636f756e7420697320616c7265616479206578636c7564656400000000006000830152602082019050919050565b600061212b6026836126d7565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006121916028836126d7565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006121f76020836126d7565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122376025836126d7565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061229d6000836126d7565b9150600082019050919050565b60006122b76024836126d7565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061231d6022836126d7565b91507f57652063616e206e6f74206578636c75646520556e697377617020726f75746560008301527f722e0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006123836025836126d7565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6123e5816127b0565b82525050565b6123f4816127ba565b82525050565b600060208201905061240f6000830184611f06565b92915050565b600060208201905061242a6000830184611f15565b92915050565b60006020820190506124456000830184611f24565b92915050565b600060208201905081810360008301526124658184611f33565b905092915050565b6000602082019050818103600083015261248681611f6c565b9050919050565b600060208201905081810360008301526124a681611fd2565b9050919050565b600060208201905081810360008301526124c681612012565b9050919050565b600060208201905081810360008301526124e681612078565b9050919050565b60006020820190508181036000830152612506816120de565b9050919050565b600060208201905081810360008301526125268161211e565b9050919050565b6000602082019050818103600083015261254681612184565b9050919050565b60006020820190508181036000830152612566816121ea565b9050919050565b600060208201905081810360008301526125868161222a565b9050919050565b600060208201905081810360008301526125a681612290565b9050919050565b600060208201905081810360008301526125c6816122aa565b9050919050565b600060208201905081810360008301526125e681612310565b9050919050565b6000602082019050818103600083015261260681612376565b9050919050565b600060208201905061262260008301846123dc565b92915050565b600060208201905061263d60008301846123eb565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561266a576126696128f7565b5b8060405250919050565b600067ffffffffffffffff82111561268f5761268e6128f7565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156126bb576126ba6128f7565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b60006126f3826127b0565b91506126fe836127b0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561273357612732612899565b5b828201905092915050565b6000612749826127b0565b9150612754836127b0565b92508282101561276757612766612899565b5b828203905092915050565b600061277d82612790565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006127d2826127d9565b9050919050565b60006127e482612790565b9050919050565b60005b838110156128095780820151818401526020810190506127ee565b83811115612818576000848401525b50505050565b6000600282049050600182168061283657607f821691505b6020821081141561284a576128496128c8565b5b50919050565b600061285b826127b0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561288e5761288d612899565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b61294081612772565b811461294b57600080fd5b50565b612957816127b0565b811461296257600080fd5b5056fea26469706673582212200dfe43c3c6353b3965f43bb1476d385ab92ccc942f5e00bfcee6e199d6ba95cb64736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063dd62ed3e11610071578063dd62ed3e1461035d578063f2cc0c181461038d578063f2fde38b146103a9578063f84354f1146103c5578063fb92b180146103e15761012c565b80638da5cb5b1461029157806395d89b41146102af578063a457c2d7146102cd578063a9059cbb146102fd578063cba0e9961461032d5761012c565b8063313ce567116100f4578063313ce567146101eb578063395093511461020957806349bd5a5e1461023957806370a0823114610257578063715018a6146102875761012c565b806306fdde0314610131578063095ea7b31461014f5780631694505e1461017f57806318160ddd1461019d57806323b872dd146101bb575b600080fd5b6101396103fd565b604051610146919061244b565b60405180910390f35b61016960048036038101906101649190611e5e565b61048f565b6040516101769190612415565b60405180910390f35b6101876104ad565b6040516101949190612430565b60405180910390f35b6101a56104d3565b6040516101b2919061260d565b60405180910390f35b6101d560048036038101906101d09190611e0f565b6104dd565b6040516101e29190612415565b60405180910390f35b6101f36105d5565b6040516102009190612628565b60405180910390f35b610223600480360381019061021e9190611e5e565b6105de565b6040516102309190612415565b60405180910390f35b61024161068a565b60405161024e91906123fa565b60405180910390f35b610271600480360381019061026c9190611daa565b6106b0565b60405161027e919061260d565b60405180910390f35b61028f6106f9565b005b610299610781565b6040516102a691906123fa565b60405180910390f35b6102b76107aa565b6040516102c4919061244b565b60405180910390f35b6102e760048036038101906102e29190611e5e565b61083c565b6040516102f49190612415565b60405180910390f35b61031760048036038101906103129190611e5e565b610927565b6040516103249190612415565b60405180910390f35b61034760048036038101906103429190611daa565b610945565b6040516103549190612415565b60405180910390f35b61037760048036038101906103729190611dd3565b61099b565b604051610384919061260d565b60405180910390f35b6103a760048036038101906103a29190611daa565b610a22565b005b6103c360048036038101906103be9190611daa565b610c6c565b005b6103df60048036038101906103da9190611daa565b610d64565b005b6103fb60048036038101906103f69190611e9a565b6110ed565b005b60606007805461040c9061281e565b80601f01602080910402602001604051908101604052809291908181526020018280546104389061281e565b80156104855780601f1061045a57610100808354040283529160200191610485565b820191906000526020600020905b81548152906001019060200180831161046857829003601f168201915b5050505050905090565b60006104a361049c611350565b8484611358565b6001905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600654905090565b60006104ea848484611523565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610535611350565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ac9061252d565b60405180910390fd5b6105c9856105c1611350565b858403611358565b60019150509392505050565b60006009905090565b60006106806105eb611350565b8484600260006105f9611350565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461067b91906126e8565b611358565b6001905092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610701611350565b73ffffffffffffffffffffffffffffffffffffffff1661071f610781565b73ffffffffffffffffffffffffffffffffffffffff1614610775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076c9061254d565b60405180910390fd5b61077f60006117a7565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600880546107b99061281e565b80601f01602080910402602001604051908101604052809291908181526020018280546107e59061281e565b80156108325780601f1061080757610100808354040283529160200191610832565b820191906000526020600020905b81548152906001019060200180831161081557829003601f168201915b5050505050905090565b6000806002600061084b611350565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ff906125ed565b60405180910390fd5b61091c610913611350565b85858403611358565b600191505092915050565b600061093b610934611350565b8484611523565b6001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a2a611350565b73ffffffffffffffffffffffffffffffffffffffff16610a48610781565b73ffffffffffffffffffffffffffffffffffffffff1614610a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a959061254d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b18906125cd565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba5906124ed565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610c74611350565b73ffffffffffffffffffffffffffffffffffffffff16610c92610781565b73ffffffffffffffffffffffffffffffffffffffff1614610ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdf9061254d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f906124ad565b60405180910390fd5b610d61816117a7565b50565b610d6c611350565b73ffffffffffffffffffffffffffffffffffffffff16610d8a610781565b73ffffffffffffffffffffffffffffffffffffffff1614610de0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd79061254d565b60405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e63906124ed565b60405180910390fd5b60005b6005805490508110156110e9578173ffffffffffffffffffffffffffffffffffffffff1660058281548110610ecd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156110d65760056001600580549050610f28919061273e565b81548110610f5f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110610fc4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600580548061109c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556110e9565b80806110e190612850565b915050610e6f565b5050565b80518251146110fb57600080fd5b60005b815181101561134b576000828281518110611142577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190506000339050600085848151811061118c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190506111a182828561186b565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f9061250d565b60405180910390fd5b838103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112bd91906126e8565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051611321919061260d565b60405180910390a3611334838386611c4f565b50505050808061134390612850565b9150506110fe565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906125ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f906124cd565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611516919061260d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158a9061256d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fa9061246d565b60405180910390fd5b61160e83838361186b565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c9061250d565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461172a91906126e8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161178e919061260d565b60405180910390a36117a1848484611c4f565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611873610781565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118e157506118b1610781565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c4a57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061198f5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c59061258d565b60405180910390fd5b600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff16611ab9576040518060600160405280600081526020016000815260200160011515815250600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083151502179055509050505b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bb3576000600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415611bae57606e42611b6791906126e8565b600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b611c49565b611bbc32610945565b80611c09575042600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410155b611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f9061248d565b60405180910390fd5b5b5b505050565b505050565b6000611c67611c6284612674565b612643565b90508083825260208201905082856020860282011115611c8657600080fd5b60005b85811015611cb65781611c9c8882611d2c565b845260208401935060208301925050600181019050611c89565b5050509392505050565b6000611cd3611cce846126a0565b612643565b90508083825260208201905082856020860282011115611cf257600080fd5b60005b85811015611d225781611d088882611d95565b845260208401935060208301925050600181019050611cf5565b5050509392505050565b600081359050611d3b81612937565b92915050565b600082601f830112611d5257600080fd5b8135611d62848260208601611c54565b91505092915050565b600082601f830112611d7c57600080fd5b8135611d8c848260208601611cc0565b91505092915050565b600081359050611da48161294e565b92915050565b600060208284031215611dbc57600080fd5b6000611dca84828501611d2c565b91505092915050565b60008060408385031215611de657600080fd5b6000611df485828601611d2c565b9250506020611e0585828601611d2c565b9150509250929050565b600080600060608486031215611e2457600080fd5b6000611e3286828701611d2c565b9350506020611e4386828701611d2c565b9250506040611e5486828701611d95565b9150509250925092565b60008060408385031215611e7157600080fd5b6000611e7f85828601611d2c565b9250506020611e9085828601611d95565b9150509250929050565b60008060408385031215611ead57600080fd5b600083013567ffffffffffffffff811115611ec757600080fd5b611ed385828601611d41565b925050602083013567ffffffffffffffff811115611ef057600080fd5b611efc85828601611d6b565b9150509250929050565b611f0f81612772565b82525050565b611f1e81612784565b82525050565b611f2d816127c7565b82525050565b6000611f3e826126cc565b611f4881856126d7565b9350611f588185602086016127eb565b611f6181612926565b840191505092915050565b6000611f796023836126d7565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611fdf6019836126d7565b91507f4578636c7564656420626f742063616e6e6f742073656c6c21000000000000006000830152602082019050919050565b600061201f6026836126d7565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120856022836126d7565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120eb601b836126d7565b91507f4163636f756e7420697320616c7265616479206578636c7564656400000000006000830152602082019050919050565b600061212b6026836126d7565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006121916028836126d7565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b60006121f76020836126d7565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122376025836126d7565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061229d6000836126d7565b9150600082019050919050565b60006122b76024836126d7565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061231d6022836126d7565b91507f57652063616e206e6f74206578636c75646520556e697377617020726f75746560008301527f722e0000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006123836025836126d7565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6123e5816127b0565b82525050565b6123f4816127ba565b82525050565b600060208201905061240f6000830184611f06565b92915050565b600060208201905061242a6000830184611f15565b92915050565b60006020820190506124456000830184611f24565b92915050565b600060208201905081810360008301526124658184611f33565b905092915050565b6000602082019050818103600083015261248681611f6c565b9050919050565b600060208201905081810360008301526124a681611fd2565b9050919050565b600060208201905081810360008301526124c681612012565b9050919050565b600060208201905081810360008301526124e681612078565b9050919050565b60006020820190508181036000830152612506816120de565b9050919050565b600060208201905081810360008301526125268161211e565b9050919050565b6000602082019050818103600083015261254681612184565b9050919050565b60006020820190508181036000830152612566816121ea565b9050919050565b600060208201905081810360008301526125868161222a565b9050919050565b600060208201905081810360008301526125a681612290565b9050919050565b600060208201905081810360008301526125c6816122aa565b9050919050565b600060208201905081810360008301526125e681612310565b9050919050565b6000602082019050818103600083015261260681612376565b9050919050565b600060208201905061262260008301846123dc565b92915050565b600060208201905061263d60008301846123eb565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561266a576126696128f7565b5b8060405250919050565b600067ffffffffffffffff82111561268f5761268e6128f7565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156126bb576126ba6128f7565b5b602082029050602081019050919050565b600081519050919050565b600082825260208201905092915050565b60006126f3826127b0565b91506126fe836127b0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561273357612732612899565b5b828201905092915050565b6000612749826127b0565b9150612754836127b0565b92508282101561276757612766612899565b5b828203905092915050565b600061277d82612790565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006127d2826127d9565b9050919050565b60006127e482612790565b9050919050565b60005b838110156128095780820151818401526020810190506127ee565b83811115612818576000848401525b50505050565b6000600282049050600182168061283657607f821691505b6020821081141561284a576128496128c8565b5b50919050565b600061285b826127b0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561288e5761288d612899565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b61294081612772565b811461294b57600080fd5b50565b612957816127b0565b811461296257600080fd5b5056fea26469706673582212200dfe43c3c6353b3965f43bb1476d385ab92ccc942f5e00bfcee6e199d6ba95cb64736f6c63430008000033

Deployed Bytecode Sourcemap

8036:13753:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9560:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11726:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8451:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10679:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13271:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10522:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14172:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8499:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10850:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2431:94;;;:::i;:::-;;1780:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9779:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14890:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11190:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12679:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11428:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11903:323;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2680:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12234:437;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18141:758;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9560:100;9614:13;9647:5;9640:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9560:100;:::o;11726:169::-;11809:4;11826:39;11835:12;:10;:12::i;:::-;11849:7;11858:6;11826:8;:39::i;:::-;11883:4;11876:11;;11726:169;;;;:::o;8451:41::-;;;;;;;;;;;;;:::o;10679:108::-;10740:7;10767:12;;10760:19;;10679:108;:::o;13271:492::-;13411:4;13428:36;13438:6;13446:9;13457:6;13428:9;:36::i;:::-;13477:24;13504:11;:19;13516:6;13504:19;;;;;;;;;;;;;;;:33;13524:12;:10;:12::i;:::-;13504:33;;;;;;;;;;;;;;;;13477:60;;13576:6;13556:16;:26;;13548:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;13663:57;13672:6;13680:12;:10;:12::i;:::-;13713:6;13694:16;:25;13663:8;:57::i;:::-;13751:4;13744:11;;;13271:492;;;;;:::o;10522:92::-;10580:5;10605:1;10598:8;;10522:92;:::o;14172:215::-;14260:4;14277:80;14286:12;:10;:12::i;:::-;14300:7;14346:10;14309:11;:25;14321:12;:10;:12::i;:::-;14309:25;;;;;;;;;;;;;;;:34;14335:7;14309:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14277:8;:80::i;:::-;14375:4;14368:11;;14172:215;;;;:::o;8499:28::-;;;;;;;;;;;;;:::o;10850:127::-;10924:7;10951:9;:18;10961:7;10951:18;;;;;;;;;;;;;;;;10944:25;;10850:127;;;:::o;2431:94::-;2011:12;:10;:12::i;:::-;2000:23;;:7;:5;:7::i;:::-;:23;;;1992:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2496:21:::1;2514:1;2496:9;:21::i;:::-;2431:94::o:0;1780:87::-;1826:7;1853:6;;;;;;;;;;;1846:13;;1780:87;:::o;9779:104::-;9835:13;9868:7;9861:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9779:104;:::o;14890:413::-;14983:4;15000:24;15027:11;:25;15039:12;:10;:12::i;:::-;15027:25;;;;;;;;;;;;;;;:34;15053:7;15027:34;;;;;;;;;;;;;;;;15000:61;;15100:15;15080:16;:35;;15072:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15193:67;15202:12;:10;:12::i;:::-;15216:7;15244:15;15225:16;:34;15193:8;:67::i;:::-;15291:4;15284:11;;;14890:413;;;;:::o;11190:175::-;11276:4;11293:42;11303:12;:10;:12::i;:::-;11317:9;11328:6;11293:9;:42::i;:::-;11353:4;11346:11;;11190:175;;;;:::o;12679:110::-;12737:4;12761:11;:20;12773:7;12761:20;;;;;;;;;;;;;;;;;;;;;;;;;12754:27;;12679:110;;;:::o;11428:151::-;11517:7;11544:11;:18;11556:5;11544:18;;;;;;;;;;;;;;;:27;11563:7;11544:27;;;;;;;;;;;;;;;;11537:34;;11428:151;;;;:::o;11903:323::-;2011:12;:10;:12::i;:::-;2000:23;;:7;:5;:7::i;:::-;:23;;;1992:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11993:42:::1;11982:53;;:7;:53;;;;11974:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;12094:11;:20;12106:7;12094:20;;;;;;;;;;;;;;;;;;;;;;;;;12093:21;12085:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;12180:4;12157:11;:20;12169:7;12157:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;12195:9;12210:7;12195:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11903:323:::0;:::o;2680:192::-;2011:12;:10;:12::i;:::-;2000:23;;:7;:5;:7::i;:::-;:23;;;1992:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2789:1:::1;2769:22;;:8;:22;;;;2761:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2845:19;2855:8;2845:9;:19::i;:::-;2680:192:::0;:::o;12234:437::-;2011:12;:10;:12::i;:::-;2000:23;;:7;:5;:7::i;:::-;:23;;;1992:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12313:11:::1;:20;12325:7;12313:20;;;;;;;;;;;;;;;;;;;;;;;;;12305:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12381:9;12376:288;12400:9;:16;;;;12396:1;:20;12376:288;;;12458:7;12442:23;;:9;12452:1;12442:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;12438:215;;;12501:9;12530:1;12511:9;:16;;;;:20;;;;:::i;:::-;12501:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12486:9;12496:1;12486:12;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;12574:5;12551:11;:20;12563:7;12551:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12598:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12632:5;;12438:215;12418:3;;;;;:::i;:::-;;;;12376:288;;;;12234:437:::0;:::o;18141:758::-;18268:7;:14;18248:9;:16;:34;18240:43;;;;;;18297:6;18292:604;18313:7;:14;18309:1;:18;18292:604;;;18345:14;18362:7;18370:1;18362:10;;;;;;;;;;;;;;;;;;;;;;18345:27;;18383:14;18400:10;18383:27;;18421:17;18441:9;18451:1;18441:12;;;;;;;;;;;;;;;;;;;;;;18421:32;;18466:47;18487:6;18495:9;18506:6;18466:20;:47::i;:::-;18524:21;18548:9;:17;18558:6;18548:17;;;;;;;;;;;;;;;;18524:41;;18601:6;18584:13;:23;;18576:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;18722:6;18706:13;:22;18686:9;:17;18696:6;18686:17;;;;;;;;;;;;;;;:42;;;;18774:6;18750:9;:20;18760:9;18750:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;18813:9;18796:35;;18805:6;18796:35;;;18824:6;18796:35;;;;;;:::i;:::-;;;;;;;;18842:46;18862:6;18870:9;18881:6;18842:19;:46::i;:::-;18292:604;;;;18329:3;;;;;:::i;:::-;;;;18292:604;;;;18141:758;;:::o;656:98::-;709:7;736:10;729:17;;656:98;:::o;19337:380::-;19490:1;19473:19;;:5;:19;;;;19465:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19571:1;19552:21;;:7;:21;;;;19544:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19655:6;19625:11;:18;19637:5;19625:18;;;;;;;;;;;;;;;:27;19644:7;19625:27;;;;;;;;;;;;;;;:36;;;;19693:7;19677:32;;19686:5;19677:32;;;19702:6;19677:32;;;;;;:::i;:::-;;;;;;;;19337:380;;;:::o;15793:733::-;15951:1;15933:20;;:6;:20;;;;15925:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;16035:1;16014:23;;:9;:23;;;;16006:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16090:47;16111:6;16119:9;16130:6;16090:20;:47::i;:::-;16150:21;16174:9;:17;16184:6;16174:17;;;;;;;;;;;;;;;;16150:41;;16227:6;16210:13;:23;;16202:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16348:6;16332:13;:22;16312:9;:17;16322:6;16312:17;;;;;;;;;;;;;;;:42;;;;16400:6;16376:9;:20;16386:9;16376:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;16441:9;16424:35;;16433:6;16424:35;;;16452:6;16424:35;;;;;;:::i;:::-;;;;;;;;16472:46;16492:6;16500:9;16511:6;16472:19;:46::i;:::-;15793:733;;;;:::o;2880:173::-;2936:16;2955:6;;;;;;;;;;;2936:25;;2981:8;2972:6;;:17;;;;;;;;;;;;;;;;;;3036:8;3005:40;;3026:8;3005:40;;;;;;;;;;;;2880:173;;:::o;20317:740::-;20462:7;:5;:7::i;:::-;20454:15;;:4;:15;;;;:32;;;;;20479:7;:5;:7::i;:::-;20473:13;;:2;:13;;;;20454:32;20451:597;;;20519:13;;;;;;;;;;;20511:21;;:4;:21;;;:44;;;;20542:13;;;;;;;;;;;20536:19;;:2;:19;;;20511:44;20503:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;20581:8;:19;20590:9;20581:19;;;;;;;;;;;;;;;:26;;;;;;;;;;;;20577:103;;20650:14;;;;;;;;20655:1;20650:14;;;;20657:1;20650:14;;;;20659:4;20650:14;;;;;20628:8;:19;20637:9;20628:19;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20577:103;20708:13;;;;;;;;;;;20700:21;;:4;:21;;;20696:341;;;20773:1;20746:8;:19;20755:9;20746:19;;;;;;;;;;;;;;;:23;;;:28;20742:134;;;20844:11;20825:15;:31;;;;:::i;:::-;20799:8;:19;20808:9;20799:19;;;;;;;;;;;;;;;:23;;:57;;;;20742:134;20696:341;;;20924:21;20935:9;20924:10;:21::i;:::-;:67;;;;20976:15;20949:8;:19;20958:9;20949:19;;;;;;;;;;;;;;;:23;;;:42;;20924:67;20916:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;20696:341;20451:597;20317:740;;;:::o;21661:125::-;;;;:::o;24:622:1:-;;145:80;160:64;217:6;160:64;:::i;:::-;145:80;:::i;:::-;136:89;;245:5;273:6;266:5;259:21;299:4;292:5;288:16;281:23;;324:6;374:3;366:4;358:6;354:17;349:3;345:27;342:36;339:2;;;391:1;388;381:12;339:2;419:1;404:236;429:6;426:1;423:13;404:236;;;496:3;524:37;557:3;545:10;524:37;:::i;:::-;519:3;512:50;591:4;586:3;582:14;575:21;;625:4;620:3;616:14;609:21;;464:176;451:1;448;444:9;439:14;;404:236;;;408:14;126:520;;;;;;;:::o;669:622::-;;790:80;805:64;862:6;805:64;:::i;:::-;790:80;:::i;:::-;781:89;;890:5;918:6;911:5;904:21;944:4;937:5;933:16;926:23;;969:6;1019:3;1011:4;1003:6;999:17;994:3;990:27;987:36;984:2;;;1036:1;1033;1026:12;984:2;1064:1;1049:236;1074:6;1071:1;1068:13;1049:236;;;1141:3;1169:37;1202:3;1190:10;1169:37;:::i;:::-;1164:3;1157:50;1236:4;1231:3;1227:14;1220:21;;1270:4;1265:3;1261:14;1254:21;;1109:176;1096:1;1093;1089:9;1084:14;;1049:236;;;1053:14;771:520;;;;;;;:::o;1297:139::-;;1381:6;1368:20;1359:29;;1397:33;1424:5;1397:33;:::i;:::-;1349:87;;;;:::o;1459:303::-;;1579:3;1572:4;1564:6;1560:17;1556:27;1546:2;;1597:1;1594;1587:12;1546:2;1637:6;1624:20;1662:94;1752:3;1744:6;1737:4;1729:6;1725:17;1662:94;:::i;:::-;1653:103;;1536:226;;;;;:::o;1785:303::-;;1905:3;1898:4;1890:6;1886:17;1882:27;1872:2;;1923:1;1920;1913:12;1872:2;1963:6;1950:20;1988:94;2078:3;2070:6;2063:4;2055:6;2051:17;1988:94;:::i;:::-;1979:103;;1862:226;;;;;:::o;2094:139::-;;2178:6;2165:20;2156:29;;2194:33;2221:5;2194:33;:::i;:::-;2146:87;;;;:::o;2239:262::-;;2347:2;2335:9;2326:7;2322:23;2318:32;2315:2;;;2363:1;2360;2353:12;2315:2;2406:1;2431:53;2476:7;2467:6;2456:9;2452:22;2431:53;:::i;:::-;2421:63;;2377:117;2305:196;;;;:::o;2507:407::-;;;2632:2;2620:9;2611:7;2607:23;2603:32;2600:2;;;2648:1;2645;2638:12;2600:2;2691:1;2716:53;2761:7;2752:6;2741:9;2737:22;2716:53;:::i;:::-;2706:63;;2662:117;2818:2;2844:53;2889:7;2880:6;2869:9;2865:22;2844:53;:::i;:::-;2834:63;;2789:118;2590:324;;;;;:::o;2920:552::-;;;;3062:2;3050:9;3041:7;3037:23;3033:32;3030:2;;;3078:1;3075;3068:12;3030:2;3121:1;3146:53;3191:7;3182:6;3171:9;3167:22;3146:53;:::i;:::-;3136:63;;3092:117;3248:2;3274:53;3319:7;3310:6;3299:9;3295:22;3274:53;:::i;:::-;3264:63;;3219:118;3376:2;3402:53;3447:7;3438:6;3427:9;3423:22;3402:53;:::i;:::-;3392:63;;3347:118;3020:452;;;;;:::o;3478:407::-;;;3603:2;3591:9;3582:7;3578:23;3574:32;3571:2;;;3619:1;3616;3609:12;3571:2;3662:1;3687:53;3732:7;3723:6;3712:9;3708:22;3687:53;:::i;:::-;3677:63;;3633:117;3789:2;3815:53;3860:7;3851:6;3840:9;3836:22;3815:53;:::i;:::-;3805:63;;3760:118;3561:324;;;;;:::o;3891:693::-;;;4066:2;4054:9;4045:7;4041:23;4037:32;4034:2;;;4082:1;4079;4072:12;4034:2;4153:1;4142:9;4138:17;4125:31;4183:18;4175:6;4172:30;4169:2;;;4215:1;4212;4205:12;4169:2;4243:78;4313:7;4304:6;4293:9;4289:22;4243:78;:::i;:::-;4233:88;;4096:235;4398:2;4387:9;4383:18;4370:32;4429:18;4421:6;4418:30;4415:2;;;4461:1;4458;4451:12;4415:2;4489:78;4559:7;4550:6;4539:9;4535:22;4489:78;:::i;:::-;4479:88;;4341:236;4024:560;;;;;:::o;4590:118::-;4677:24;4695:5;4677:24;:::i;:::-;4672:3;4665:37;4655:53;;:::o;4714:109::-;4795:21;4810:5;4795:21;:::i;:::-;4790:3;4783:34;4773:50;;:::o;4829:183::-;4942:63;4999:5;4942:63;:::i;:::-;4937:3;4930:76;4920:92;;:::o;5018:364::-;;5134:39;5167:5;5134:39;:::i;:::-;5189:71;5253:6;5248:3;5189:71;:::i;:::-;5182:78;;5269:52;5314:6;5309:3;5302:4;5295:5;5291:16;5269:52;:::i;:::-;5346:29;5368:6;5346:29;:::i;:::-;5341:3;5337:39;5330:46;;5110:272;;;;;:::o;5388:367::-;;5551:67;5615:2;5610:3;5551:67;:::i;:::-;5544:74;;5648:34;5644:1;5639:3;5635:11;5628:55;5714:5;5709:2;5704:3;5700:12;5693:27;5746:2;5741:3;5737:12;5730:19;;5534:221;;;:::o;5761:323::-;;5924:67;5988:2;5983:3;5924:67;:::i;:::-;5917:74;;6021:27;6017:1;6012:3;6008:11;6001:48;6075:2;6070:3;6066:12;6059:19;;5907:177;;;:::o;6090:370::-;;6253:67;6317:2;6312:3;6253:67;:::i;:::-;6246:74;;6350:34;6346:1;6341:3;6337:11;6330:55;6416:8;6411:2;6406:3;6402:12;6395:30;6451:2;6446:3;6442:12;6435:19;;6236:224;;;:::o;6466:366::-;;6629:67;6693:2;6688:3;6629:67;:::i;:::-;6622:74;;6726:34;6722:1;6717:3;6713:11;6706:55;6792:4;6787:2;6782:3;6778:12;6771:26;6823:2;6818:3;6814:12;6807:19;;6612:220;;;:::o;6838:325::-;;7001:67;7065:2;7060:3;7001:67;:::i;:::-;6994:74;;7098:29;7094:1;7089:3;7085:11;7078:50;7154:2;7149:3;7145:12;7138:19;;6984:179;;;:::o;7169:370::-;;7332:67;7396:2;7391:3;7332:67;:::i;:::-;7325:74;;7429:34;7425:1;7420:3;7416:11;7409:55;7495:8;7490:2;7485:3;7481:12;7474:30;7530:2;7525:3;7521:12;7514:19;;7315:224;;;:::o;7545:372::-;;7708:67;7772:2;7767:3;7708:67;:::i;:::-;7701:74;;7805:34;7801:1;7796:3;7792:11;7785:55;7871:10;7866:2;7861:3;7857:12;7850:32;7908:2;7903:3;7899:12;7892:19;;7691:226;;;:::o;7923:330::-;;8086:67;8150:2;8145:3;8086:67;:::i;:::-;8079:74;;8183:34;8179:1;8174:3;8170:11;8163:55;8244:2;8239:3;8235:12;8228:19;;8069:184;;;:::o;8259:369::-;;8422:67;8486:2;8481:3;8422:67;:::i;:::-;8415:74;;8519:34;8515:1;8510:3;8506:11;8499:55;8585:7;8580:2;8575:3;8571:12;8564:29;8619:2;8614:3;8610:12;8603:19;;8405:223;;;:::o;8634:263::-;;8797:66;8861:1;8856:3;8797:66;:::i;:::-;8790:73;;8889:1;8884:3;8880:11;8873:18;;8780:117;;;:::o;8903:368::-;;9066:67;9130:2;9125:3;9066:67;:::i;:::-;9059:74;;9163:34;9159:1;9154:3;9150:11;9143:55;9229:6;9224:2;9219:3;9215:12;9208:28;9262:2;9257:3;9253:12;9246:19;;9049:222;;;:::o;9277:366::-;;9440:67;9504:2;9499:3;9440:67;:::i;:::-;9433:74;;9537:34;9533:1;9528:3;9524:11;9517:55;9603:4;9598:2;9593:3;9589:12;9582:26;9634:2;9629:3;9625:12;9618:19;;9423:220;;;:::o;9649:369::-;;9812:67;9876:2;9871:3;9812:67;:::i;:::-;9805:74;;9909:34;9905:1;9900:3;9896:11;9889:55;9975:7;9970:2;9965:3;9961:12;9954:29;10009:2;10004:3;10000:12;9993:19;;9795:223;;;:::o;10024:118::-;10111:24;10129:5;10111:24;:::i;:::-;10106:3;10099:37;10089:53;;:::o;10148:112::-;10231:22;10247:5;10231:22;:::i;:::-;10226:3;10219:35;10209:51;;:::o;10266:222::-;;10397:2;10386:9;10382:18;10374:26;;10410:71;10478:1;10467:9;10463:17;10454:6;10410:71;:::i;:::-;10364:124;;;;:::o;10494:210::-;;10619:2;10608:9;10604:18;10596:26;;10632:65;10694:1;10683:9;10679:17;10670:6;10632:65;:::i;:::-;10586:118;;;;:::o;10710:274::-;;10867:2;10856:9;10852:18;10844:26;;10880:97;10974:1;10963:9;10959:17;10950:6;10880:97;:::i;:::-;10834:150;;;;:::o;10990:313::-;;11141:2;11130:9;11126:18;11118:26;;11190:9;11184:4;11180:20;11176:1;11165:9;11161:17;11154:47;11218:78;11291:4;11282:6;11218:78;:::i;:::-;11210:86;;11108:195;;;;:::o;11309:419::-;;11513:2;11502:9;11498:18;11490:26;;11562:9;11556:4;11552:20;11548:1;11537:9;11533:17;11526:47;11590:131;11716:4;11590:131;:::i;:::-;11582:139;;11480:248;;;:::o;11734:419::-;;11938:2;11927:9;11923:18;11915:26;;11987:9;11981:4;11977:20;11973:1;11962:9;11958:17;11951:47;12015:131;12141:4;12015:131;:::i;:::-;12007:139;;11905:248;;;:::o;12159:419::-;;12363:2;12352:9;12348:18;12340:26;;12412:9;12406:4;12402:20;12398:1;12387:9;12383:17;12376:47;12440:131;12566:4;12440:131;:::i;:::-;12432:139;;12330:248;;;:::o;12584:419::-;;12788:2;12777:9;12773:18;12765:26;;12837:9;12831:4;12827:20;12823:1;12812:9;12808:17;12801:47;12865:131;12991:4;12865:131;:::i;:::-;12857:139;;12755:248;;;:::o;13009:419::-;;13213:2;13202:9;13198:18;13190:26;;13262:9;13256:4;13252:20;13248:1;13237:9;13233:17;13226:47;13290:131;13416:4;13290:131;:::i;:::-;13282:139;;13180:248;;;:::o;13434:419::-;;13638:2;13627:9;13623:18;13615:26;;13687:9;13681:4;13677:20;13673:1;13662:9;13658:17;13651:47;13715:131;13841:4;13715:131;:::i;:::-;13707:139;;13605:248;;;:::o;13859:419::-;;14063:2;14052:9;14048:18;14040:26;;14112:9;14106:4;14102:20;14098:1;14087:9;14083:17;14076:47;14140:131;14266:4;14140:131;:::i;:::-;14132:139;;14030:248;;;:::o;14284:419::-;;14488:2;14477:9;14473:18;14465:26;;14537:9;14531:4;14527:20;14523:1;14512:9;14508:17;14501:47;14565:131;14691:4;14565:131;:::i;:::-;14557:139;;14455:248;;;:::o;14709:419::-;;14913:2;14902:9;14898:18;14890:26;;14962:9;14956:4;14952:20;14948:1;14937:9;14933:17;14926:47;14990:131;15116:4;14990:131;:::i;:::-;14982:139;;14880:248;;;:::o;15134:419::-;;15338:2;15327:9;15323:18;15315:26;;15387:9;15381:4;15377:20;15373:1;15362:9;15358:17;15351:47;15415:131;15541:4;15415:131;:::i;:::-;15407:139;;15305:248;;;:::o;15559:419::-;;15763:2;15752:9;15748:18;15740:26;;15812:9;15806:4;15802:20;15798:1;15787:9;15783:17;15776:47;15840:131;15966:4;15840:131;:::i;:::-;15832:139;;15730:248;;;:::o;15984:419::-;;16188:2;16177:9;16173:18;16165:26;;16237:9;16231:4;16227:20;16223:1;16212:9;16208:17;16201:47;16265:131;16391:4;16265:131;:::i;:::-;16257:139;;16155:248;;;:::o;16409:419::-;;16613:2;16602:9;16598:18;16590:26;;16662:9;16656:4;16652:20;16648:1;16637:9;16633:17;16626:47;16690:131;16816:4;16690:131;:::i;:::-;16682:139;;16580:248;;;:::o;16834:222::-;;16965:2;16954:9;16950:18;16942:26;;16978:71;17046:1;17035:9;17031:17;17022:6;16978:71;:::i;:::-;16932:124;;;;:::o;17062:214::-;;17189:2;17178:9;17174:18;17166:26;;17202:67;17266:1;17255:9;17251:17;17242:6;17202:67;:::i;:::-;17156:120;;;;:::o;17282:283::-;;17348:2;17342:9;17332:19;;17390:4;17382:6;17378:17;17497:6;17485:10;17482:22;17461:18;17449:10;17446:34;17443:62;17440:2;;;17508:18;;:::i;:::-;17440:2;17548:10;17544:2;17537:22;17322:243;;;;:::o;17571:311::-;;17738:18;17730:6;17727:30;17724:2;;;17760:18;;:::i;:::-;17724:2;17810:4;17802:6;17798:17;17790:25;;17870:4;17864;17860:15;17852:23;;17653:229;;;:::o;17888:311::-;;18055:18;18047:6;18044:30;18041:2;;;18077:18;;:::i;:::-;18041:2;18127:4;18119:6;18115:17;18107:25;;18187:4;18181;18177:15;18169:23;;17970:229;;;:::o;18205:99::-;;18291:5;18285:12;18275:22;;18264:40;;;:::o;18310:169::-;;18428:6;18423:3;18416:19;18468:4;18463:3;18459:14;18444:29;;18406:73;;;;:::o;18485:305::-;;18544:20;18562:1;18544:20;:::i;:::-;18539:25;;18578:20;18596:1;18578:20;:::i;:::-;18573:25;;18732:1;18664:66;18660:74;18657:1;18654:81;18651:2;;;18738:18;;:::i;:::-;18651:2;18782:1;18779;18775:9;18768:16;;18529:261;;;;:::o;18796:191::-;;18856:20;18874:1;18856:20;:::i;:::-;18851:25;;18890:20;18908:1;18890:20;:::i;:::-;18885:25;;18929:1;18926;18923:8;18920:2;;;18934:18;;:::i;:::-;18920:2;18979:1;18976;18972:9;18964:17;;18841:146;;;;:::o;18993:96::-;;19059:24;19077:5;19059:24;:::i;:::-;19048:35;;19038:51;;;:::o;19095:90::-;;19172:5;19165:13;19158:21;19147:32;;19137:48;;;:::o;19191:126::-;;19268:42;19261:5;19257:54;19246:65;;19236:81;;;:::o;19323:77::-;;19389:5;19378:16;;19368:32;;;:::o;19406:86::-;;19481:4;19474:5;19470:16;19459:27;;19449:43;;;:::o;19498:178::-;;19607:63;19664:5;19607:63;:::i;:::-;19594:76;;19584:92;;;:::o;19682:139::-;;19791:24;19809:5;19791:24;:::i;:::-;19778:37;;19768:53;;;:::o;19827:307::-;19895:1;19905:113;19919:6;19916:1;19913:13;19905:113;;;20004:1;19999:3;19995:11;19989:18;19985:1;19980:3;19976:11;19969:39;19941:2;19938:1;19934:10;19929:15;;19905:113;;;20036:6;20033:1;20030:13;20027:2;;;20116:1;20107:6;20102:3;20098:16;20091:27;20027:2;19876:258;;;;:::o;20140:320::-;;20221:1;20215:4;20211:12;20201:22;;20268:1;20262:4;20258:12;20289:18;20279:2;;20345:4;20337:6;20333:17;20323:27;;20279:2;20407;20399:6;20396:14;20376:18;20373:38;20370:2;;;20426:18;;:::i;:::-;20370:2;20191:269;;;;:::o;20466:233::-;;20528:24;20546:5;20528:24;:::i;:::-;20519:33;;20574:66;20567:5;20564:77;20561:2;;;20644:18;;:::i;:::-;20561:2;20691:1;20684:5;20680:13;20673:20;;20509:190;;;:::o;20705:180::-;20753:77;20750:1;20743:88;20850:4;20847:1;20840:15;20874:4;20871:1;20864:15;20891:180;20939:77;20936:1;20929:88;21036:4;21033:1;21026:15;21060:4;21057:1;21050:15;21077:180;21125:77;21122:1;21115:88;21222:4;21219:1;21212:15;21246:4;21243:1;21236:15;21263:102;;21355:2;21351:7;21346:2;21339:5;21335:14;21331:28;21321:38;;21311:54;;;:::o;21371:122::-;21444:24;21462:5;21444:24;:::i;:::-;21437:5;21434:35;21424:2;;21483:1;21480;21473:12;21424:2;21414:79;:::o;21499:122::-;21572:24;21590:5;21572:24;:::i;:::-;21565:5;21562:35;21552:2;;21611:1;21608;21601:12;21552:2;21542:79;:::o

Swarm Source

ipfs://0dfe43c3c6353b3965f43bb1476d385ab92ccc942f5e00bfcee6e199d6ba95cb
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.