ETH Price: $3,445.47 (-1.02%)
Gas: 8 Gwei

Token

Ripple (瑞波)
 

Overview

Max Total Supply

100,000,000,000 瑞波

Holders

181

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
155,807,325.770154989685233246 瑞波

Value
$0.00
0xa4c4ac22f0a7cfc703c3f3f660bb644eaf4bc8a3
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:
ripple

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-15
*/

pragma solidity 0.8.20;

// SPDX-License-Identifier: MIT

/* 

TELEGRAM:https://t.me/ripplerc20
WEBSITE:http://www.xrperc20.com/
TWITTER:https://twitter.com/ripplechinese20

*/

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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);
}

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);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @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 default value returned by this function, unless
     * it's 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 18;
    }

    /**
     * @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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, 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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

        _afterTokenTransfer(account, address(0), 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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - 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 {}

    /**
     * @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 Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() external virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

contract ripple is ERC20, Ownable {

    mapping (address => bool) public exemptFromFees;
    mapping (address => bool) public exemptFromLimits;

    bool public tradingActive;

    mapping (address => bool) public isAMMPair;

    uint256 public maxTransaction;
    uint256 public maxWallet;

    address public operationsAddress;

    uint256 public buyTax;
    uint256 public sellTax;

    mapping(address => uint256) private _holderLastTransferBlock; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;
    bool public limitsInEffect = true;

    bool private swapping;
    uint256 public swapTokensAtAmt;

    address public lpPair;
    IDexRouter public dexRouter;

    uint256 public constant FEE_DIVISOR = 10000;

    // events

    event UpdatedMaxTransaction(uint256 newMax);
    event UpdatedMaxWallet(uint256 newMax);
    event SetExemptFromFees(address _address, bool _isExempt);
    event SetExemptFromLimits(address _address, bool _isExempt);
    event RemovedLimits();
    event UpdatedBuyTax(uint256 newAmt);
    event UpdatedSellTax(uint256 newAmt);

    // constructor


    constructor(string memory _name, string memory _symbol)
        ERC20(_name, _symbol)
    {   
        address newOwner = 0x548005eac63F974B7e464e4C95710C3Cd3fBe63f;
        _mint(newOwner, 100_000_000_000 * 1e18);
        uint256 _totalSupply = totalSupply();

        address _v2Router;

        // @dev assumes WETH pair
        if(block.chainid == 1){
            _v2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        } else if(block.chainid == 5){
            _v2Router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
        } else {
            revert("Chain not configured");
        }

        dexRouter = IDexRouter(_v2Router);

        maxTransaction = _totalSupply * 5 / 1000;
        maxWallet = _totalSupply * 1/ 100;
        swapTokensAtAmt = _totalSupply * 25 / 100000;

        operationsAddress = 0x4d3f5Bb5c0A328772B16Fb23340174E51A416670;

        buyTax = 8000; // 1% = 100
        sellTax = 8000; // 1% = 100

        exemptFromLimits[address(dexRouter)] = true;
        exemptFromLimits[newOwner] = true;
        exemptFromLimits[address(this)] = true;

        exemptFromFees[address(dexRouter)] = true;
        exemptFromFees[address(this)] = true;
        exemptFromFees[newOwner] = true;
        
        _approve(address(this), address(dexRouter), type(uint256).max);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual override {
        
        if(exemptFromFees[from] || exemptFromFees[to] || swapping){
            super._transfer(from,to,amount);
            return;
        }

        require(tradingActive, "Trading not active");

        if(limitsInEffect){
            checkLimits(from, to, amount);
        }

        amount -= handleTax(from, to, amount);

        super._transfer(from,to,amount);
    }

    function checkLimits(address from, address to, uint256 amount) internal {
        if (transferDelayEnabled){
            if (to != address(dexRouter) && !isAMMPair[to]){
                require(_holderLastTransferBlock[tx.origin] < block.number, "Transfer Delay enabled.");
                _holderLastTransferBlock[tx.origin] = block.number;
            }
        }

        // buy
        if (isAMMPair[from] && !exemptFromLimits[to]) {
            require(amount <= maxTransaction, "Max tx exceeded.");
            require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
        } 
        // sell
        else if (isAMMPair[to] && !exemptFromLimits[from]) {
            require(amount <= maxTransaction, "Max tx exceeded.");
        }
        else if(!exemptFromLimits[to]) {
            require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
        }
    }

    function handleTax(address from, address to, uint256 amount) internal returns (uint256){
        if(balanceOf(address(this)) >= swapTokensAtAmt && !swapping && !isAMMPair[from]) {
            swapping = true;
            swapBack();
            swapping = false;
        }
        
        uint256 tax = 0;

        // on sell
        if (isAMMPair[to] && sellTax > 0){
            tax = amount * sellTax / FEE_DIVISOR;
        }
        // on buy
        else if(isAMMPair[from] && buyTax > 0) {
            tax = amount * buyTax / FEE_DIVISOR;
        }
        
        if(tax > 0){    
            super._transfer(from, address(this), tax);
        }
        
        return tax;
    }

    function swapTokensForETH(uint256 tokenAmt) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmt,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {

        uint256 contractBalance = balanceOf(address(this));
        
        if(contractBalance == 0) {return;}

        if(contractBalance > swapTokensAtAmt * 40){
            contractBalance = swapTokensAtAmt * 40;
        }
        
        swapTokensForETH(contractBalance);
            
        if(address(this).balance > 0){
            bool success;
            (success, ) = operationsAddress.call{value: address(this).balance}("");
        }
    }

    // owner functions

    function setLpPairAddress(address _pair) external onlyOwner {
        require(_pair != address(0), "Invalid address");
        lpPair = _pair;
        isAMMPair[_pair] = true;
        exemptFromLimits[_pair] = true;
    }

    function setExemptFromFees(address _address, bool _isExempt) external onlyOwner {
        require(_address != address(0), "Zero Address");
        exemptFromFees[_address] = _isExempt;
        emit SetExemptFromFees(_address, _isExempt);
    }

    function setExemptFromLimits(address _address, bool _isExempt) external onlyOwner {
        require(_address != address(0), "Zero Address");
        if(!_isExempt){
            require(_address != lpPair, "Pair");
        }
        exemptFromLimits[_address] = _isExempt;
        emit SetExemptFromLimits(_address, _isExempt);
    }

    function updateMaxTransaction(uint256 newNumInTokens) external onlyOwner {
        require(newNumInTokens >= (totalSupply() * 5 / 1000)/(10**decimals()), "Too low");
        maxTransaction = newNumInTokens * (10**decimals());
        emit UpdatedMaxTransaction(maxTransaction);
    }

    function updateMaxWallet(uint256 newNumInTokens) external onlyOwner {
        require(newNumInTokens >= (totalSupply() * 1 / 100)/(10**decimals()), "Too low");
        maxWallet = newNumInTokens * (10**decimals());
        emit UpdatedMaxWallet(maxWallet);
    }

    function updateTaxes(uint256 _buyTax, uint256 _sellTax) external onlyOwner {
        buyTax = _buyTax;
        emit UpdatedBuyTax(buyTax);
        sellTax = _sellTax;
        emit UpdatedSellTax(sellTax);
    }

    function enableTrading() external onlyOwner {
        require(!tradingActive, "Trading active");
        tradingActive = true;
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        transferDelayEnabled = false;
        maxTransaction = totalSupply();
        maxWallet = totalSupply();
        emit RemovedLimits();
    }

    function disableTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }

    function updateOperationsAddress(address _address) external onlyOwner {
        require(_address != address(0), "zero address");
        operationsAddress = _address;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetExemptFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"SetExemptFromLimits","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"UpdatedBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"UpdatedMaxTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"UpdatedMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmt","type":"uint256"}],"name":"UpdatedSellTax","type":"event"},{"inputs":[],"name":"FEE_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"buyTax","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":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"","type":"address"}],"name":"isAMMPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"setExemptFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isExempt","type":"bool"}],"name":"setExemptFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setLpPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":[{"internalType":"uint256","name":"newNumInTokens","type":"uint256"}],"name":"updateMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNumInTokens","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateOperationsAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"updateTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160105f6101000a81548160ff0219169083151502179055506001601060016101000a81548160ff02191690831515021790555034801562000045575f80fd5b506040516200546c3803806200546c83398181016040528101906200006b919062000c77565b818181600390816200007e919062000f31565b50806004908162000090919062000f31565b5050505f620000a4620005d860201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f73548005eac63f974b7e464e4c95710c3cd3fbe63f905062000178816c01431e0fae6d7217caa0000000620005df60201b60201c565b5f620001896200074460201b60201c565b90505f60014603620001b257737a250d5630b4cf539739df2c5dacb4c659f2488d905062000216565b60054603620001d857737a250d5630b4cf539739df2c5dacb4c659f2488d905062000215565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200020c9062001073565b60405180910390fd5b5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8600583620002689190620010c0565b62000274919062001137565b600a8190555060646001836200028b9190620010c0565b62000297919062001137565b600b81905550620186a0601983620002b09190620010c0565b620002bc919062001137565b601181905550734d3f5bb5c0a328772b16fb23340174e51a416670600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611f40600d81905550611f40600e81905550600160075f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620005bc3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200074d60201b60201c565b620005cd836200091860201b60201c565b50505050506200146c565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000650576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064790620011bc565b60405180910390fd5b620006635f838362000ae860201b60201c565b8060025f828254620006769190620011dc565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000725919062001227565b60405180910390a3620007405f838362000aed60201b60201c565b5050565b5f600254905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620007be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007b590620012b6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200082f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000826906200134a565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200090b919062001227565b60405180910390a3505050565b62000928620005d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620009b9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b090620013b8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000a2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a21906200144c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000b538262000b0b565b810181811067ffffffffffffffff8211171562000b755762000b7462000b1b565b5b80604052505050565b5f62000b8962000af2565b905062000b97828262000b48565b919050565b5f67ffffffffffffffff82111562000bb95762000bb862000b1b565b5b62000bc48262000b0b565b9050602081019050919050565b5f5b8381101562000bf057808201518184015260208101905062000bd3565b5f8484015250505050565b5f62000c1162000c0b8462000b9c565b62000b7e565b90508281526020810184848401111562000c305762000c2f62000b07565b5b62000c3d84828562000bd1565b509392505050565b5f82601f83011262000c5c5762000c5b62000b03565b5b815162000c6e84826020860162000bfb565b91505092915050565b5f806040838503121562000c905762000c8f62000afb565b5b5f83015167ffffffffffffffff81111562000cb05762000caf62000aff565b5b62000cbe8582860162000c45565b925050602083015167ffffffffffffffff81111562000ce25762000ce162000aff565b5b62000cf08582860162000c45565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000d4957607f821691505b60208210810362000d5f5762000d5e62000d04565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000dc37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d86565b62000dcf868362000d86565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000e1962000e1362000e0d8462000de7565b62000df0565b62000de7565b9050919050565b5f819050919050565b62000e348362000df9565b62000e4c62000e438262000e20565b84845462000d92565b825550505050565b5f90565b62000e6262000e54565b62000e6f81848462000e29565b505050565b5b8181101562000e965762000e8a5f8262000e58565b60018101905062000e75565b5050565b601f82111562000ee55762000eaf8162000d65565b62000eba8462000d77565b8101602085101562000eca578190505b62000ee262000ed98562000d77565b83018262000e74565b50505b505050565b5f82821c905092915050565b5f62000f075f198460080262000eea565b1980831691505092915050565b5f62000f21838362000ef6565b9150826002028217905092915050565b62000f3c8262000cfa565b67ffffffffffffffff81111562000f585762000f5762000b1b565b5b62000f64825462000d31565b62000f7182828562000e9a565b5f60209050601f83116001811462000fa7575f841562000f92578287015190505b62000f9e858262000f14565b8655506200100d565b601f19841662000fb78662000d65565b5f5b8281101562000fe05784890151825560018201915060208501945060208101905062000fb9565b8683101562001000578489015162000ffc601f89168262000ef6565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f436861696e206e6f7420636f6e666967757265640000000000000000000000005f82015250565b5f6200105b60148362001015565b9150620010688262001025565b602082019050919050565b5f6020820190508181035f8301526200108c816200104d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620010cc8262000de7565b9150620010d98362000de7565b9250828202620010e98162000de7565b9150828204841483151762001103576200110262001093565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620011438262000de7565b9150620011508362000de7565b9250826200116357620011626200110a565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f620011a4601f8362001015565b9150620011b1826200116e565b602082019050919050565b5f6020820190508181035f830152620011d58162001196565b9050919050565b5f620011e88262000de7565b9150620011f58362000de7565b925082820190508082111562001210576200120f62001093565b5b92915050565b620012218162000de7565b82525050565b5f6020820190506200123c5f83018462001216565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6200129e60248362001015565b9150620012ab8262001242565b604082019050919050565b5f6020820190508181035f830152620012cf8162001290565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200133260228362001015565b91506200133f82620012d6565b604082019050919050565b5f6020820190508181035f830152620013638162001324565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f620013a060208362001015565b9150620013ad826200136a565b602082019050919050565b5f6020820190508181035f830152620013d18162001392565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6200143460268362001015565b91506200144182620013d8565b604082019050919050565b5f6020820190508181035f830152620014658162001426565b9050919050565b613ff2806200147a5f395ff3fe608060405260043610610233575f3560e01c80638a8c523c1161012d578063c3f70b52116100aa578063e884f2601161006e578063e884f2601461083e578063ea4cfe1214610854578063ea6debd01461087e578063f2fde38b146108a6578063f8b45b05146108ce5761023a565b8063c3f70b521461075a578063c78d0fa014610784578063c876d0b9146107ae578063cc1776d3146107d8578063dd62ed3e146108025761023a565b8063a13d1a2b116100f1578063a13d1a2b14610654578063a457c2d71461067c578063a9059cbb146106b8578063b0249cc6146106f4578063bbc0c742146107305761023a565b80638a8c523c146105845780638d3e6e401461059a5780638da5cb5b146105d657806395d89b41146106005780639e93ad8e1461062a5761023a565b8063313ce567116101bb5780635a90a49e1161017f5780635a90a49e146104b857806370a08231146104f4578063715018a614610530578063751039fc1461054657806377b27d1f1461055c5761023a565b8063313ce567146103d457806339509351146103fe578063452ed4f11461043a5780634a62bb65146104645780634f7041a51461048e5761023a565b80631006ee0c116102025780631006ee0c146102f657806318160ddd1461031e57806318a70ad3146103485780631c499ab01461037057806323b872dd146103985761023a565b80630517d13d1461023e57806306fdde03146102665780630758d92414610290578063095ea7b3146102ba5761023a565b3661023a57005b5f80fd5b348015610249575f80fd5b50610264600480360381019061025f9190612db3565b6108f8565b005b348015610271575f80fd5b5061027a610a70565b6040516102879190612e68565b60405180910390f35b34801561029b575f80fd5b506102a4610b00565b6040516102b19190612f02565b60405180910390f35b3480156102c5575f80fd5b506102e060048036038101906102db9190612f56565b610b25565b6040516102ed9190612fae565b60405180910390f35b348015610301575f80fd5b5061031c60048036038101906103179190612fc7565b610b47565b005b348015610329575f80fd5b50610332610c61565b60405161033f9190613014565b60405180910390f35b348015610353575f80fd5b5061036e6004803603810190610369919061302d565b610c6a565b005b34801561037b575f80fd5b5061039660048036038101906103919190612db3565b610e5b565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190613058565b610fd2565b6040516103cb9190612fae565b60405180910390f35b3480156103df575f80fd5b506103e8611000565b6040516103f591906130c3565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f9190612f56565b611008565b6040516104319190612fae565b60405180910390f35b348015610445575f80fd5b5061044e61103e565b60405161045b91906130eb565b60405180910390f35b34801561046f575f80fd5b50610478611063565b6040516104859190612fae565b60405180910390f35b348015610499575f80fd5b506104a2611076565b6040516104af9190613014565b60405180910390f35b3480156104c3575f80fd5b506104de60048036038101906104d9919061302d565b61107c565b6040516104eb9190612fae565b60405180910390f35b3480156104ff575f80fd5b5061051a6004803603810190610515919061302d565b611099565b6040516105279190613014565b60405180910390f35b34801561053b575f80fd5b506105446110de565b005b348015610551575f80fd5b5061055a611231565b005b348015610567575f80fd5b50610582600480360381019061057d919061312e565b611344565b005b34801561058f575f80fd5b506105986114d9565b005b3480156105a5575f80fd5b506105c060048036038101906105bb919061302d565b6115da565b6040516105cd9190612fae565b60405180910390f35b3480156105e1575f80fd5b506105ea6115f7565b6040516105f791906130eb565b60405180910390f35b34801561060b575f80fd5b5061061461161f565b6040516106219190612e68565b60405180910390f35b348015610635575f80fd5b5061063e6116af565b60405161064b9190613014565b60405180910390f35b34801561065f575f80fd5b5061067a6004803603810190610675919061312e565b6116b5565b005b348015610687575f80fd5b506106a2600480360381019061069d9190612f56565b6118df565b6040516106af9190612fae565b60405180910390f35b3480156106c3575f80fd5b506106de60048036038101906106d99190612f56565b611954565b6040516106eb9190612fae565b60405180910390f35b3480156106ff575f80fd5b5061071a6004803603810190610715919061302d565b611976565b6040516107279190612fae565b60405180910390f35b34801561073b575f80fd5b50610744611993565b6040516107519190612fae565b60405180910390f35b348015610765575f80fd5b5061076e6119a5565b60405161077b9190613014565b60405180910390f35b34801561078f575f80fd5b506107986119ab565b6040516107a59190613014565b60405180910390f35b3480156107b9575f80fd5b506107c26119b1565b6040516107cf9190612fae565b60405180910390f35b3480156107e3575f80fd5b506107ec6119c3565b6040516107f99190613014565b60405180910390f35b34801561080d575f80fd5b506108286004803603810190610823919061316c565b6119c9565b6040516108359190613014565b60405180910390f35b348015610849575f80fd5b50610852611a4b565b005b34801561085f575f80fd5b50610868611afc565b60405161087591906130eb565b60405180910390f35b348015610889575f80fd5b506108a4600480360381019061089f919061302d565b611b21565b005b3480156108b1575f80fd5b506108cc60048036038101906108c7919061302d565b611c68565b005b3480156108d9575f80fd5b506108e2611e2a565b6040516108ef9190613014565b60405180910390f35b610900611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610985906131f4565b60405180910390fd5b610996611000565b600a6109a2919061336e565b6103e860056109af610c61565b6109b991906133b8565b6109c39190613426565b6109cd9190613426565b811015610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a06906134a0565b60405180910390fd5b610a17611000565b600a610a23919061336e565b81610a2e91906133b8565b600a819055507f76a9278644b7300961aa0e7e86f10934585987f1daf1c6ecc971c18376691574600a54604051610a659190613014565b60405180910390a150565b606060038054610a7f906134eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610aab906134eb565b8015610af65780601f10610acd57610100808354040283529160200191610af6565b820191905f5260205f20905b815481529060010190602001808311610ad957829003601f168201915b5050505050905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80610b2f611e30565b9050610b3c818585611e37565b600191505092915050565b610b4f611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd4906131f4565b60405180910390fd5b81600d819055507f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece0508600d54604051610c159190613014565b60405180910390a180600e819055507fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c97600e54604051610c559190613014565b60405180910390a15050565b5f600254905090565b610c72611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf7906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590613565565b60405180910390fd5b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610e63611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee8906131f4565b60405180910390fd5b610ef9611000565b600a610f05919061336e565b60646001610f11610c61565b610f1b91906133b8565b610f259190613426565b610f2f9190613426565b811015610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f68906134a0565b60405180910390fd5b610f79611000565b600a610f85919061336e565b81610f9091906133b8565b600b819055507f3046ad62de8b70d396246aaed19ff2559ff20df8706520cbde58320766c42762600b54604051610fc79190613014565b60405180910390a150565b5f80610fdc611e30565b9050610fe9858285611ffa565b610ff4858585612085565b60019150509392505050565b5f6012905090565b5f80611012611e30565b905061103381858561102485896119c9565b61102e9190613583565b611e37565b600191505092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060019054906101000a900460ff1681565b600d5481565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110e6611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611239611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be906131f4565b60405180910390fd5b5f601060016101000a81548160ff0219169083151502179055505f60105f6101000a81548160ff021916908315150217905550611302610c61565b600a81905550611310610c61565b600b819055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b61134c611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d1906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f90613600565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d82826040516114cd92919061361e565b60405180910390a15050565b6114e1611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611566906131f4565b60405180910390fd5b60085f9054906101000a900460ff16156115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b59061368f565b60405180910390fd5b600160085f6101000a81548160ff021916908315150217905550565b6007602052805f5260405f205f915054906101000a900460ff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461162e906134eb565b80601f016020809104026020016040519081016040528092919081815260200182805461165a906134eb565b80156116a55780601f1061167c576101008083540402835291602001916116a5565b820191905f5260205f20905b81548152906001019060200180831161168857829003601f168201915b5050505050905090565b61271081565b6116bd611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461174b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611742906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b090613600565b60405180910390fd5b8061184e5760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361184d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611844906136f7565b60405180910390fd5b5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce82826040516118d392919061361e565b60405180910390a15050565b5f806118e9611e30565b90505f6118f682866119c9565b90508381101561193b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193290613785565b60405180910390fd5b6119488286868403611e37565b60019250505092915050565b5f8061195e611e30565b905061196b818585612085565b600191505092915050565b6009602052805f5260405f205f915054906101000a900460ff1681565b60085f9054906101000a900460ff1681565b600a5481565b60115481565b60105f9054906101000a900460ff1681565b600e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611a53611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad8906131f4565b60405180910390fd5b5f60105f6101000a81548160ff021916908315150217905550565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b29611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1c906137ed565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c70611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf5906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d639061387b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c90613909565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a90613997565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fed9190613014565b60405180910390a3505050565b5f61200584846119c9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461207f5781811015612071576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612068906139ff565b60405180910390fd5b61207e8484848403611e37565b5b50505050565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612120575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806121375750601060029054906101000a900460ff165b1561214c576121478383836121e4565b6121df565b60085f9054906101000a900460ff1661219a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219190613a67565b60405180910390fd5b601060019054906101000a900460ff16156121bb576121ba838383612450565b5b6121c68383836128ae565b816121d19190613a85565b90506121de8383836121e4565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224990613b28565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b790613bb6565b60405180910390fd5b6122cb838383612a85565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561234e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234590613c44565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124379190613014565b60405180910390a361244a848484612a8a565b50505050565b60105f9054906101000a900460ff16156125d05760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612508575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156125cf5743600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061258c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258390613cac565b60405180910390fd5b43600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561266d575060075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561271457600a548111156126b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ae90613d14565b60405180910390fd5b600b546126c383611099565b826126ce9190613583565b111561270f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270690613d7c565b60405180910390fd5b6128a9565b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156127b1575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561280057600a548111156127fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f290613d14565b60405180910390fd5b6128a8565b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166128a757600b5461285a83611099565b826128659190613583565b11156128a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289d90613d7c565b60405180910390fd5b5b5b5b505050565b5f6011546128bb30611099565b101580156128d65750601060029054906101000a900460ff16155b8015612929575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561296c576001601060026101000a81548160ff021916908315150217905550612951612a8f565b5f601060026101000a81548160ff0219169083151502179055505b5f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129c457505f600e54115b156129eb57612710600e54846129da91906133b8565b6129e49190613426565b9050612a66565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612a4257505f600d54115b15612a6557612710600d5484612a5891906133b8565b612a629190613426565b90505b5b5f811115612a7a57612a798530836121e4565b5b809150509392505050565b505050565b505050565b5f612a9930611099565b90505f8103612aa85750612b70565b6028601154612ab791906133b8565b811115612ad0576028601154612acd91906133b8565b90505b612ad981612b72565b5f471115612b6e575f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612b2790613dc7565b5f6040518083038185875af1925050503d805f8114612b61576040519150601f19603f3d011682016040523d82523d5f602084013e612b66565b606091505b505080915050505b505b565b5f600267ffffffffffffffff811115612b8e57612b8d613ddb565b5b604051908082528060200260200182016040528015612bbc5781602001602082028036833780820191505090505b50905030815f81518110612bd357612bd2613e08565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c9b9190613e49565b81600181518110612caf57612cae613e08565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612d4b959493929190613f64565b5f604051808303815f87803b158015612d62575f80fd5b505af1158015612d74573d5f803e3d5ffd5b505050505050565b5f80fd5b5f819050919050565b612d9281612d80565b8114612d9c575f80fd5b50565b5f81359050612dad81612d89565b92915050565b5f60208284031215612dc857612dc7612d7c565b5b5f612dd584828501612d9f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e15578082015181840152602081019050612dfa565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612e3a82612dde565b612e448185612de8565b9350612e54818560208601612df8565b612e5d81612e20565b840191505092915050565b5f6020820190508181035f830152612e808184612e30565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f612eca612ec5612ec084612e88565b612ea7565b612e88565b9050919050565b5f612edb82612eb0565b9050919050565b5f612eec82612ed1565b9050919050565b612efc81612ee2565b82525050565b5f602082019050612f155f830184612ef3565b92915050565b5f612f2582612e88565b9050919050565b612f3581612f1b565b8114612f3f575f80fd5b50565b5f81359050612f5081612f2c565b92915050565b5f8060408385031215612f6c57612f6b612d7c565b5b5f612f7985828601612f42565b9250506020612f8a85828601612d9f565b9150509250929050565b5f8115159050919050565b612fa881612f94565b82525050565b5f602082019050612fc15f830184612f9f565b92915050565b5f8060408385031215612fdd57612fdc612d7c565b5b5f612fea85828601612d9f565b9250506020612ffb85828601612d9f565b9150509250929050565b61300e81612d80565b82525050565b5f6020820190506130275f830184613005565b92915050565b5f6020828403121561304257613041612d7c565b5b5f61304f84828501612f42565b91505092915050565b5f805f6060848603121561306f5761306e612d7c565b5b5f61307c86828701612f42565b935050602061308d86828701612f42565b925050604061309e86828701612d9f565b9150509250925092565b5f60ff82169050919050565b6130bd816130a8565b82525050565b5f6020820190506130d65f8301846130b4565b92915050565b6130e581612f1b565b82525050565b5f6020820190506130fe5f8301846130dc565b92915050565b61310d81612f94565b8114613117575f80fd5b50565b5f8135905061312881613104565b92915050565b5f806040838503121561314457613143612d7c565b5b5f61315185828601612f42565b92505060206131628582860161311a565b9150509250929050565b5f806040838503121561318257613181612d7c565b5b5f61318f85828601612f42565b92505060206131a085828601612f42565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131de602083612de8565b91506131e9826131aa565b602082019050919050565b5f6020820190508181035f83015261320b816131d2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613294578086048111156132705761326f613212565b5b600185161561327f5780820291505b808102905061328d8561323f565b9450613254565b94509492505050565b5f826132ac5760019050613367565b816132b9575f9050613367565b81600181146132cf57600281146132d957613308565b6001915050613367565b60ff8411156132eb576132ea613212565b5b8360020a91508482111561330257613301613212565b5b50613367565b5060208310610133831016604e8410600b841016171561333d5782820a90508381111561333857613337613212565b5b613367565b61334a848484600161324b565b9250905081840481111561336157613360613212565b5b81810290505b9392505050565b5f61337882612d80565b9150613383836130a8565b92506133b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461329d565b905092915050565b5f6133c282612d80565b91506133cd83612d80565b92508282026133db81612d80565b915082820484148315176133f2576133f1613212565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61343082612d80565b915061343b83612d80565b92508261344b5761344a6133f9565b5b828204905092915050565b7f546f6f206c6f77000000000000000000000000000000000000000000000000005f82015250565b5f61348a600783612de8565b915061349582613456565b602082019050919050565b5f6020820190508181035f8301526134b78161347e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061350257607f821691505b602082108103613515576135146134be565b5b50919050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f61354f600f83612de8565b915061355a8261351b565b602082019050919050565b5f6020820190508181035f83015261357c81613543565b9050919050565b5f61358d82612d80565b915061359883612d80565b92508282019050808211156135b0576135af613212565b5b92915050565b7f5a65726f204164647265737300000000000000000000000000000000000000005f82015250565b5f6135ea600c83612de8565b91506135f5826135b6565b602082019050919050565b5f6020820190508181035f830152613617816135de565b9050919050565b5f6040820190506136315f8301856130dc565b61363e6020830184612f9f565b9392505050565b7f54726164696e67206163746976650000000000000000000000000000000000005f82015250565b5f613679600e83612de8565b915061368482613645565b602082019050919050565b5f6020820190508181035f8301526136a68161366d565b9050919050565b7f50616972000000000000000000000000000000000000000000000000000000005f82015250565b5f6136e1600483612de8565b91506136ec826136ad565b602082019050919050565b5f6020820190508181035f83015261370e816136d5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61376f602583612de8565b915061377a82613715565b604082019050919050565b5f6020820190508181035f83015261379c81613763565b9050919050565b7f7a65726f206164647265737300000000000000000000000000000000000000005f82015250565b5f6137d7600c83612de8565b91506137e2826137a3565b602082019050919050565b5f6020820190508181035f830152613804816137cb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613865602683612de8565b91506138708261380b565b604082019050919050565b5f6020820190508181035f83015261389281613859565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6138f3602483612de8565b91506138fe82613899565b604082019050919050565b5f6020820190508181035f830152613920816138e7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613981602283612de8565b915061398c82613927565b604082019050919050565b5f6020820190508181035f8301526139ae81613975565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6139e9601d83612de8565b91506139f4826139b5565b602082019050919050565b5f6020820190508181035f830152613a16816139dd565b9050919050565b7f54726164696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f613a51601283612de8565b9150613a5c82613a1d565b602082019050919050565b5f6020820190508181035f830152613a7e81613a45565b9050919050565b5f613a8f82612d80565b9150613a9a83612d80565b9250828203905081811115613ab257613ab1613212565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b12602583612de8565b9150613b1d82613ab8565b604082019050919050565b5f6020820190508181035f830152613b3f81613b06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613ba0602383612de8565b9150613bab82613b46565b604082019050919050565b5f6020820190508181035f830152613bcd81613b94565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613c2e602683612de8565b9150613c3982613bd4565b604082019050919050565b5f6020820190508181035f830152613c5b81613c22565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e0000000000000000005f82015250565b5f613c96601783612de8565b9150613ca182613c62565b602082019050919050565b5f6020820190508181035f830152613cc381613c8a565b9050919050565b7f4d61782074782065786365656465642e000000000000000000000000000000005f82015250565b5f613cfe601083612de8565b9150613d0982613cca565b602082019050919050565b5f6020820190508181035f830152613d2b81613cf2565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613d66601383612de8565b9150613d7182613d32565b602082019050919050565b5f6020820190508181035f830152613d9381613d5a565b9050919050565b5f81905092915050565b50565b5f613db25f83613d9a565b9150613dbd82613da4565b5f82019050919050565b5f613dd182613da7565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613e4381612f2c565b92915050565b5f60208284031215613e5e57613e5d612d7c565b5b5f613e6b84828501613e35565b91505092915050565b5f819050919050565b5f613e97613e92613e8d84613e74565b612ea7565b612d80565b9050919050565b613ea781613e7d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613edf81612f1b565b82525050565b5f613ef08383613ed6565b60208301905092915050565b5f602082019050919050565b5f613f1282613ead565b613f1c8185613eb7565b9350613f2783613ec7565b805f5b83811015613f57578151613f3e8882613ee5565b9750613f4983613efc565b925050600181019050613f2a565b5085935050505092915050565b5f60a082019050613f775f830188613005565b613f846020830187613e9e565b8181036040830152613f968186613f08565b9050613fa560608301856130dc565b613fb26080830184613005565b969550505050505056fea26469706673582212204489b7a764560449743f7b767a44a2736536d498ccc961419619893f6ebbe35264736f6c63430008140033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000006526970706c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e7919ee6b3a20000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405260043610610233575f3560e01c80638a8c523c1161012d578063c3f70b52116100aa578063e884f2601161006e578063e884f2601461083e578063ea4cfe1214610854578063ea6debd01461087e578063f2fde38b146108a6578063f8b45b05146108ce5761023a565b8063c3f70b521461075a578063c78d0fa014610784578063c876d0b9146107ae578063cc1776d3146107d8578063dd62ed3e146108025761023a565b8063a13d1a2b116100f1578063a13d1a2b14610654578063a457c2d71461067c578063a9059cbb146106b8578063b0249cc6146106f4578063bbc0c742146107305761023a565b80638a8c523c146105845780638d3e6e401461059a5780638da5cb5b146105d657806395d89b41146106005780639e93ad8e1461062a5761023a565b8063313ce567116101bb5780635a90a49e1161017f5780635a90a49e146104b857806370a08231146104f4578063715018a614610530578063751039fc1461054657806377b27d1f1461055c5761023a565b8063313ce567146103d457806339509351146103fe578063452ed4f11461043a5780634a62bb65146104645780634f7041a51461048e5761023a565b80631006ee0c116102025780631006ee0c146102f657806318160ddd1461031e57806318a70ad3146103485780631c499ab01461037057806323b872dd146103985761023a565b80630517d13d1461023e57806306fdde03146102665780630758d92414610290578063095ea7b3146102ba5761023a565b3661023a57005b5f80fd5b348015610249575f80fd5b50610264600480360381019061025f9190612db3565b6108f8565b005b348015610271575f80fd5b5061027a610a70565b6040516102879190612e68565b60405180910390f35b34801561029b575f80fd5b506102a4610b00565b6040516102b19190612f02565b60405180910390f35b3480156102c5575f80fd5b506102e060048036038101906102db9190612f56565b610b25565b6040516102ed9190612fae565b60405180910390f35b348015610301575f80fd5b5061031c60048036038101906103179190612fc7565b610b47565b005b348015610329575f80fd5b50610332610c61565b60405161033f9190613014565b60405180910390f35b348015610353575f80fd5b5061036e6004803603810190610369919061302d565b610c6a565b005b34801561037b575f80fd5b5061039660048036038101906103919190612db3565b610e5b565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190613058565b610fd2565b6040516103cb9190612fae565b60405180910390f35b3480156103df575f80fd5b506103e8611000565b6040516103f591906130c3565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f9190612f56565b611008565b6040516104319190612fae565b60405180910390f35b348015610445575f80fd5b5061044e61103e565b60405161045b91906130eb565b60405180910390f35b34801561046f575f80fd5b50610478611063565b6040516104859190612fae565b60405180910390f35b348015610499575f80fd5b506104a2611076565b6040516104af9190613014565b60405180910390f35b3480156104c3575f80fd5b506104de60048036038101906104d9919061302d565b61107c565b6040516104eb9190612fae565b60405180910390f35b3480156104ff575f80fd5b5061051a6004803603810190610515919061302d565b611099565b6040516105279190613014565b60405180910390f35b34801561053b575f80fd5b506105446110de565b005b348015610551575f80fd5b5061055a611231565b005b348015610567575f80fd5b50610582600480360381019061057d919061312e565b611344565b005b34801561058f575f80fd5b506105986114d9565b005b3480156105a5575f80fd5b506105c060048036038101906105bb919061302d565b6115da565b6040516105cd9190612fae565b60405180910390f35b3480156105e1575f80fd5b506105ea6115f7565b6040516105f791906130eb565b60405180910390f35b34801561060b575f80fd5b5061061461161f565b6040516106219190612e68565b60405180910390f35b348015610635575f80fd5b5061063e6116af565b60405161064b9190613014565b60405180910390f35b34801561065f575f80fd5b5061067a6004803603810190610675919061312e565b6116b5565b005b348015610687575f80fd5b506106a2600480360381019061069d9190612f56565b6118df565b6040516106af9190612fae565b60405180910390f35b3480156106c3575f80fd5b506106de60048036038101906106d99190612f56565b611954565b6040516106eb9190612fae565b60405180910390f35b3480156106ff575f80fd5b5061071a6004803603810190610715919061302d565b611976565b6040516107279190612fae565b60405180910390f35b34801561073b575f80fd5b50610744611993565b6040516107519190612fae565b60405180910390f35b348015610765575f80fd5b5061076e6119a5565b60405161077b9190613014565b60405180910390f35b34801561078f575f80fd5b506107986119ab565b6040516107a59190613014565b60405180910390f35b3480156107b9575f80fd5b506107c26119b1565b6040516107cf9190612fae565b60405180910390f35b3480156107e3575f80fd5b506107ec6119c3565b6040516107f99190613014565b60405180910390f35b34801561080d575f80fd5b506108286004803603810190610823919061316c565b6119c9565b6040516108359190613014565b60405180910390f35b348015610849575f80fd5b50610852611a4b565b005b34801561085f575f80fd5b50610868611afc565b60405161087591906130eb565b60405180910390f35b348015610889575f80fd5b506108a4600480360381019061089f919061302d565b611b21565b005b3480156108b1575f80fd5b506108cc60048036038101906108c7919061302d565b611c68565b005b3480156108d9575f80fd5b506108e2611e2a565b6040516108ef9190613014565b60405180910390f35b610900611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610985906131f4565b60405180910390fd5b610996611000565b600a6109a2919061336e565b6103e860056109af610c61565b6109b991906133b8565b6109c39190613426565b6109cd9190613426565b811015610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a06906134a0565b60405180910390fd5b610a17611000565b600a610a23919061336e565b81610a2e91906133b8565b600a819055507f76a9278644b7300961aa0e7e86f10934585987f1daf1c6ecc971c18376691574600a54604051610a659190613014565b60405180910390a150565b606060038054610a7f906134eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610aab906134eb565b8015610af65780601f10610acd57610100808354040283529160200191610af6565b820191905f5260205f20905b815481529060010190602001808311610ad957829003601f168201915b5050505050905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f80610b2f611e30565b9050610b3c818585611e37565b600191505092915050565b610b4f611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd4906131f4565b60405180910390fd5b81600d819055507f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece0508600d54604051610c159190613014565b60405180910390a180600e819055507fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c97600e54604051610c559190613014565b60405180910390a15050565b5f600254905090565b610c72611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf7906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590613565565b60405180910390fd5b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610e63611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee8906131f4565b60405180910390fd5b610ef9611000565b600a610f05919061336e565b60646001610f11610c61565b610f1b91906133b8565b610f259190613426565b610f2f9190613426565b811015610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f68906134a0565b60405180910390fd5b610f79611000565b600a610f85919061336e565b81610f9091906133b8565b600b819055507f3046ad62de8b70d396246aaed19ff2559ff20df8706520cbde58320766c42762600b54604051610fc79190613014565b60405180910390a150565b5f80610fdc611e30565b9050610fe9858285611ffa565b610ff4858585612085565b60019150509392505050565b5f6012905090565b5f80611012611e30565b905061103381858561102485896119c9565b61102e9190613583565b611e37565b600191505092915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060019054906101000a900460ff1681565b600d5481565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110e6611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611174576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116b906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611239611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be906131f4565b60405180910390fd5b5f601060016101000a81548160ff0219169083151502179055505f60105f6101000a81548160ff021916908315150217905550611302610c61565b600a81905550611310610c61565b600b819055507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c60405160405180910390a1565b61134c611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d1906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f90613600565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d82826040516114cd92919061361e565b60405180910390a15050565b6114e1611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461156f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611566906131f4565b60405180910390fd5b60085f9054906101000a900460ff16156115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b59061368f565b60405180910390fd5b600160085f6101000a81548160ff021916908315150217905550565b6007602052805f5260405f205f915054906101000a900460ff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461162e906134eb565b80601f016020809104026020016040519081016040528092919081815260200182805461165a906134eb565b80156116a55780601f1061167c576101008083540402835291602001916116a5565b820191905f5260205f20905b81548152906001019060200180831161168857829003601f168201915b5050505050905090565b61271081565b6116bd611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461174b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611742906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b090613600565b60405180910390fd5b8061184e5760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361184d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611844906136f7565b60405180910390fd5b5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce82826040516118d392919061361e565b60405180910390a15050565b5f806118e9611e30565b90505f6118f682866119c9565b90508381101561193b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193290613785565b60405180910390fd5b6119488286868403611e37565b60019250505092915050565b5f8061195e611e30565b905061196b818585612085565b600191505092915050565b6009602052805f5260405f205f915054906101000a900460ff1681565b60085f9054906101000a900460ff1681565b600a5481565b60115481565b60105f9054906101000a900460ff1681565b600e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611a53611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ae1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad8906131f4565b60405180910390fd5b5f60105f6101000a81548160ff021916908315150217905550565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b29611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1c906137ed565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c70611e30565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf5906131f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d639061387b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c90613909565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a90613997565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611fed9190613014565b60405180910390a3505050565b5f61200584846119c9565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461207f5781811015612071576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612068906139ff565b60405180910390fd5b61207e8484848403611e37565b5b50505050565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612120575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806121375750601060029054906101000a900460ff165b1561214c576121478383836121e4565b6121df565b60085f9054906101000a900460ff1661219a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219190613a67565b60405180910390fd5b601060019054906101000a900460ff16156121bb576121ba838383612450565b5b6121c68383836128ae565b816121d19190613a85565b90506121de8383836121e4565b5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224990613b28565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b790613bb6565b60405180910390fd5b6122cb838383612a85565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561234e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234590613c44565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124379190613014565b60405180910390a361244a848484612a8a565b50505050565b60105f9054906101000a900460ff16156125d05760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015612508575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156125cf5743600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061258c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258390613cac565b60405180910390fd5b43600f5f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561266d575060075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561271457600a548111156126b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ae90613d14565b60405180910390fd5b600b546126c383611099565b826126ce9190613583565b111561270f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270690613d7c565b60405180910390fd5b6128a9565b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156127b1575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561280057600a548111156127fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127f290613d14565b60405180910390fd5b6128a8565b60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166128a757600b5461285a83611099565b826128659190613583565b11156128a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289d90613d7c565b60405180910390fd5b5b5b5b505050565b5f6011546128bb30611099565b101580156128d65750601060029054906101000a900460ff16155b8015612929575060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561296c576001601060026101000a81548160ff021916908315150217905550612951612a8f565b5f601060026101000a81548160ff0219169083151502179055505b5f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129c457505f600e54115b156129eb57612710600e54846129da91906133b8565b6129e49190613426565b9050612a66565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612a4257505f600d54115b15612a6557612710600d5484612a5891906133b8565b612a629190613426565b90505b5b5f811115612a7a57612a798530836121e4565b5b809150509392505050565b505050565b505050565b5f612a9930611099565b90505f8103612aa85750612b70565b6028601154612ab791906133b8565b811115612ad0576028601154612acd91906133b8565b90505b612ad981612b72565b5f471115612b6e575f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051612b2790613dc7565b5f6040518083038185875af1925050503d805f8114612b61576040519150601f19603f3d011682016040523d82523d5f602084013e612b66565b606091505b505080915050505b505b565b5f600267ffffffffffffffff811115612b8e57612b8d613ddb565b5b604051908082528060200260200182016040528015612bbc5781602001602082028036833780820191505090505b50905030815f81518110612bd357612bd2613e08565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c77573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c9b9190613e49565b81600181518110612caf57612cae613e08565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612d4b959493929190613f64565b5f604051808303815f87803b158015612d62575f80fd5b505af1158015612d74573d5f803e3d5ffd5b505050505050565b5f80fd5b5f819050919050565b612d9281612d80565b8114612d9c575f80fd5b50565b5f81359050612dad81612d89565b92915050565b5f60208284031215612dc857612dc7612d7c565b5b5f612dd584828501612d9f565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612e15578082015181840152602081019050612dfa565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612e3a82612dde565b612e448185612de8565b9350612e54818560208601612df8565b612e5d81612e20565b840191505092915050565b5f6020820190508181035f830152612e808184612e30565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f612eca612ec5612ec084612e88565b612ea7565b612e88565b9050919050565b5f612edb82612eb0565b9050919050565b5f612eec82612ed1565b9050919050565b612efc81612ee2565b82525050565b5f602082019050612f155f830184612ef3565b92915050565b5f612f2582612e88565b9050919050565b612f3581612f1b565b8114612f3f575f80fd5b50565b5f81359050612f5081612f2c565b92915050565b5f8060408385031215612f6c57612f6b612d7c565b5b5f612f7985828601612f42565b9250506020612f8a85828601612d9f565b9150509250929050565b5f8115159050919050565b612fa881612f94565b82525050565b5f602082019050612fc15f830184612f9f565b92915050565b5f8060408385031215612fdd57612fdc612d7c565b5b5f612fea85828601612d9f565b9250506020612ffb85828601612d9f565b9150509250929050565b61300e81612d80565b82525050565b5f6020820190506130275f830184613005565b92915050565b5f6020828403121561304257613041612d7c565b5b5f61304f84828501612f42565b91505092915050565b5f805f6060848603121561306f5761306e612d7c565b5b5f61307c86828701612f42565b935050602061308d86828701612f42565b925050604061309e86828701612d9f565b9150509250925092565b5f60ff82169050919050565b6130bd816130a8565b82525050565b5f6020820190506130d65f8301846130b4565b92915050565b6130e581612f1b565b82525050565b5f6020820190506130fe5f8301846130dc565b92915050565b61310d81612f94565b8114613117575f80fd5b50565b5f8135905061312881613104565b92915050565b5f806040838503121561314457613143612d7c565b5b5f61315185828601612f42565b92505060206131628582860161311a565b9150509250929050565b5f806040838503121561318257613181612d7c565b5b5f61318f85828601612f42565b92505060206131a085828601612f42565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131de602083612de8565b91506131e9826131aa565b602082019050919050565b5f6020820190508181035f83015261320b816131d2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613294578086048111156132705761326f613212565b5b600185161561327f5780820291505b808102905061328d8561323f565b9450613254565b94509492505050565b5f826132ac5760019050613367565b816132b9575f9050613367565b81600181146132cf57600281146132d957613308565b6001915050613367565b60ff8411156132eb576132ea613212565b5b8360020a91508482111561330257613301613212565b5b50613367565b5060208310610133831016604e8410600b841016171561333d5782820a90508381111561333857613337613212565b5b613367565b61334a848484600161324b565b9250905081840481111561336157613360613212565b5b81810290505b9392505050565b5f61337882612d80565b9150613383836130a8565b92506133b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461329d565b905092915050565b5f6133c282612d80565b91506133cd83612d80565b92508282026133db81612d80565b915082820484148315176133f2576133f1613212565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61343082612d80565b915061343b83612d80565b92508261344b5761344a6133f9565b5b828204905092915050565b7f546f6f206c6f77000000000000000000000000000000000000000000000000005f82015250565b5f61348a600783612de8565b915061349582613456565b602082019050919050565b5f6020820190508181035f8301526134b78161347e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061350257607f821691505b602082108103613515576135146134be565b5b50919050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f61354f600f83612de8565b915061355a8261351b565b602082019050919050565b5f6020820190508181035f83015261357c81613543565b9050919050565b5f61358d82612d80565b915061359883612d80565b92508282019050808211156135b0576135af613212565b5b92915050565b7f5a65726f204164647265737300000000000000000000000000000000000000005f82015250565b5f6135ea600c83612de8565b91506135f5826135b6565b602082019050919050565b5f6020820190508181035f830152613617816135de565b9050919050565b5f6040820190506136315f8301856130dc565b61363e6020830184612f9f565b9392505050565b7f54726164696e67206163746976650000000000000000000000000000000000005f82015250565b5f613679600e83612de8565b915061368482613645565b602082019050919050565b5f6020820190508181035f8301526136a68161366d565b9050919050565b7f50616972000000000000000000000000000000000000000000000000000000005f82015250565b5f6136e1600483612de8565b91506136ec826136ad565b602082019050919050565b5f6020820190508181035f83015261370e816136d5565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61376f602583612de8565b915061377a82613715565b604082019050919050565b5f6020820190508181035f83015261379c81613763565b9050919050565b7f7a65726f206164647265737300000000000000000000000000000000000000005f82015250565b5f6137d7600c83612de8565b91506137e2826137a3565b602082019050919050565b5f6020820190508181035f830152613804816137cb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613865602683612de8565b91506138708261380b565b604082019050919050565b5f6020820190508181035f83015261389281613859565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6138f3602483612de8565b91506138fe82613899565b604082019050919050565b5f6020820190508181035f830152613920816138e7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613981602283612de8565b915061398c82613927565b604082019050919050565b5f6020820190508181035f8301526139ae81613975565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6139e9601d83612de8565b91506139f4826139b5565b602082019050919050565b5f6020820190508181035f830152613a16816139dd565b9050919050565b7f54726164696e67206e6f742061637469766500000000000000000000000000005f82015250565b5f613a51601283612de8565b9150613a5c82613a1d565b602082019050919050565b5f6020820190508181035f830152613a7e81613a45565b9050919050565b5f613a8f82612d80565b9150613a9a83612d80565b9250828203905081811115613ab257613ab1613212565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b12602583612de8565b9150613b1d82613ab8565b604082019050919050565b5f6020820190508181035f830152613b3f81613b06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613ba0602383612de8565b9150613bab82613b46565b604082019050919050565b5f6020820190508181035f830152613bcd81613b94565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613c2e602683612de8565b9150613c3982613bd4565b604082019050919050565b5f6020820190508181035f830152613c5b81613c22565b9050919050565b7f5472616e736665722044656c617920656e61626c65642e0000000000000000005f82015250565b5f613c96601783612de8565b9150613ca182613c62565b602082019050919050565b5f6020820190508181035f830152613cc381613c8a565b9050919050565b7f4d61782074782065786365656465642e000000000000000000000000000000005f82015250565b5f613cfe601083612de8565b9150613d0982613cca565b602082019050919050565b5f6020820190508181035f830152613d2b81613cf2565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613d66601383612de8565b9150613d7182613d32565b602082019050919050565b5f6020820190508181035f830152613d9381613d5a565b9050919050565b5f81905092915050565b50565b5f613db25f83613d9a565b9150613dbd82613da4565b5f82019050919050565b5f613dd182613da7565b9150819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613e4381612f2c565b92915050565b5f60208284031215613e5e57613e5d612d7c565b5b5f613e6b84828501613e35565b91505092915050565b5f819050919050565b5f613e97613e92613e8d84613e74565b612ea7565b612d80565b9050919050565b613ea781613e7d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613edf81612f1b565b82525050565b5f613ef08383613ed6565b60208301905092915050565b5f602082019050919050565b5f613f1282613ead565b613f1c8185613eb7565b9350613f2783613ec7565b805f5b83811015613f57578151613f3e8882613ee5565b9750613f4983613efc565b925050600181019050613f2a565b5085935050505092915050565b5f60a082019050613f775f830188613005565b613f846020830187613e9e565b8181036040830152613f968186613f08565b9050613fa560608301856130dc565b613fb26080830184613005565b969550505050505056fea26469706673582212204489b7a764560449743f7b767a44a2736536d498ccc961419619893f6ebbe35264736f6c63430008140033

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

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000006526970706c6500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006e7919ee6b3a20000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Ripple
Arg [1] : _symbol (string): 瑞波

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [3] : 526970706c650000000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : e7919ee6b3a20000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

16678:8000:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23220:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4317:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17389:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6677:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23789:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5446:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22384:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23515:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7458:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5288:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8128:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17361:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17252:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17028:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16721:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5617:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15848:150;;;;;;;;;;;;;:::i;:::-;;24155:231;;;;;;;;;;;;;:::i;:::-;;22618:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24012:135;;;;;;;;;;;;;:::i;:::-;;16775:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15634:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4536:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17425:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22873:339;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8869:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5950:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16867:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16833:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16918:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17322:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17206:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17056:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6206:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24394:98;;;;;;;;;;;;;:::i;:::-;;16987:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24500:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16006:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16954:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23220:287;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23362:10:::1;:8;:10::i;:::-;23358:2;:14;;;;:::i;:::-;23351:4;23347:1;23331:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;23330:43;;;;:::i;:::-;23312:14;:61;;23304:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;23435:10;:8;:10::i;:::-;23431:2;:14;;;;:::i;:::-;23413;:33;;;;:::i;:::-;23396:14;:50;;;;23462:37;23484:14;;23462:37;;;;;;:::i;:::-;;;;;;;;23220:287:::0;:::o;4317:100::-;4371:13;4404:5;4397:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4317:100;:::o;17389:27::-;;;;;;;;;;;;;:::o;6677:201::-;6760:4;6777:13;6793:12;:10;:12::i;:::-;6777:28;;6816:32;6825:5;6832:7;6841:6;6816:8;:32::i;:::-;6866:4;6859:11;;;6677:201;;;;:::o;23789:215::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23884:7:::1;23875:6;:16;;;;23907:21;23921:6;;23907:21;;;;;;:::i;:::-;;;;;;;;23949:8;23939:7;:18;;;;23973:23;23988:7;;23973:23;;;;;;:::i;:::-;;;;;;;;23789:215:::0;;:::o;5446:108::-;5507:7;5534:12;;5527:19;;5446:108;:::o;22384:226::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22480:1:::1;22463:19;;:5;:19;;::::0;22455:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22522:5;22513:6;;:14;;;;;;;;;;;;;;;;;;22557:4;22538:9;:16;22548:5;22538:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;22598:4;22572:16;:23;22589:5;22572:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;22384:226:::0;:::o;23515:266::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23651:10:::1;:8;:10::i;:::-;23647:2;:14;;;;:::i;:::-;23641:3;23637:1;23621:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:23;;;;:::i;:::-;23620:42;;;;:::i;:::-;23602:14;:60;;23594:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;23719:10;:8;:10::i;:::-;23715:2;:14;;;;:::i;:::-;23697;:33;;;;:::i;:::-;23685:9;:45;;;;23746:27;23763:9;;23746:27;;;;;;:::i;:::-;;;;;;;;23515:266:::0;:::o;7458:261::-;7555:4;7572:15;7590:12;:10;:12::i;:::-;7572:30;;7613:38;7629:4;7635:7;7644:6;7613:15;:38::i;:::-;7662:27;7672:4;7678:2;7682:6;7662:9;:27::i;:::-;7707:4;7700:11;;;7458:261;;;;;:::o;5288:93::-;5346:5;5371:2;5364:9;;5288:93;:::o;8128:238::-;8216:4;8233:13;8249:12;:10;:12::i;:::-;8233:28;;8272:64;8281:5;8288:7;8325:10;8297:25;8307:5;8314:7;8297:9;:25::i;:::-;:38;;;;:::i;:::-;8272:8;:64::i;:::-;8354:4;8347:11;;;8128:238;;;;:::o;17361:21::-;;;;;;;;;;;;;:::o;17252:33::-;;;;;;;;;;;;;:::o;17028:21::-;;;;:::o;16721:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;5617:127::-;5691:7;5718:9;:18;5728:7;5718:18;;;;;;;;;;;;;;;;5711:25;;5617:127;;;:::o;15848:150::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15957:1:::1;15920:40;;15941:6;;;;;;;;;;;15920:40;;;;;;;;;;;;15988:1;15971:6;;:19;;;;;;;;;;;;;;;;;;15848:150::o:0;24155:231::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24226:5:::1;24209:14;;:22;;;;;;;;;;;;;;;;;;24265:5;24242:20;;:28;;;;;;;;;;;;;;;;;;24298:13;:11;:13::i;:::-;24281:14;:30;;;;24334:13;:11;:13::i;:::-;24322:9;:25;;;;24363:15;;;;;;;;;;24155:231::o:0;22618:247::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22737:1:::1;22717:22;;:8;:22;;::::0;22709:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22794:9;22767:14;:24;22782:8;22767:24;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;22819:38;22837:8;22847:9;22819:38;;;;;;;:::i;:::-;;;;;;;;22618:247:::0;;:::o;24012:135::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24076:13:::1;;;;;;;;;;;24075:14;24067:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;24135:4;24119:13;;:20;;;;;;;;;;;;;;;;;;24012:135::o:0;16775:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;15634:79::-;15672:7;15699:6;;;;;;;;;;;15692:13;;15634:79;:::o;4536:104::-;4592:13;4625:7;4618:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4536:104;:::o;17425:43::-;17463:5;17425:43;:::o;22873:339::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22994:1:::1;22974:22;;:8;:22;;::::0;22966:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23028:9;23024:76;;23073:6;;;;;;;;;;;23061:18;;:8;:18;;::::0;23053:35:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23024:76;23139:9;23110:16;:26;23127:8;23110:26;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;23164:40;23184:8;23194:9;23164:40;;;;;;;:::i;:::-;;;;;;;;22873:339:::0;;:::o;8869:436::-;8962:4;8979:13;8995:12;:10;:12::i;:::-;8979:28;;9018:24;9045:25;9055:5;9062:7;9045:9;:25::i;:::-;9018:52;;9109:15;9089:16;:35;;9081:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9202:60;9211:5;9218:7;9246:15;9227:16;:34;9202:8;:60::i;:::-;9293:4;9286:11;;;;8869:436;;;;:::o;5950:193::-;6029:4;6046:13;6062:12;:10;:12::i;:::-;6046:28;;6085;6095:5;6102:2;6106:6;6085:9;:28::i;:::-;6131:4;6124:11;;;5950:193;;;;:::o;16867:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;16833:25::-;;;;;;;;;;;;;:::o;16918:29::-;;;;:::o;17322:30::-;;;;:::o;17206:39::-;;;;;;;;;;;;;:::o;17056:22::-;;;;:::o;6206:151::-;6295:7;6322:11;:18;6334:5;6322:18;;;;;;;;;;;;;;;:27;6341:7;6322:27;;;;;;;;;;;;;;;;6315:34;;6206:151;;;;:::o;24394:98::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24479:5:::1;24456:20;;:28;;;;;;;;;;;;;;;;;;24394:98::o:0;16987:32::-;;;;;;;;;;;;;:::o;24500:175::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24609:1:::1;24589:22;;:8;:22;;::::0;24581:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;24659:8;24639:17;;:28;;;;;;;;;;;;;;;;;;24500:175:::0;:::o;16006:244::-;15771:12;:10;:12::i;:::-;15761:22;;:6;;;;;;;;;;;:22;;;15753:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16115:1:::1;16095:22;;:8;:22;;::::0;16087:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;16205:8;16176:38;;16197:6;;;;;;;;;;;16176:38;;;;;;;;;;;;16234:8;16225:6;;:17;;;;;;;;;;;;;;;;;;16006:244:::0;:::o;16954:24::-;;;;:::o;223:98::-;276:7;303:10;296:17;;223:98;:::o;12862:346::-;12981:1;12964:19;;:5;:19;;;12956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13062:1;13043:21;;:7;:21;;;13035:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13146:6;13116:11;:18;13128:5;13116:18;;;;;;;;;;;;;;;:27;13135:7;13116:27;;;;;;;;;;;;;;;:36;;;;13184:7;13168:32;;13177:5;13168:32;;;13193:6;13168:32;;;;;;:::i;:::-;;;;;;;;12862:346;;;:::o;13499:419::-;13600:24;13627:25;13637:5;13644:7;13627:9;:25::i;:::-;13600:52;;13687:17;13667:16;:37;13663:248;;13749:6;13729:16;:26;;13721:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13833:51;13842:5;13849:7;13877:6;13858:16;:25;13833:8;:51::i;:::-;13663:248;13589:329;13499:419;;;:::o;19288:523::-;19433:14;:20;19448:4;19433:20;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;19457:14;:18;19472:2;19457:18;;;;;;;;;;;;;;;;;;;;;;;;;19433:42;:54;;;;19479:8;;;;;;;;;;;19433:54;19430:137;;;19503:31;19519:4;19524:2;19527:6;19503:15;:31::i;:::-;19549:7;;19430:137;19587:13;;;;;;;;;;;19579:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;19639:14;;;;;;;;;;;19636:74;;;19669:29;19681:4;19687:2;19691:6;19669:11;:29::i;:::-;19636:74;19732:27;19742:4;19748:2;19752:6;19732:9;:27::i;:::-;19722:37;;;;;:::i;:::-;;;19772:31;19788:4;19793:2;19796:6;19772:15;:31::i;:::-;19288:523;;;;:::o;9775:806::-;9888:1;9872:18;;:4;:18;;;9864:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9965:1;9951:16;;:2;:16;;;9943:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10020:38;10041:4;10047:2;10051:6;10020:20;:38::i;:::-;10071:19;10093:9;:15;10103:4;10093:15;;;;;;;;;;;;;;;;10071:37;;10142:6;10127:11;:21;;10119:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10259:6;10245:11;:20;10227:9;:15;10237:4;10227:15;;;;;;;;;;;;;;;:38;;;;10462:6;10445:9;:13;10455:2;10445:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;10512:2;10497:26;;10506:4;10497:26;;;10516:6;10497:26;;;;;;:::i;:::-;;;;;;;;10536:37;10556:4;10562:2;10566:6;10536:19;:37::i;:::-;9853:728;9775:806;;;:::o;19819:908::-;19906:20;;;;;;;;;;;19902:288;;;19960:9;;;;;;;;;;;19946:24;;:2;:24;;;;:42;;;;;19975:9;:13;19985:2;19975:13;;;;;;;;;;;;;;;;;;;;;;;;;19974:14;19946:42;19942:237;;;20054:12;20016:24;:35;20041:9;20016:35;;;;;;;;;;;;;;;;:50;20008:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;20151:12;20113:24;:35;20138:9;20113:35;;;;;;;;;;;;;;;:50;;;;19942:237;19902:288;20222:9;:15;20232:4;20222:15;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;20242:16;:20;20259:2;20242:20;;;;;;;;;;;;;;;;;;;;;;;;;20241:21;20222:40;20218:502;;;20297:14;;20287:6;:24;;20279:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;20381:9;;20364:13;20374:2;20364:9;:13::i;:::-;20355:6;:22;;;;:::i;:::-;:35;;20347:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20218:502;;;20463:9;:13;20473:2;20463:13;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;20481:16;:22;20498:4;20481:22;;;;;;;;;;;;;;;;;;;;;;;;;20480:23;20463:40;20459:261;;;20538:14;;20528:6;:24;;20520:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;20459:261;;;20604:16;:20;20621:2;20604:20;;;;;;;;;;;;;;;;;;;;;;;;;20600:120;;20675:9;;20658:13;20668:2;20658:9;:13::i;:::-;20649:6;:22;;;;:::i;:::-;:35;;20641:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20600:120;20459:261;20218:502;19819:908;;;:::o;20735:712::-;20814:7;20864:15;;20836:24;20854:4;20836:9;:24::i;:::-;:43;;:56;;;;;20884:8;;;;;;;;;;;20883:9;20836:56;:76;;;;;20897:9;:15;20907:4;20897:15;;;;;;;;;;;;;;;;;;;;;;;;;20896:16;20836:76;20833:179;;;20940:4;20929:8;;:15;;;;;;;;;;;;;;;;;;20959:10;:8;:10::i;:::-;20995:5;20984:8;;:16;;;;;;;;;;;;;;;;;;20833:179;21032:11;21084:9;:13;21094:2;21084:13;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;;21111:1;21101:7;;:11;21084:28;21080:226;;;17463:5;21143:7;;21134:6;:16;;;;:::i;:::-;:30;;;;:::i;:::-;21128:36;;21080:226;;;21213:9;:15;21223:4;21213:15;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;;21241:1;21232:6;;:10;21213:29;21210:96;;;17463:5;21274:6;;21265;:15;;;;:::i;:::-;:29;;;;:::i;:::-;21259:35;;21210:96;21080:226;21335:1;21329:3;:7;21326:83;;;21356:41;21372:4;21386;21393:3;21356:15;:41::i;:::-;21326:83;21436:3;21429:10;;;20735:712;;;;;:::o;14518:91::-;;;;:::o;15213:90::-;;;;:::o;21847:503::-;21888:23;21914:24;21932:4;21914:9;:24::i;:::-;21888:50;;21981:1;21962:15;:20;21959:34;;21985:7;;;21959:34;22044:2;22026:15;;:20;;;;:::i;:::-;22008:15;:38;22005:107;;;22098:2;22080:15;;:20;;;;:::i;:::-;22062:38;;22005:107;22132:33;22149:15;22132:16;:33::i;:::-;22217:1;22193:21;:25;22190:153;;;22234:12;22275:17;;;;;;;;;;;:22;;22305:21;22275:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22261:70;;;;;22219:124;22190:153;21875:475;21847:503;:::o;21455:384::-;21520:21;21558:1;21544:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21520:40;;21589:4;21571;21576:1;21571:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21615:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21605:4;21610:1;21605:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;21644:9;;;;;;;;;;;:60;;;21719:8;21742:1;21758:4;21785;21805:15;21644:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21507:332;21455:384;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:60::-;2527:3;2548:5;2541:12;;2499:60;;;:::o;2565:142::-;2615:9;2648:53;2666:34;2675:24;2693:5;2675:24;:::i;:::-;2666:34;:::i;:::-;2648:53;:::i;:::-;2635:66;;2565:142;;;:::o;2713:126::-;2763:9;2796:37;2827:5;2796:37;:::i;:::-;2783:50;;2713:126;;;:::o;2845:144::-;2913:9;2946:37;2977:5;2946:37;:::i;:::-;2933:50;;2845:144;;;:::o;2995:167::-;3100:55;3149:5;3100:55;:::i;:::-;3095:3;3088:68;2995:167;;:::o;3168:258::-;3279:4;3317:2;3306:9;3302:18;3294:26;;3330:89;3416:1;3405:9;3401:17;3392:6;3330:89;:::i;:::-;3168:258;;;;:::o;3432:96::-;3469:7;3498:24;3516:5;3498:24;:::i;:::-;3487:35;;3432:96;;;:::o;3534:122::-;3607:24;3625:5;3607:24;:::i;:::-;3600:5;3597:35;3587:63;;3646:1;3643;3636:12;3587:63;3534:122;:::o;3662:139::-;3708:5;3746:6;3733:20;3724:29;;3762:33;3789:5;3762:33;:::i;:::-;3662:139;;;;:::o;3807:474::-;3875:6;3883;3932:2;3920:9;3911:7;3907:23;3903:32;3900:119;;;3938:79;;:::i;:::-;3900:119;4058:1;4083:53;4128:7;4119:6;4108:9;4104:22;4083:53;:::i;:::-;4073:63;;4029:117;4185:2;4211:53;4256:7;4247:6;4236:9;4232:22;4211:53;:::i;:::-;4201:63;;4156:118;3807:474;;;;;:::o;4287:90::-;4321:7;4364:5;4357:13;4350:21;4339:32;;4287:90;;;:::o;4383:109::-;4464:21;4479:5;4464:21;:::i;:::-;4459:3;4452:34;4383:109;;:::o;4498:210::-;4585:4;4623:2;4612:9;4608:18;4600:26;;4636:65;4698:1;4687:9;4683:17;4674:6;4636:65;:::i;:::-;4498:210;;;;:::o;4714:474::-;4782:6;4790;4839:2;4827:9;4818:7;4814:23;4810:32;4807:119;;;4845:79;;:::i;:::-;4807:119;4965:1;4990:53;5035:7;5026:6;5015:9;5011:22;4990:53;:::i;:::-;4980:63;;4936:117;5092:2;5118:53;5163:7;5154:6;5143:9;5139:22;5118:53;:::i;:::-;5108:63;;5063:118;4714:474;;;;;:::o;5194:118::-;5281:24;5299:5;5281:24;:::i;:::-;5276:3;5269:37;5194:118;;:::o;5318:222::-;5411:4;5449:2;5438:9;5434:18;5426:26;;5462:71;5530:1;5519:9;5515:17;5506:6;5462:71;:::i;:::-;5318:222;;;;:::o;5546:329::-;5605:6;5654:2;5642:9;5633:7;5629:23;5625:32;5622:119;;;5660:79;;:::i;:::-;5622:119;5780:1;5805:53;5850:7;5841:6;5830:9;5826:22;5805:53;:::i;:::-;5795:63;;5751:117;5546:329;;;;:::o;5881:619::-;5958:6;5966;5974;6023:2;6011:9;6002:7;5998:23;5994:32;5991:119;;;6029:79;;:::i;:::-;5991:119;6149:1;6174:53;6219:7;6210:6;6199:9;6195:22;6174:53;:::i;:::-;6164:63;;6120:117;6276:2;6302:53;6347:7;6338:6;6327:9;6323:22;6302:53;:::i;:::-;6292:63;;6247:118;6404:2;6430:53;6475:7;6466:6;6455:9;6451:22;6430:53;:::i;:::-;6420:63;;6375:118;5881:619;;;;;:::o;6506:86::-;6541:7;6581:4;6574:5;6570:16;6559:27;;6506:86;;;:::o;6598:112::-;6681:22;6697:5;6681:22;:::i;:::-;6676:3;6669:35;6598:112;;:::o;6716:214::-;6805:4;6843:2;6832:9;6828:18;6820:26;;6856:67;6920:1;6909:9;6905:17;6896:6;6856:67;:::i;:::-;6716:214;;;;:::o;6936:118::-;7023:24;7041:5;7023:24;:::i;:::-;7018:3;7011:37;6936:118;;:::o;7060:222::-;7153:4;7191:2;7180:9;7176:18;7168:26;;7204:71;7272:1;7261:9;7257:17;7248:6;7204:71;:::i;:::-;7060:222;;;;:::o;7288:116::-;7358:21;7373:5;7358:21;:::i;:::-;7351:5;7348:32;7338:60;;7394:1;7391;7384:12;7338:60;7288:116;:::o;7410:133::-;7453:5;7491:6;7478:20;7469:29;;7507:30;7531:5;7507:30;:::i;:::-;7410:133;;;;:::o;7549:468::-;7614:6;7622;7671:2;7659:9;7650:7;7646:23;7642:32;7639:119;;;7677:79;;:::i;:::-;7639:119;7797:1;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7768:117;7924:2;7950:50;7992:7;7983:6;7972:9;7968:22;7950:50;:::i;:::-;7940:60;;7895:115;7549:468;;;;;:::o;8023:474::-;8091:6;8099;8148:2;8136:9;8127:7;8123:23;8119:32;8116:119;;;8154:79;;:::i;:::-;8116:119;8274:1;8299:53;8344:7;8335:6;8324:9;8320:22;8299:53;:::i;:::-;8289:63;;8245:117;8401:2;8427:53;8472:7;8463:6;8452:9;8448:22;8427:53;:::i;:::-;8417:63;;8372:118;8023:474;;;;;:::o;8503:182::-;8643:34;8639:1;8631:6;8627:14;8620:58;8503:182;:::o;8691:366::-;8833:3;8854:67;8918:2;8913:3;8854:67;:::i;:::-;8847:74;;8930:93;9019:3;8930:93;:::i;:::-;9048:2;9043:3;9039:12;9032:19;;8691:366;;;:::o;9063:419::-;9229:4;9267:2;9256:9;9252:18;9244:26;;9316:9;9310:4;9306:20;9302:1;9291:9;9287:17;9280:47;9344:131;9470:4;9344:131;:::i;:::-;9336:139;;9063:419;;;:::o;9488:180::-;9536:77;9533:1;9526:88;9633:4;9630:1;9623:15;9657:4;9654:1;9647:15;9674:102;9716:8;9763:5;9760:1;9756:13;9735:34;;9674:102;;;:::o;9782:848::-;9843:5;9850:4;9874:6;9865:15;;9898:5;9889:14;;9912:712;9933:1;9923:8;9920:15;9912:712;;;10028:4;10023:3;10019:14;10013:4;10010:24;10007:50;;;10037:18;;:::i;:::-;10007:50;10087:1;10077:8;10073:16;10070:451;;;10502:4;10495:5;10491:16;10482:25;;10070:451;10552:4;10546;10542:15;10534:23;;10582:32;10605:8;10582:32;:::i;:::-;10570:44;;9912:712;;;9782:848;;;;;;;:::o;10636:1073::-;10690:5;10881:8;10871:40;;10902:1;10893:10;;10904:5;;10871:40;10930:4;10920:36;;10947:1;10938:10;;10949:5;;10920:36;11016:4;11064:1;11059:27;;;;11100:1;11095:191;;;;11009:277;;11059:27;11077:1;11068:10;;11079:5;;;11095:191;11140:3;11130:8;11127:17;11124:43;;;11147:18;;:::i;:::-;11124:43;11196:8;11193:1;11189:16;11180:25;;11231:3;11224:5;11221:14;11218:40;;;11238:18;;:::i;:::-;11218:40;11271:5;;;11009:277;;11395:2;11385:8;11382:16;11376:3;11370:4;11367:13;11363:36;11345:2;11335:8;11332:16;11327:2;11321:4;11318:12;11314:35;11298:111;11295:246;;;11451:8;11445:4;11441:19;11432:28;;11486:3;11479:5;11476:14;11473:40;;;11493:18;;:::i;:::-;11473:40;11526:5;;11295:246;11566:42;11604:3;11594:8;11588:4;11585:1;11566:42;:::i;:::-;11551:57;;;;11640:4;11635:3;11631:14;11624:5;11621:25;11618:51;;;11649:18;;:::i;:::-;11618:51;11698:4;11691:5;11687:16;11678:25;;10636:1073;;;;;;:::o;11715:281::-;11773:5;11797:23;11815:4;11797:23;:::i;:::-;11789:31;;11841:25;11857:8;11841:25;:::i;:::-;11829:37;;11885:104;11922:66;11912:8;11906:4;11885:104;:::i;:::-;11876:113;;11715:281;;;;:::o;12002:410::-;12042:7;12065:20;12083:1;12065:20;:::i;:::-;12060:25;;12099:20;12117:1;12099:20;:::i;:::-;12094:25;;12154:1;12151;12147:9;12176:30;12194:11;12176:30;:::i;:::-;12165:41;;12355:1;12346:7;12342:15;12339:1;12336:22;12316:1;12309:9;12289:83;12266:139;;12385:18;;:::i;:::-;12266:139;12050:362;12002:410;;;;:::o;12418:180::-;12466:77;12463:1;12456:88;12563:4;12560:1;12553:15;12587:4;12584:1;12577:15;12604:185;12644:1;12661:20;12679:1;12661:20;:::i;:::-;12656:25;;12695:20;12713:1;12695:20;:::i;:::-;12690:25;;12734:1;12724:35;;12739:18;;:::i;:::-;12724:35;12781:1;12778;12774:9;12769:14;;12604:185;;;;:::o;12795:157::-;12935:9;12931:1;12923:6;12919:14;12912:33;12795:157;:::o;12958:365::-;13100:3;13121:66;13185:1;13180:3;13121:66;:::i;:::-;13114:73;;13196:93;13285:3;13196:93;:::i;:::-;13314:2;13309:3;13305:12;13298:19;;12958:365;;;:::o;13329:419::-;13495:4;13533:2;13522:9;13518:18;13510:26;;13582:9;13576:4;13572:20;13568:1;13557:9;13553:17;13546:47;13610:131;13736:4;13610:131;:::i;:::-;13602:139;;13329:419;;;:::o;13754:180::-;13802:77;13799:1;13792:88;13899:4;13896:1;13889:15;13923:4;13920:1;13913:15;13940:320;13984:6;14021:1;14015:4;14011:12;14001:22;;14068:1;14062:4;14058:12;14089:18;14079:81;;14145:4;14137:6;14133:17;14123:27;;14079:81;14207:2;14199:6;14196:14;14176:18;14173:38;14170:84;;14226:18;;:::i;:::-;14170:84;13991:269;13940:320;;;:::o;14266:165::-;14406:17;14402:1;14394:6;14390:14;14383:41;14266:165;:::o;14437:366::-;14579:3;14600:67;14664:2;14659:3;14600:67;:::i;:::-;14593:74;;14676:93;14765:3;14676:93;:::i;:::-;14794:2;14789:3;14785:12;14778:19;;14437:366;;;:::o;14809:419::-;14975:4;15013:2;15002:9;14998:18;14990:26;;15062:9;15056:4;15052:20;15048:1;15037:9;15033:17;15026:47;15090:131;15216:4;15090:131;:::i;:::-;15082:139;;14809:419;;;:::o;15234:191::-;15274:3;15293:20;15311:1;15293:20;:::i;:::-;15288:25;;15327:20;15345:1;15327:20;:::i;:::-;15322:25;;15370:1;15367;15363:9;15356:16;;15391:3;15388:1;15385:10;15382:36;;;15398:18;;:::i;:::-;15382:36;15234:191;;;;:::o;15431:162::-;15571:14;15567:1;15559:6;15555:14;15548:38;15431:162;:::o;15599:366::-;15741:3;15762:67;15826:2;15821:3;15762:67;:::i;:::-;15755:74;;15838:93;15927:3;15838:93;:::i;:::-;15956:2;15951:3;15947:12;15940:19;;15599:366;;;:::o;15971:419::-;16137:4;16175:2;16164:9;16160:18;16152:26;;16224:9;16218:4;16214:20;16210:1;16199:9;16195:17;16188:47;16252:131;16378:4;16252:131;:::i;:::-;16244:139;;15971:419;;;:::o;16396:320::-;16511:4;16549:2;16538:9;16534:18;16526:26;;16562:71;16630:1;16619:9;16615:17;16606:6;16562:71;:::i;:::-;16643:66;16705:2;16694:9;16690:18;16681:6;16643:66;:::i;:::-;16396:320;;;;;:::o;16722:164::-;16862:16;16858:1;16850:6;16846:14;16839:40;16722:164;:::o;16892:366::-;17034:3;17055:67;17119:2;17114:3;17055:67;:::i;:::-;17048:74;;17131:93;17220:3;17131:93;:::i;:::-;17249:2;17244:3;17240:12;17233:19;;16892:366;;;:::o;17264:419::-;17430:4;17468:2;17457:9;17453:18;17445:26;;17517:9;17511:4;17507:20;17503:1;17492:9;17488:17;17481:47;17545:131;17671:4;17545:131;:::i;:::-;17537:139;;17264:419;;;:::o;17689:154::-;17829:6;17825:1;17817:6;17813:14;17806:30;17689:154;:::o;17849:365::-;17991:3;18012:66;18076:1;18071:3;18012:66;:::i;:::-;18005:73;;18087:93;18176:3;18087:93;:::i;:::-;18205:2;18200:3;18196:12;18189:19;;17849:365;;;:::o;18220:419::-;18386:4;18424:2;18413:9;18409:18;18401:26;;18473:9;18467:4;18463:20;18459:1;18448:9;18444:17;18437:47;18501:131;18627:4;18501:131;:::i;:::-;18493:139;;18220:419;;;:::o;18645:224::-;18785:34;18781:1;18773:6;18769:14;18762:58;18854:7;18849:2;18841:6;18837:15;18830:32;18645:224;:::o;18875:366::-;19017:3;19038:67;19102:2;19097:3;19038:67;:::i;:::-;19031:74;;19114:93;19203:3;19114:93;:::i;:::-;19232:2;19227:3;19223:12;19216:19;;18875:366;;;:::o;19247:419::-;19413:4;19451:2;19440:9;19436:18;19428:26;;19500:9;19494:4;19490:20;19486:1;19475:9;19471:17;19464:47;19528:131;19654:4;19528:131;:::i;:::-;19520:139;;19247:419;;;:::o;19672:162::-;19812:14;19808:1;19800:6;19796:14;19789:38;19672:162;:::o;19840:366::-;19982:3;20003:67;20067:2;20062:3;20003:67;:::i;:::-;19996:74;;20079:93;20168:3;20079:93;:::i;:::-;20197:2;20192:3;20188:12;20181:19;;19840:366;;;:::o;20212:419::-;20378:4;20416:2;20405:9;20401:18;20393:26;;20465:9;20459:4;20455:20;20451:1;20440:9;20436:17;20429:47;20493:131;20619:4;20493:131;:::i;:::-;20485:139;;20212:419;;;:::o;20637:225::-;20777:34;20773:1;20765:6;20761:14;20754:58;20846:8;20841:2;20833:6;20829:15;20822:33;20637:225;:::o;20868:366::-;21010:3;21031:67;21095:2;21090:3;21031:67;:::i;:::-;21024:74;;21107:93;21196:3;21107:93;:::i;:::-;21225:2;21220:3;21216:12;21209:19;;20868:366;;;:::o;21240:419::-;21406:4;21444:2;21433:9;21429:18;21421:26;;21493:9;21487:4;21483:20;21479:1;21468:9;21464:17;21457:47;21521:131;21647:4;21521:131;:::i;:::-;21513:139;;21240:419;;;:::o;21665:223::-;21805:34;21801:1;21793:6;21789:14;21782:58;21874:6;21869:2;21861:6;21857:15;21850:31;21665:223;:::o;21894:366::-;22036:3;22057:67;22121:2;22116:3;22057:67;:::i;:::-;22050:74;;22133:93;22222:3;22133:93;:::i;:::-;22251:2;22246:3;22242:12;22235:19;;21894:366;;;:::o;22266:419::-;22432:4;22470:2;22459:9;22455:18;22447:26;;22519:9;22513:4;22509:20;22505:1;22494:9;22490:17;22483:47;22547:131;22673:4;22547:131;:::i;:::-;22539:139;;22266:419;;;:::o;22691:221::-;22831:34;22827:1;22819:6;22815:14;22808:58;22900:4;22895:2;22887:6;22883:15;22876:29;22691:221;:::o;22918:366::-;23060:3;23081:67;23145:2;23140:3;23081:67;:::i;:::-;23074:74;;23157:93;23246:3;23157:93;:::i;:::-;23275:2;23270:3;23266:12;23259:19;;22918:366;;;:::o;23290:419::-;23456:4;23494:2;23483:9;23479:18;23471:26;;23543:9;23537:4;23533:20;23529:1;23518:9;23514:17;23507:47;23571:131;23697:4;23571:131;:::i;:::-;23563:139;;23290:419;;;:::o;23715:179::-;23855:31;23851:1;23843:6;23839:14;23832:55;23715:179;:::o;23900:366::-;24042:3;24063:67;24127:2;24122:3;24063:67;:::i;:::-;24056:74;;24139:93;24228:3;24139:93;:::i;:::-;24257:2;24252:3;24248:12;24241:19;;23900:366;;;:::o;24272:419::-;24438:4;24476:2;24465:9;24461:18;24453:26;;24525:9;24519:4;24515:20;24511:1;24500:9;24496:17;24489:47;24553:131;24679:4;24553:131;:::i;:::-;24545:139;;24272:419;;;:::o;24697:168::-;24837:20;24833:1;24825:6;24821:14;24814:44;24697:168;:::o;24871:366::-;25013:3;25034:67;25098:2;25093:3;25034:67;:::i;:::-;25027:74;;25110:93;25199:3;25110:93;:::i;:::-;25228:2;25223:3;25219:12;25212:19;;24871:366;;;:::o;25243:419::-;25409:4;25447:2;25436:9;25432:18;25424:26;;25496:9;25490:4;25486:20;25482:1;25471:9;25467:17;25460:47;25524:131;25650:4;25524:131;:::i;:::-;25516:139;;25243:419;;;:::o;25668:194::-;25708:4;25728:20;25746:1;25728:20;:::i;:::-;25723:25;;25762:20;25780:1;25762:20;:::i;:::-;25757:25;;25806:1;25803;25799:9;25791:17;;25830:1;25824:4;25821:11;25818:37;;;25835:18;;:::i;:::-;25818:37;25668:194;;;;:::o;25868:224::-;26008:34;26004:1;25996:6;25992:14;25985:58;26077:7;26072:2;26064:6;26060:15;26053:32;25868:224;:::o;26098:366::-;26240:3;26261:67;26325:2;26320:3;26261:67;:::i;:::-;26254:74;;26337:93;26426:3;26337:93;:::i;:::-;26455:2;26450:3;26446:12;26439:19;;26098:366;;;:::o;26470:419::-;26636:4;26674:2;26663:9;26659:18;26651:26;;26723:9;26717:4;26713:20;26709:1;26698:9;26694:17;26687:47;26751:131;26877:4;26751:131;:::i;:::-;26743:139;;26470:419;;;:::o;26895:222::-;27035:34;27031:1;27023:6;27019:14;27012:58;27104:5;27099:2;27091:6;27087:15;27080:30;26895:222;:::o;27123:366::-;27265:3;27286:67;27350:2;27345:3;27286:67;:::i;:::-;27279:74;;27362:93;27451:3;27362:93;:::i;:::-;27480:2;27475:3;27471:12;27464:19;;27123:366;;;:::o;27495:419::-;27661:4;27699:2;27688:9;27684:18;27676:26;;27748:9;27742:4;27738:20;27734:1;27723:9;27719:17;27712:47;27776:131;27902:4;27776:131;:::i;:::-;27768:139;;27495:419;;;:::o;27920:225::-;28060:34;28056:1;28048:6;28044:14;28037:58;28129:8;28124:2;28116:6;28112:15;28105:33;27920:225;:::o;28151:366::-;28293:3;28314:67;28378:2;28373:3;28314:67;:::i;:::-;28307:74;;28390:93;28479:3;28390:93;:::i;:::-;28508:2;28503:3;28499:12;28492:19;;28151:366;;;:::o;28523:419::-;28689:4;28727:2;28716:9;28712:18;28704:26;;28776:9;28770:4;28766:20;28762:1;28751:9;28747:17;28740:47;28804:131;28930:4;28804:131;:::i;:::-;28796:139;;28523:419;;;:::o;28948:173::-;29088:25;29084:1;29076:6;29072:14;29065:49;28948:173;:::o;29127:366::-;29269:3;29290:67;29354:2;29349:3;29290:67;:::i;:::-;29283:74;;29366:93;29455:3;29366:93;:::i;:::-;29484:2;29479:3;29475:12;29468:19;;29127:366;;;:::o;29499:419::-;29665:4;29703:2;29692:9;29688:18;29680:26;;29752:9;29746:4;29742:20;29738:1;29727:9;29723:17;29716:47;29780:131;29906:4;29780:131;:::i;:::-;29772:139;;29499:419;;;:::o;29924:166::-;30064:18;30060:1;30052:6;30048:14;30041:42;29924:166;:::o;30096:366::-;30238:3;30259:67;30323:2;30318:3;30259:67;:::i;:::-;30252:74;;30335:93;30424:3;30335:93;:::i;:::-;30453:2;30448:3;30444:12;30437:19;;30096:366;;;:::o;30468:419::-;30634:4;30672:2;30661:9;30657:18;30649:26;;30721:9;30715:4;30711:20;30707:1;30696:9;30692:17;30685:47;30749:131;30875:4;30749:131;:::i;:::-;30741:139;;30468:419;;;:::o;30893:169::-;31033:21;31029:1;31021:6;31017:14;31010:45;30893:169;:::o;31068:366::-;31210:3;31231:67;31295:2;31290:3;31231:67;:::i;:::-;31224:74;;31307:93;31396:3;31307:93;:::i;:::-;31425:2;31420:3;31416:12;31409:19;;31068:366;;;:::o;31440:419::-;31606:4;31644:2;31633:9;31629:18;31621:26;;31693:9;31687:4;31683:20;31679:1;31668:9;31664:17;31657:47;31721:131;31847:4;31721:131;:::i;:::-;31713:139;;31440:419;;;:::o;31865:147::-;31966:11;32003:3;31988:18;;31865:147;;;;:::o;32018:114::-;;:::o;32138:398::-;32297:3;32318:83;32399:1;32394:3;32318:83;:::i;:::-;32311:90;;32410:93;32499:3;32410:93;:::i;:::-;32528:1;32523:3;32519:11;32512:18;;32138:398;;;:::o;32542:379::-;32726:3;32748:147;32891:3;32748:147;:::i;:::-;32741:154;;32912:3;32905:10;;32542:379;;;:::o;32927:180::-;32975:77;32972:1;32965:88;33072:4;33069:1;33062:15;33096:4;33093:1;33086:15;33113:180;33161:77;33158:1;33151:88;33258:4;33255:1;33248:15;33282:4;33279:1;33272:15;33299:143;33356:5;33387:6;33381:13;33372:22;;33403:33;33430:5;33403:33;:::i;:::-;33299:143;;;;:::o;33448:351::-;33518:6;33567:2;33555:9;33546:7;33542:23;33538:32;33535:119;;;33573:79;;:::i;:::-;33535:119;33693:1;33718:64;33774:7;33765:6;33754:9;33750:22;33718:64;:::i;:::-;33708:74;;33664:128;33448:351;;;;:::o;33805:85::-;33850:7;33879:5;33868:16;;33805:85;;;:::o;33896:158::-;33954:9;33987:61;34005:42;34014:32;34040:5;34014:32;:::i;:::-;34005:42;:::i;:::-;33987:61;:::i;:::-;33974:74;;33896:158;;;:::o;34060:147::-;34155:45;34194:5;34155:45;:::i;:::-;34150:3;34143:58;34060:147;;:::o;34213:114::-;34280:6;34314:5;34308:12;34298:22;;34213:114;;;:::o;34333:184::-;34432:11;34466:6;34461:3;34454:19;34506:4;34501:3;34497:14;34482:29;;34333:184;;;;:::o;34523:132::-;34590:4;34613:3;34605:11;;34643:4;34638:3;34634:14;34626:22;;34523:132;;;:::o;34661:108::-;34738:24;34756:5;34738:24;:::i;:::-;34733:3;34726:37;34661:108;;:::o;34775:179::-;34844:10;34865:46;34907:3;34899:6;34865:46;:::i;:::-;34943:4;34938:3;34934:14;34920:28;;34775:179;;;;:::o;34960:113::-;35030:4;35062;35057:3;35053:14;35045:22;;34960:113;;;:::o;35109:732::-;35228:3;35257:54;35305:5;35257:54;:::i;:::-;35327:86;35406:6;35401:3;35327:86;:::i;:::-;35320:93;;35437:56;35487:5;35437:56;:::i;:::-;35516:7;35547:1;35532:284;35557:6;35554:1;35551:13;35532:284;;;35633:6;35627:13;35660:63;35719:3;35704:13;35660:63;:::i;:::-;35653:70;;35746:60;35799:6;35746:60;:::i;:::-;35736:70;;35592:224;35579:1;35576;35572:9;35567:14;;35532:284;;;35536:14;35832:3;35825:10;;35233:608;;;35109:732;;;;:::o;35847:831::-;36110:4;36148:3;36137:9;36133:19;36125:27;;36162:71;36230:1;36219:9;36215:17;36206:6;36162:71;:::i;:::-;36243:80;36319:2;36308:9;36304:18;36295:6;36243:80;:::i;:::-;36370:9;36364:4;36360:20;36355:2;36344:9;36340:18;36333:48;36398:108;36501:4;36492:6;36398:108;:::i;:::-;36390:116;;36516:72;36584:2;36573:9;36569:18;36560:6;36516:72;:::i;:::-;36598:73;36666:3;36655:9;36651:19;36642:6;36598:73;:::i;:::-;35847:831;;;;;;;;:::o

Swarm Source

ipfs://4489b7a764560449743f7b767a44a2736536d498ccc961419619893f6ebbe352
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.