ETH Price: $2,955.01 (+1.46%)
 

Overview

Max Total Supply

1,000,000,000 ANDY

Holders

150,751 (0.00%)

Market

Price

$0.0009 @ 0.000000 ETH (+0.78%)

Onchain Market Cap

-

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,749.210531812502467319 ANDY

Value
$1.54 ( ~0.000521149390707604 ETH) [0.0002%]
0xef1ec136931ab5728b0783fd87d109c9d15d31f1
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

ANDY had been created with a mid to long term view, aiming to be one of the strongest meme coins heading into the bullrun.

Market

Volume (24H):$1,053.77
Market Capitalization:$0.00
Circulating Supply:0.00 ANDY
Market Data Source: Coinmarketcap

Contract Source Code Verified (Exact Match)

Contract Name:
ANDY

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at basescan.org on 2024-03-26
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.22;

/*

PEPE's mischievous roommate has arrived on BASE, ready to make waves.

Twitter: https://x.com/_AndyOnBase

Telegram: https://t.me/AndyOnBasePortal

*/

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

/**
 * @dev Factory interface.
 */
interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

/**
 * @dev Router interface.
 */
interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token, 
        uint amountTokenDesired, 
        uint amountTokenMin, 
        uint amountETHMin, 
        address to, 
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn, 
        uint amountOutMin, 
        address[] calldata path, 
        address to, 
        uint deadline
    ) external;
}

/**
 * @dev ERC20 interface.
 */
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`.
     */
    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.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     */
    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.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

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

/**
 * @dev ERC20 meta interface.
 */
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);
}

/**
 * @dev ERC20 contract.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    string private _name;
    string private _symbol;

    uint256 private _totalSupply;

    mapping(address => uint256) private _balances;

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

    /**
     * @dev Sets the values for {name} and {symbol}.
     */
    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.
     */
    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}.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    /**
     * @dev See {IERC20-transferFrom}.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);

        emit Transfer(sender, recipient, amount);
    }

    /** 
     * @dev Creates `amount` tokens and assigns them to `account`, increasing the total supply.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);

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

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the total supply.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;

        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes minting and burning.
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

/**
 * @dev SafeMath library.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on overflow (when the 
     * result is negative).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on division by zero.
     * The result is rounded towards zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverts when dividing by zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverts with custom message when dividing by zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

/**
 * @dev Ownable contract.
 */
contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;

        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));

        _owner = address(0);
    }

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

        emit OwnershipTransferred(_owner, newOwner);

        _owner = newOwner;
    }
}

/**
 * @dev SafeMathInt library.
 */
library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);

    /**
     * @dev Multiplies two int256 variables and fails on overflow.
     */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;

        // Detect overflow when multiplying MIN_INT256 with -1
        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }

    /**
     * @dev Division of two int256 variables and fails on overflow.
     */
    function div(int256 a, int256 b) internal pure returns (int256) {
        // Prevent overflow when dividing MIN_INT256 by -1
        require(b != -1 || a != MIN_INT256);

        // Solidity already throws when dividing by 0.
        return a / b;
    }

    /**
     * @dev Subtracts two int256 variables and fails on overflow.
     */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    /**
     * @dev Adds two int256 variables and fails on overflow.
     */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }

    /**
     * @dev Converts to absolute value, and fails on overflow.
     */
    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }

    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}

/**
 * @dev SafeMathUint library.
 */
library SafeMathUint {
    function toInt256Safe(uint256 a) internal pure returns (int256) {
        int256 b = int256(a);
        require(b >= 0);
        return b;
    }
}

/**
 * @dev Token contract.
 */
contract ANDY is ERC20, Ownable {
    using SafeMath for uint256;

    IRouter private immutable _router;
    address private _pair;

    address private constant _deadAddress = address(0xdead);

    address private _projectWallet;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedFromMaxTx;

    mapping(address => bool) private _ammPairs;

    uint256 public buyFee = 5;
    uint256 public sellFee = 15;

    uint256 private _maxTxAmount;
    uint256 private _maxWalletAmount;
    uint256 private _swapTokensAtAmount;

    bool public limitsEnabled;
    bool public tradingEnabled;
    bool public swapEnabled;

    bool private _isSwapping;

    constructor() payable ERC20("Andy", "ANDY") {
        require(msg.value > 0, "ETH must exceed zero");

        IRouter router = IRouter(0x6BDED42c6DA8FBf0d2bA55B2fa120C5e0c8D7891);
        _router = router;

        _projectWallet = _msgSender();

        uint256 totalSupply = 1_000_000_000 * (10 ** decimals());

        _maxTxAmount = totalSupply.mul(2).div(100);
        _maxWalletAmount = totalSupply.mul(2).div(100);
        _swapTokensAtAmount = totalSupply.mul(5).div(10000);

        _excludeFromFees(owner(), true);
        _excludeFromFees(address(this), true);
        _excludeFromFees(_deadAddress, true);
        _excludeFromFees(_projectWallet, true);

        _excludeFromMaxTx(owner(), true);
        _excludeFromMaxTx(address(this), true);
        _excludeFromMaxTx(_deadAddress, true);
        _excludeFromMaxTx(address(_router), true);
        _excludeFromMaxTx(_projectWallet, true);

        _approve(address(this), address(_router), type(uint256).max);

        // _mint only called here.
        _mint(address(this), totalSupply);
    }

    function openTrading() external onlyOwner {
        require(!tradingEnabled, "Trading already enabled");

        // Pair.
        _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        _excludeFromMaxTx(address(_pair), true);
        _setAmmPair(address(_pair), true);

        // Add liquidity.
        _router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        // Enable limits, trading, and swap.
        limitsEnabled = true;
        tradingEnabled = true;
        swapEnabled = true;
    }

    function disperse(address[] memory disperseAccounts_, uint256[] memory disperseAmounts_) external onlyOwner {
        require(disperseAccounts_.length > 0 && disperseAccounts_.length == disperseAmounts_.length, "Disperse data invalid");

        for (uint8 i = 0; i < disperseAccounts_.length; i++) {
            super._transfer(address(this), disperseAccounts_[i], disperseAmounts_[i]);
        }
    }

    function _excludeFromFees(address account_, bool isExcluded_) private {
        _isExcludedFromFees[account_] = isExcluded_;
    }

    function _excludeFromMaxTx(address account_, bool isExcluded_) private {
        _isExcludedFromMaxTx[account_] = isExcluded_;
    }

    function _setAmmPair(address pair_, bool isPair_) private {
        _ammPairs[pair_] = isPair_;
    }

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

        if (amount == 0) {
            super._transfer(from, to, 0);

            return;
        }

        // Limits.
        if (limitsEnabled) {
            if (from != owner() && to != owner() && to != address(0) && to != _deadAddress && !_isSwapping) {
                if (!tradingEnabled) {
                    require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading not enabled");
                }

                if (_ammPairs[from] && !_isExcludedFromMaxTx[to]) {
                    // Buy.
                    require(amount <= _maxTxAmount, "Max TX exceeded");
                    require(amount + balanceOf(to) <= _maxWalletAmount, "Max wallet exceeded");
                } else if (_ammPairs[to] && !_isExcludedFromMaxTx[from]) {
                    // Sell.
                    require(amount <= _maxTxAmount, "Max TX exceeded");
                } else if (!_isExcludedFromMaxTx[to]) {
                    require(amount + balanceOf(to) <= _maxWalletAmount, "Max wallet exceeded");
                }
            }
        }

        // Swap contract tokens.
        if (
            swapEnabled && 
            !_isSwapping && 
            !_ammPairs[from] && 
            !_isExcludedFromFees[from] && 
            !_isExcludedFromFees[to] && 
            balanceOf(address(this)) >= _swapTokensAtAmount
        ) {
            _isSwapping = true;

            _swapBack();

            _isSwapping = false;
        }

        // Fees.
        bool takeFee = !_isSwapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        // Only deduct fees on buys and sells, not transfers.
        if (takeFee) {
            if (_ammPairs[to] && sellFee > 0) {
                // Sell.
                fees = amount.mul(sellFee).div(100);
            } else if (_ammPairs[from] && buyFee > 0) {
                // Buy.
                fees = amount.mul(buyFee).div(100);
            }

            if (fees > 0) {
                // Deduct fees.
                super._transfer(from, address(this), fees);

                amount -= fees;
            }
        }

        // Final transfer.
        super._transfer(from, to, amount);
    }

    function disableLimits() external onlyOwner {
        limitsEnabled = false;
    }

    function setSwapEnabled(bool isEnabled_) external onlyOwner {
        swapEnabled = isEnabled_;
    }

    function _swapBack() private {
        uint256 tokenAmountToSwap = balanceOf(address(this));

        if (tokenAmountToSwap == 0) {
            return;
        }

        if (tokenAmountToSwap > _swapTokensAtAmount * 10) {
            tokenAmountToSwap = _swapTokensAtAmount * 10;
        }

        _swapTokensForEth(tokenAmountToSwap);

        uint256 contractEthBalance = address(this).balance;
        bool success;

        if (contractEthBalance > 0) {
            (success, ) = address(_projectWallet).call{value: contractEthBalance}("");
        }
    }

    function _swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _router.WETH();

        if (allowance(address(this), address(_router)) != type(uint256).max) {
            _approve(address(this), address(_router), type(uint256).max);
        }

        try _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {}
    }

    function reduceFees(uint256 buyFee_, uint256 sellFee_) external onlyOwner {
        require(buyFee_ <= buyFee, "New buy fee cannot exceed current");
        require(sellFee_ <= sellFee, "New sell fee cannot exceed current");

        buyFee = buyFee_;
        sellFee = sellFee_;
    }

    function forceSwapBack() external {
        require(_msgSender() == _projectWallet, "Not authorized");
        require(balanceOf(address(this)) > 0 && !_isSwapping, "Swap request invalid");

        _isSwapping = true;

        _swapBack();

        _isSwapping = false;
    }

    function withdrawTokens(uint256 tokenAmount) external {
        require(_msgSender() == _projectWallet, "Not authorized");
        require(tokenAmount <= balanceOf(address(this)), "Transfer amount exceeds balance");

        super._transfer(address(this), _projectWallet, tokenAmount);
    }

    function withdrawETH() external {
        require(_msgSender() == _projectWallet, "Not authorized");

        bool success;
        (success, ) = address(_projectWallet).call{value: address(this).balance}("");
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","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":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"disperseAccounts_","type":"address[]"},{"internalType":"uint256[]","name":"disperseAmounts_","type":"uint256[]"}],"name":"disperse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee_","type":"uint256"},{"internalType":"uint256","name":"sellFee_","type":"uint256"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"isEnabled_","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526005600b55600f600c556040518060400160405280600481526020017f416e6479000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f414e445900000000000000000000000000000000000000000000000000000000815250815f90816200008a919062000ca6565b5080600190816200009c919062000ca6565b5050505f620000b06200045360201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f341162000192576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001899062000de8565b60405180910390fd5b5f736bded42c6da8fbf0d2ba55b2fa120c5e0c8d789190508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620001ee6200045360201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6200023e6200045a60201b60201c565b600a6200024c919062000f91565b633b9aca006200025d919062000fe1565b90506200028a60646200027b6002846200046260201b90919060201c565b620004e260201b90919060201c565b600d81905550620002bb6064620002ac6002846200046260201b90919060201c565b620004e260201b90919060201c565b600e81905550620002ed612710620002de6005846200046260201b90919060201c565b620004e260201b90919060201c565b600f8190555062000315620003076200053360201b60201c565b60016200055b60201b60201c565b620003283060016200055b60201b60201c565b6200033d61dead60016200055b60201b60201c565b6200037160075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200055b60201b60201c565b62000393620003856200053360201b60201c565b6001620005b360201b60201c565b620003a6306001620005b360201b60201c565b620003bb61dead6001620005b360201b60201c565b620003d06080516001620005b360201b60201c565b6200040460075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620005b360201b60201c565b62000439306080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200060b60201b60201c565b6200044b3082620007d660201b60201c565b505062001429565b5f33905090565b5f6012905090565b5f80830362000474575f9050620004dc565b5f828462000483919062000fe1565b905082848262000494919062001058565b14620004d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004ce9062001103565b60405180910390fd5b809150505b92915050565b5f6200052b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200097560201b60201c565b905092915050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200067c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006739062001197565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006e4906200122b565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620007c991906200125c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000847576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200083e90620012c5565b60405180910390fd5b6200085a5f8383620009db60201b60201c565b6200087181600254620009e060201b90919060201c565b600281905550620008c98160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054620009e060201b90919060201c565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096991906200125c565b60405180910390a35050565b5f8083118290620009be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b591906200135f565b60405180910390fd5b505f8385620009ce919062001058565b9050809150509392505050565b505050565b5f808284620009f0919062001381565b90508381101562000a38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a2f9062001409565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000abe57607f821691505b60208210810362000ad45762000ad362000a79565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b387fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000afb565b62000b44868362000afb565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b8e62000b8862000b828462000b5c565b62000b65565b62000b5c565b9050919050565b5f819050919050565b62000ba98362000b6e565b62000bc162000bb88262000b95565b84845462000b07565b825550505050565b5f90565b62000bd762000bc9565b62000be481848462000b9e565b505050565b5b8181101562000c0b5762000bff5f8262000bcd565b60018101905062000bea565b5050565b601f82111562000c5a5762000c248162000ada565b62000c2f8462000aec565b8101602085101562000c3f578190505b62000c5762000c4e8562000aec565b83018262000be9565b50505b505050565b5f82821c905092915050565b5f62000c7c5f198460080262000c5f565b1980831691505092915050565b5f62000c96838362000c6b565b9150826002028217905092915050565b62000cb18262000a42565b67ffffffffffffffff81111562000ccd5762000ccc62000a4c565b5b62000cd9825462000aa6565b62000ce682828562000c0f565b5f60209050601f83116001811462000d1c575f841562000d07578287015190505b62000d13858262000c89565b86555062000d82565b601f19841662000d2c8662000ada565b5f5b8281101562000d555784890151825560018201915060208501945060208101905062000d2e565b8683101562000d75578489015162000d71601f89168262000c6b565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f455448206d75737420657863656564207a65726f0000000000000000000000005f82015250565b5f62000dd060148362000d8a565b915062000ddd8262000d9a565b602082019050919050565b5f6020820190508181035f83015262000e018162000dc2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000e925780860481111562000e6a5762000e6962000e08565b5b600185161562000e7a5780820291505b808102905062000e8a8562000e35565b945062000e4a565b94509492505050565b5f8262000eac576001905062000f7e565b8162000ebb575f905062000f7e565b816001811462000ed4576002811462000edf5762000f15565b600191505062000f7e565b60ff84111562000ef45762000ef362000e08565b5b8360020a91508482111562000f0e5762000f0d62000e08565b5b5062000f7e565b5060208310610133831016604e8410600b841016171562000f4f5782820a90508381111562000f495762000f4862000e08565b5b62000f7e565b62000f5e848484600162000e41565b9250905081840481111562000f785762000f7762000e08565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000f9d8262000b5c565b915062000faa8362000f85565b925062000fd97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000e9b565b905092915050565b5f62000fed8262000b5c565b915062000ffa8362000b5c565b92508282026200100a8162000b5c565b9150828204841483151762001024576200102362000e08565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620010648262000b5c565b9150620010718362000b5c565b9250826200108457620010836200102b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f620010eb60218362000d8a565b9150620010f8826200108f565b604082019050919050565b5f6020820190508181035f8301526200111c81620010dd565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6200117f60248362000d8a565b91506200118c8262001123565b604082019050919050565b5f6020820190508181035f830152620011b08162001171565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6200121360228362000d8a565b91506200122082620011b7565b604082019050919050565b5f6020820190508181035f830152620012448162001205565b9050919050565b620012568162000b5c565b82525050565b5f602082019050620012715f8301846200124b565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f620012ad601f8362000d8a565b9150620012ba8262001277565b602082019050919050565b5f6020820190508181035f830152620012de816200129f565b9050919050565b5f5b8381101562001304578082015181840152602081019050620012e7565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200132b8262000a42565b62001337818562000d8a565b935062001349818560208601620012e5565b62001354816200130f565b840191505092915050565b5f6020820190508181035f8301526200137981846200131f565b905092915050565b5f6200138d8262000b5c565b91506200139a8362000b5c565b9250828201905080821115620013b557620013b462000e08565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f620013f1601b8362000d8a565b9150620013fe82620013bb565b602082019050919050565b5f6020820190508181035f8301526200142281620013e3565b9050919050565b6080516141506200146c5f395f81816111940152818161123d015281816113be01528181612afb01528181612bfb01528181612c2a0152612c7201526141505ff3fe60806040526004361061019f575f3560e01c80636ddd1713116100eb578063a9059cbb11610089578063e01af92c11610063578063e01af92c146105ac578063e086e5ec146105d4578063f2fde38b146105ea578063f928364c14610612576101a6565b8063a9059cbb1461051e578063c9567bf91461055a578063dd62ed3e14610570576101a6565b80638da5cb5b116100c55780638da5cb5b1461046657806395d89b4114610490578063a08fc5c7146104ba578063a457c2d7146104e2576101a6565b80636ddd1713146103ea57806370a0823114610414578063715018a614610450576101a6565b8063313ce567116101585780633950935111610132578063395093511461034457806347062402146103805780634ada218b146103aa57806351f205e4146103d4576101a6565b8063313ce567146102c8578063315a095d146102f25780633582ad231461031a576101a6565b806306fdde03146101aa578063095ea7b3146101d457806318160ddd1461021057806323b872dd1461023a5780632b14ca56146102765780632f3cb35b146102a0576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610628565b6040516101cb9190612de9565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190612ea7565b6106b7565b6040516102079190612eff565b60405180910390f35b34801561021b575f80fd5b506102246106d4565b6040516102319190612f27565b60405180910390f35b348015610245575f80fd5b50610260600480360381019061025b9190612f40565b6106dd565b60405161026d9190612eff565b60405180910390f35b348015610281575f80fd5b5061028a6107b1565b6040516102979190612f27565b60405180910390f35b3480156102ab575f80fd5b506102c660048036038101906102c19190613190565b6107b7565b005b3480156102d3575f80fd5b506102dc610908565b6040516102e99190613221565b60405180910390f35b3480156102fd575f80fd5b506103186004803603810190610313919061323a565b610910565b005b348015610325575f80fd5b5061032e610a20565b60405161033b9190612eff565b60405180910390f35b34801561034f575f80fd5b5061036a60048036038101906103659190612ea7565b610a32565b6040516103779190612eff565b60405180910390f35b34801561038b575f80fd5b50610394610ae0565b6040516103a19190612f27565b60405180910390f35b3480156103b5575f80fd5b506103be610ae6565b6040516103cb9190612eff565b60405180910390f35b3480156103df575f80fd5b506103e8610af9565b005b3480156103f5575f80fd5b506103fe610c31565b60405161040b9190612eff565b60405180910390f35b34801561041f575f80fd5b5061043a60048036038101906104359190613265565b610c44565b6040516104479190612f27565b60405180910390f35b34801561045b575f80fd5b50610464610c8a565b005b348015610471575f80fd5b5061047a610ddd565b604051610487919061329f565b60405180910390f35b34801561049b575f80fd5b506104a4610e05565b6040516104b19190612de9565b60405180910390f35b3480156104c5575f80fd5b506104e060048036038101906104db91906132b8565b610e95565b005b3480156104ed575f80fd5b5061050860048036038101906105039190612ea7565b610fc7565b6040516105159190612eff565b60405180910390f35b348015610529575f80fd5b50610544600480360381019061053f9190612ea7565b61108f565b6040516105519190612eff565b60405180910390f35b348015610565575f80fd5b5061056e6110ac565b005b34801561057b575f80fd5b50610596600480360381019061059191906132f6565b6114c5565b6040516105a39190612f27565b60405180910390f35b3480156105b7575f80fd5b506105d260048036038101906105cd919061335e565b611547565b005b3480156105df575f80fd5b506105e86115fa565b005b3480156105f5575f80fd5b50610610600480360381019061060b9190613265565b61171e565b005b34801561061d575f80fd5b506106266118e0565b005b60605f8054610636906133b6565b80601f0160208091040260200160405190810160405280929190818152602001828054610662906133b6565b80156106ad5780601f10610684576101008083540402835291602001916106ad565b820191905f5260205f20905b81548152906001019060200180831161069057829003601f168201915b5050505050905090565b5f6106ca6106c3611991565b8484611998565b6001905092915050565b5f600254905090565b5f6106e9848484611b5b565b6107a6846106f5611991565b6107a1856040518060600160405280602881526020016140ce6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610758611991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124b59092919063ffffffff16565b611998565b600190509392505050565b600c5481565b6107bf611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461084d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084490613430565b60405180910390fd5b5f825111801561085e575080518251145b61089d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089490613498565b60405180910390fd5b5f5b82518160ff161015610903576108f030848360ff16815181106108c5576108c46134b6565b5b6020026020010151848460ff16815181106108e3576108e26134b6565b5b6020026020010151612517565b80806108fb90613510565b91505061089f565b505050565b5f6012905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610950611991565b73ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90613582565b60405180910390fd5b6109af30610c44565b8111156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e8906135ea565b60405180910390fd5b610a1d3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612517565b50565b60105f9054906101000a900460ff1681565b5f610ad6610a3e611991565b84610ad18560045f610a4e611991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127a490919063ffffffff16565b611998565b6001905092915050565b600b5481565b601060019054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b39611991565b73ffffffffffffffffffffffffffffffffffffffff1614610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8690613582565b60405180910390fd5b5f610b9930610c44565b118015610bb35750601060039054906101000a900460ff16155b610bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be990613652565b60405180910390fd5b6001601060036101000a81548160ff021916908315150217905550610c15612801565b5f601060036101000a81548160ff021916908315150217905550565b601060029054906101000a900460ff1681565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c92611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790613430565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610e14906133b6565b80601f0160208091040260200160405190810160405280929190818152602001828054610e40906133b6565b8015610e8b5780601f10610e6257610100808354040283529160200191610e8b565b820191905f5260205f20905b815481529060010190602001808311610e6e57829003601f168201915b5050505050905090565b610e9d611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2290613430565b60405180910390fd5b600b54821115610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f67906136e0565b60405180910390fd5b600c54811115610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac9061376e565b60405180910390fd5b81600b8190555080600c819055505050565b5f611085610fd3611991565b84611080856040518060600160405280602581526020016140f66025913960045f610ffc611991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124b59092919063ffffffff16565b611998565b6001905092915050565b5f6110a261109b611991565b8484611b5b565b6001905092915050565b6110b4611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990613430565b60405180910390fd5b601060019054906101000a900460ff1615611192576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611189906137d6565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121f9190613808565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c89190613808565b6040518363ffffffff1660e01b81526004016112e5929190613833565b6020604051808303815f875af1158015611301573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113259190613808565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061139060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016128e9565b6113bc60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612941565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719473061140330610c44565b5f8061140d610ddd565b426040518863ffffffff1660e01b815260040161142f9695949392919061389c565b60606040518083038185885af115801561144b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611470919061390f565b505050600160105f6101000a81548160ff0219169083151502179055506001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff021916908315150217905550565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61154f611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490613430565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661163a611991565b73ffffffffffffffffffffffffffffffffffffffff1614611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790613582565b60405180910390fd5b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516116d69061398c565b5f6040518083038185875af1925050503d805f8114611710576040519150601f19603f3d011682016040523d82523d5f602084013e611715565b606091505b50508091505050565b611726611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ab90613430565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181990613a10565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118e8611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196d90613430565b60405180910390fd5b5f60105f6101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90613a9e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6b90613b2c565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b4e9190612f27565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090613bba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e90613c48565b60405180910390fd5b5f8103611c4e57611c4983835f612517565b6124b0565b60105f9054906101000a900460ff161561213257611c6a610ddd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cd85750611ca8610ddd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d635750601060039054906101000a900460ff16155b1561213157601060019054906101000a900460ff16611e575760085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e17575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d90613cb0565b60405180910390fd5b5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611ef4575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f9b57600d54811115611f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3590613d18565b60405180910390fd5b600e54611f4a83610c44565b82611f559190613d36565b1115611f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8d90613db3565b60405180910390fd5b612130565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612038575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561208757600d54811115612082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207990613d18565b60405180910390fd5b61212f565b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661212e57600e546120e183610c44565b826120ec9190613d36565b111561212d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212490613db3565b60405180910390fd5b5b5b5b5b5b601060029054906101000a900460ff16801561215b5750601060039054906101000a900460ff16155b80156121ae5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612201575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612254575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561226a5750600f5461226730610c44565b10155b156122ad576001601060036101000a81548160ff021916908315150217905550612292612801565b5f601060036101000a81548160ff0219169083151502179055505b5f601060039054906101000a900460ff1615905060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061235c575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612365575f90505b5f81156124a257600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156123c357505f600c54115b156123f7576123f060646123e2600c548661299990919063ffffffff16565b612a1090919063ffffffff16565b905061247f565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561244e57505f600b54115b1561247e5761247b606461246d600b548661299990919063ffffffff16565b612a1090919063ffffffff16565b90505b5b5f8111156124a157612492853083612517565b808361249e9190613dd1565b92505b5b6124ad858585612517565b50505b505050565b5f8383111582906124fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f39190612de9565b60405180910390fd5b505f838561250a9190613dd1565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257c90613bba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90613c48565b60405180910390fd5b6125fe838383612a59565b612668816040518060600160405280602681526020016140a86026913960035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124b59092919063ffffffff16565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126f98160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127a490919063ffffffff16565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127979190612f27565b60405180910390a3505050565b5f8082846127b29190613d36565b9050838110156127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90613e4e565b60405180910390fd5b8091505092915050565b5f61280b30610c44565b90505f810361281a57506128e7565b600a600f546128299190613e6c565b81111561284257600a600f5461283f9190613e6c565b90505b61284b81612a5e565b5f4790505f808211156128e35760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161289d9061398c565b5f6040518083038185875af1925050503d805f81146128d7576040519150601f19603f3d011682016040523d82523d5f602084013e6128dc565b606091505b5050809150505b5050505b565b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f8083036129a9575f9050612a0a565b5f82846129b69190613e6c565b90508284826129c59190613eda565b14612a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129fc90613f7a565b60405180910390fd5b809150505b92915050565b5f612a5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cfe565b905092915050565b505050565b5f600267ffffffffffffffff811115612a7a57612a79612f94565b5b604051908082528060200260200182016040528015612aa85781602001602082028036833780820191505090505b50905030815f81518110612abf57612abe6134b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b869190613808565b81600181518110612b9a57612b996134b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612c1f307f00000000000000000000000000000000000000000000000000000000000000006114c5565b14612c7057612c6f307f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611998565b5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612cd195949392919061404f565b5f604051808303815f87803b158015612ce8575f80fd5b505af1925050508015612cf9575060015b505050565b5f8083118290612d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3b9190612de9565b60405180910390fd5b505f8385612d529190613eda565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d96578082015181840152602081019050612d7b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612dbb82612d5f565b612dc58185612d69565b9350612dd5818560208601612d79565b612dde81612da1565b840191505092915050565b5f6020820190508181035f830152612e018184612db1565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612e4382612e1a565b9050919050565b612e5381612e39565b8114612e5d575f80fd5b50565b5f81359050612e6e81612e4a565b92915050565b5f819050919050565b612e8681612e74565b8114612e90575f80fd5b50565b5f81359050612ea181612e7d565b92915050565b5f8060408385031215612ebd57612ebc612e12565b5b5f612eca85828601612e60565b9250506020612edb85828601612e93565b9150509250929050565b5f8115159050919050565b612ef981612ee5565b82525050565b5f602082019050612f125f830184612ef0565b92915050565b612f2181612e74565b82525050565b5f602082019050612f3a5f830184612f18565b92915050565b5f805f60608486031215612f5757612f56612e12565b5b5f612f6486828701612e60565b9350506020612f7586828701612e60565b9250506040612f8686828701612e93565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612fca82612da1565b810181811067ffffffffffffffff82111715612fe957612fe8612f94565b5b80604052505050565b5f612ffb612e09565b90506130078282612fc1565b919050565b5f67ffffffffffffffff82111561302657613025612f94565b5b602082029050602081019050919050565b5f80fd5b5f61304d6130488461300c565b612ff2565b905080838252602082019050602084028301858111156130705761306f613037565b5b835b8181101561309957806130858882612e60565b845260208401935050602081019050613072565b5050509392505050565b5f82601f8301126130b7576130b6612f90565b5b81356130c784826020860161303b565b91505092915050565b5f67ffffffffffffffff8211156130ea576130e9612f94565b5b602082029050602081019050919050565b5f61310d613108846130d0565b612ff2565b905080838252602082019050602084028301858111156131305761312f613037565b5b835b8181101561315957806131458882612e93565b845260208401935050602081019050613132565b5050509392505050565b5f82601f83011261317757613176612f90565b5b81356131878482602086016130fb565b91505092915050565b5f80604083850312156131a6576131a5612e12565b5b5f83013567ffffffffffffffff8111156131c3576131c2612e16565b5b6131cf858286016130a3565b925050602083013567ffffffffffffffff8111156131f0576131ef612e16565b5b6131fc85828601613163565b9150509250929050565b5f60ff82169050919050565b61321b81613206565b82525050565b5f6020820190506132345f830184613212565b92915050565b5f6020828403121561324f5761324e612e12565b5b5f61325c84828501612e93565b91505092915050565b5f6020828403121561327a57613279612e12565b5b5f61328784828501612e60565b91505092915050565b61329981612e39565b82525050565b5f6020820190506132b25f830184613290565b92915050565b5f80604083850312156132ce576132cd612e12565b5b5f6132db85828601612e93565b92505060206132ec85828601612e93565b9150509250929050565b5f806040838503121561330c5761330b612e12565b5b5f61331985828601612e60565b925050602061332a85828601612e60565b9150509250929050565b61333d81612ee5565b8114613347575f80fd5b50565b5f8135905061335881613334565b92915050565b5f6020828403121561337357613372612e12565b5b5f6133808482850161334a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806133cd57607f821691505b6020821081036133e0576133df613389565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61341a602083612d69565b9150613425826133e6565b602082019050919050565b5f6020820190508181035f8301526134478161340e565b9050919050565b7f4469737065727365206461746120696e76616c696400000000000000000000005f82015250565b5f613482601583612d69565b915061348d8261344e565b602082019050919050565b5f6020820190508181035f8301526134af81613476565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61351a82613206565b915060ff820361352d5761352c6134e3565b5b600182019050919050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f61356c600e83612d69565b915061357782613538565b602082019050919050565b5f6020820190508181035f83015261359981613560565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f6135d4601f83612d69565b91506135df826135a0565b602082019050919050565b5f6020820190508181035f830152613601816135c8565b9050919050565b7f53776170207265717565737420696e76616c69640000000000000000000000005f82015250565b5f61363c601483612d69565b915061364782613608565b602082019050919050565b5f6020820190508181035f83015261366981613630565b9050919050565b7f4e657720627579206665652063616e6e6f74206578636565642063757272656e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136ca602183612d69565b91506136d582613670565b604082019050919050565b5f6020820190508181035f8301526136f7816136be565b9050919050565b7f4e65772073656c6c206665652063616e6e6f74206578636565642063757272655f8201527f6e74000000000000000000000000000000000000000000000000000000000000602082015250565b5f613758602283612d69565b9150613763826136fe565b604082019050919050565b5f6020820190508181035f8301526137858161374c565b9050919050565b7f54726164696e6720616c726561647920656e61626c65640000000000000000005f82015250565b5f6137c0601783612d69565b91506137cb8261378c565b602082019050919050565b5f6020820190508181035f8301526137ed816137b4565b9050919050565b5f8151905061380281612e4a565b92915050565b5f6020828403121561381d5761381c612e12565b5b5f61382a848285016137f4565b91505092915050565b5f6040820190506138465f830185613290565b6138536020830184613290565b9392505050565b5f819050919050565b5f819050919050565b5f61388661388161387c8461385a565b613863565b612e74565b9050919050565b6138968161386c565b82525050565b5f60c0820190506138af5f830189613290565b6138bc6020830188612f18565b6138c9604083018761388d565b6138d6606083018661388d565b6138e36080830185613290565b6138f060a0830184612f18565b979650505050505050565b5f8151905061390981612e7d565b92915050565b5f805f6060848603121561392657613925612e12565b5b5f613933868287016138fb565b9350506020613944868287016138fb565b9250506040613955868287016138fb565b9150509250925092565b5f81905092915050565b50565b5f6139775f8361395f565b915061398282613969565b5f82019050919050565b5f6139968261396c565b9150819050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6139fa602683612d69565b9150613a05826139a0565b604082019050919050565b5f6020820190508181035f830152613a27816139ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a88602483612d69565b9150613a9382613a2e565b604082019050919050565b5f6020820190508181035f830152613ab581613a7c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b16602283612d69565b9150613b2182613abc565b604082019050919050565b5f6020820190508181035f830152613b4381613b0a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613ba4602583612d69565b9150613baf82613b4a565b604082019050919050565b5f6020820190508181035f830152613bd181613b98565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c32602383612d69565b9150613c3d82613bd8565b604082019050919050565b5f6020820190508181035f830152613c5f81613c26565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f613c9a601383612d69565b9150613ca582613c66565b602082019050919050565b5f6020820190508181035f830152613cc781613c8e565b9050919050565b7f4d617820545820657863656564656400000000000000000000000000000000005f82015250565b5f613d02600f83612d69565b9150613d0d82613cce565b602082019050919050565b5f6020820190508181035f830152613d2f81613cf6565b9050919050565b5f613d4082612e74565b9150613d4b83612e74565b9250828201905080821115613d6357613d626134e3565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613d9d601383612d69565b9150613da882613d69565b602082019050919050565b5f6020820190508181035f830152613dca81613d91565b9050919050565b5f613ddb82612e74565b9150613de683612e74565b9250828203905081811115613dfe57613dfd6134e3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613e38601b83612d69565b9150613e4382613e04565b602082019050919050565b5f6020820190508181035f830152613e6581613e2c565b9050919050565b5f613e7682612e74565b9150613e8183612e74565b9250828202613e8f81612e74565b91508282048414831517613ea657613ea56134e3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ee482612e74565b9150613eef83612e74565b925082613eff57613efe613ead565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f64602183612d69565b9150613f6f82613f0a565b604082019050919050565b5f6020820190508181035f830152613f9181613f58565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613fca81612e39565b82525050565b5f613fdb8383613fc1565b60208301905092915050565b5f602082019050919050565b5f613ffd82613f98565b6140078185613fa2565b935061401283613fb2565b805f5b838110156140425781516140298882613fd0565b975061403483613fe7565b925050600181019050614015565b5085935050505092915050565b5f60a0820190506140625f830188612f18565b61406f602083018761388d565b81810360408301526140818186613ff3565b90506140906060830185613290565b61409d6080830184612f18565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220877fb86322b194633b99652bd2e8df41e8f1105599eb23e91919e195114b9a1764736f6c63430008160033

Deployed Bytecode

0x60806040526004361061019f575f3560e01c80636ddd1713116100eb578063a9059cbb11610089578063e01af92c11610063578063e01af92c146105ac578063e086e5ec146105d4578063f2fde38b146105ea578063f928364c14610612576101a6565b8063a9059cbb1461051e578063c9567bf91461055a578063dd62ed3e14610570576101a6565b80638da5cb5b116100c55780638da5cb5b1461046657806395d89b4114610490578063a08fc5c7146104ba578063a457c2d7146104e2576101a6565b80636ddd1713146103ea57806370a0823114610414578063715018a614610450576101a6565b8063313ce567116101585780633950935111610132578063395093511461034457806347062402146103805780634ada218b146103aa57806351f205e4146103d4576101a6565b8063313ce567146102c8578063315a095d146102f25780633582ad231461031a576101a6565b806306fdde03146101aa578063095ea7b3146101d457806318160ddd1461021057806323b872dd1461023a5780632b14ca56146102765780632f3cb35b146102a0576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610628565b6040516101cb9190612de9565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190612ea7565b6106b7565b6040516102079190612eff565b60405180910390f35b34801561021b575f80fd5b506102246106d4565b6040516102319190612f27565b60405180910390f35b348015610245575f80fd5b50610260600480360381019061025b9190612f40565b6106dd565b60405161026d9190612eff565b60405180910390f35b348015610281575f80fd5b5061028a6107b1565b6040516102979190612f27565b60405180910390f35b3480156102ab575f80fd5b506102c660048036038101906102c19190613190565b6107b7565b005b3480156102d3575f80fd5b506102dc610908565b6040516102e99190613221565b60405180910390f35b3480156102fd575f80fd5b506103186004803603810190610313919061323a565b610910565b005b348015610325575f80fd5b5061032e610a20565b60405161033b9190612eff565b60405180910390f35b34801561034f575f80fd5b5061036a60048036038101906103659190612ea7565b610a32565b6040516103779190612eff565b60405180910390f35b34801561038b575f80fd5b50610394610ae0565b6040516103a19190612f27565b60405180910390f35b3480156103b5575f80fd5b506103be610ae6565b6040516103cb9190612eff565b60405180910390f35b3480156103df575f80fd5b506103e8610af9565b005b3480156103f5575f80fd5b506103fe610c31565b60405161040b9190612eff565b60405180910390f35b34801561041f575f80fd5b5061043a60048036038101906104359190613265565b610c44565b6040516104479190612f27565b60405180910390f35b34801561045b575f80fd5b50610464610c8a565b005b348015610471575f80fd5b5061047a610ddd565b604051610487919061329f565b60405180910390f35b34801561049b575f80fd5b506104a4610e05565b6040516104b19190612de9565b60405180910390f35b3480156104c5575f80fd5b506104e060048036038101906104db91906132b8565b610e95565b005b3480156104ed575f80fd5b5061050860048036038101906105039190612ea7565b610fc7565b6040516105159190612eff565b60405180910390f35b348015610529575f80fd5b50610544600480360381019061053f9190612ea7565b61108f565b6040516105519190612eff565b60405180910390f35b348015610565575f80fd5b5061056e6110ac565b005b34801561057b575f80fd5b50610596600480360381019061059191906132f6565b6114c5565b6040516105a39190612f27565b60405180910390f35b3480156105b7575f80fd5b506105d260048036038101906105cd919061335e565b611547565b005b3480156105df575f80fd5b506105e86115fa565b005b3480156105f5575f80fd5b50610610600480360381019061060b9190613265565b61171e565b005b34801561061d575f80fd5b506106266118e0565b005b60605f8054610636906133b6565b80601f0160208091040260200160405190810160405280929190818152602001828054610662906133b6565b80156106ad5780601f10610684576101008083540402835291602001916106ad565b820191905f5260205f20905b81548152906001019060200180831161069057829003601f168201915b5050505050905090565b5f6106ca6106c3611991565b8484611998565b6001905092915050565b5f600254905090565b5f6106e9848484611b5b565b6107a6846106f5611991565b6107a1856040518060600160405280602881526020016140ce6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610758611991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124b59092919063ffffffff16565b611998565b600190509392505050565b600c5481565b6107bf611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461084d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084490613430565b60405180910390fd5b5f825111801561085e575080518251145b61089d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089490613498565b60405180910390fd5b5f5b82518160ff161015610903576108f030848360ff16815181106108c5576108c46134b6565b5b6020026020010151848460ff16815181106108e3576108e26134b6565b5b6020026020010151612517565b80806108fb90613510565b91505061089f565b505050565b5f6012905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610950611991565b73ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90613582565b60405180910390fd5b6109af30610c44565b8111156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e8906135ea565b60405180910390fd5b610a1d3060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612517565b50565b60105f9054906101000a900460ff1681565b5f610ad6610a3e611991565b84610ad18560045f610a4e611991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127a490919063ffffffff16565b611998565b6001905092915050565b600b5481565b601060019054906101000a900460ff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b39611991565b73ffffffffffffffffffffffffffffffffffffffff1614610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8690613582565b60405180910390fd5b5f610b9930610c44565b118015610bb35750601060039054906101000a900460ff16155b610bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be990613652565b60405180910390fd5b6001601060036101000a81548160ff021916908315150217905550610c15612801565b5f601060036101000a81548160ff021916908315150217905550565b601060029054906101000a900460ff1681565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c92611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790613430565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610e14906133b6565b80601f0160208091040260200160405190810160405280929190818152602001828054610e40906133b6565b8015610e8b5780601f10610e6257610100808354040283529160200191610e8b565b820191905f5260205f20905b815481529060010190602001808311610e6e57829003601f168201915b5050505050905090565b610e9d611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2290613430565b60405180910390fd5b600b54821115610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f67906136e0565b60405180910390fd5b600c54811115610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac9061376e565b60405180910390fd5b81600b8190555080600c819055505050565b5f611085610fd3611991565b84611080856040518060600160405280602581526020016140f66025913960045f610ffc611991565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124b59092919063ffffffff16565b611998565b6001905092915050565b5f6110a261109b611991565b8484611b5b565b6001905092915050565b6110b4611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990613430565b60405180910390fd5b601060019054906101000a900460ff1615611192576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611189906137d6565b60405180910390fd5b7f0000000000000000000000006bded42c6da8fbf0d2ba55b2fa120c5e0c8d789173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121f9190613808565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f0000000000000000000000006bded42c6da8fbf0d2ba55b2fa120c5e0c8d789173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112c89190613808565b6040518363ffffffff1660e01b81526004016112e5929190613833565b6020604051808303815f875af1158015611301573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113259190613808565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061139060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016128e9565b6113bc60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001612941565b7f0000000000000000000000006bded42c6da8fbf0d2ba55b2fa120c5e0c8d789173ffffffffffffffffffffffffffffffffffffffff1663f305d719473061140330610c44565b5f8061140d610ddd565b426040518863ffffffff1660e01b815260040161142f9695949392919061389c565b60606040518083038185885af115801561144b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611470919061390f565b505050600160105f6101000a81548160ff0219169083151502179055506001601060016101000a81548160ff0219169083151502179055506001601060026101000a81548160ff021916908315150217905550565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61154f611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490613430565b60405180910390fd5b80601060026101000a81548160ff02191690831515021790555050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661163a611991565b73ffffffffffffffffffffffffffffffffffffffff1614611690576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168790613582565b60405180910390fd5b5f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516116d69061398c565b5f6040518083038185875af1925050503d805f8114611710576040519150601f19603f3d011682016040523d82523d5f602084013e611715565b606091505b50508091505050565b611726611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ab90613430565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181990613a10565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118e8611991565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611976576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196d90613430565b60405180910390fd5b5f60105f6101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fd90613a9e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6b90613b2c565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b4e9190612f27565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090613bba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e90613c48565b60405180910390fd5b5f8103611c4e57611c4983835f612517565b6124b0565b60105f9054906101000a900460ff161561213257611c6a610ddd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cd85750611ca8610ddd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d635750601060039054906101000a900460ff16155b1561213157601060019054906101000a900460ff16611e575760085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e17575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4d90613cb0565b60405180910390fd5b5b600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611ef4575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f9b57600d54811115611f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3590613d18565b60405180910390fd5b600e54611f4a83610c44565b82611f559190613d36565b1115611f96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8d90613db3565b60405180910390fd5b612130565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612038575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561208757600d54811115612082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207990613d18565b60405180910390fd5b61212f565b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661212e57600e546120e183610c44565b826120ec9190613d36565b111561212d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212490613db3565b60405180910390fd5b5b5b5b5b5b601060029054906101000a900460ff16801561215b5750601060039054906101000a900460ff16155b80156121ae5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612201575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612254575060085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561226a5750600f5461226730610c44565b10155b156122ad576001601060036101000a81548160ff021916908315150217905550612292612801565b5f601060036101000a81548160ff0219169083151502179055505b5f601060039054906101000a900460ff1615905060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061235c575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612365575f90505b5f81156124a257600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156123c357505f600c54115b156123f7576123f060646123e2600c548661299990919063ffffffff16565b612a1090919063ffffffff16565b905061247f565b600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561244e57505f600b54115b1561247e5761247b606461246d600b548661299990919063ffffffff16565b612a1090919063ffffffff16565b90505b5b5f8111156124a157612492853083612517565b808361249e9190613dd1565b92505b5b6124ad858585612517565b50505b505050565b5f8383111582906124fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f39190612de9565b60405180910390fd5b505f838561250a9190613dd1565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257c90613bba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ea90613c48565b60405180910390fd5b6125fe838383612a59565b612668816040518060600160405280602681526020016140a86026913960035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546124b59092919063ffffffff16565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126f98160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127a490919063ffffffff16565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127979190612f27565b60405180910390a3505050565b5f8082846127b29190613d36565b9050838110156127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90613e4e565b60405180910390fd5b8091505092915050565b5f61280b30610c44565b90505f810361281a57506128e7565b600a600f546128299190613e6c565b81111561284257600a600f5461283f9190613e6c565b90505b61284b81612a5e565b5f4790505f808211156128e35760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161289d9061398c565b5f6040518083038185875af1925050503d805f81146128d7576040519150601f19603f3d011682016040523d82523d5f602084013e6128dc565b606091505b5050809150505b5050505b565b8060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f8083036129a9575f9050612a0a565b5f82846129b69190613e6c565b90508284826129c59190613eda565b14612a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129fc90613f7a565b60405180910390fd5b809150505b92915050565b5f612a5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cfe565b905092915050565b505050565b5f600267ffffffffffffffff811115612a7a57612a79612f94565b5b604051908082528060200260200182016040528015612aa85781602001602082028036833780820191505090505b50905030815f81518110612abf57612abe6134b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000006bded42c6da8fbf0d2ba55b2fa120c5e0c8d789173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b869190613808565b81600181518110612b9a57612b996134b6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612c1f307f0000000000000000000000006bded42c6da8fbf0d2ba55b2fa120c5e0c8d78916114c5565b14612c7057612c6f307f0000000000000000000000006bded42c6da8fbf0d2ba55b2fa120c5e0c8d78917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611998565b5b7f0000000000000000000000006bded42c6da8fbf0d2ba55b2fa120c5e0c8d789173ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612cd195949392919061404f565b5f604051808303815f87803b158015612ce8575f80fd5b505af1925050508015612cf9575060015b505050565b5f8083118290612d44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3b9190612de9565b60405180910390fd5b505f8385612d529190613eda565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d96578082015181840152602081019050612d7b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612dbb82612d5f565b612dc58185612d69565b9350612dd5818560208601612d79565b612dde81612da1565b840191505092915050565b5f6020820190508181035f830152612e018184612db1565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612e4382612e1a565b9050919050565b612e5381612e39565b8114612e5d575f80fd5b50565b5f81359050612e6e81612e4a565b92915050565b5f819050919050565b612e8681612e74565b8114612e90575f80fd5b50565b5f81359050612ea181612e7d565b92915050565b5f8060408385031215612ebd57612ebc612e12565b5b5f612eca85828601612e60565b9250506020612edb85828601612e93565b9150509250929050565b5f8115159050919050565b612ef981612ee5565b82525050565b5f602082019050612f125f830184612ef0565b92915050565b612f2181612e74565b82525050565b5f602082019050612f3a5f830184612f18565b92915050565b5f805f60608486031215612f5757612f56612e12565b5b5f612f6486828701612e60565b9350506020612f7586828701612e60565b9250506040612f8686828701612e93565b9150509250925092565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612fca82612da1565b810181811067ffffffffffffffff82111715612fe957612fe8612f94565b5b80604052505050565b5f612ffb612e09565b90506130078282612fc1565b919050565b5f67ffffffffffffffff82111561302657613025612f94565b5b602082029050602081019050919050565b5f80fd5b5f61304d6130488461300c565b612ff2565b905080838252602082019050602084028301858111156130705761306f613037565b5b835b8181101561309957806130858882612e60565b845260208401935050602081019050613072565b5050509392505050565b5f82601f8301126130b7576130b6612f90565b5b81356130c784826020860161303b565b91505092915050565b5f67ffffffffffffffff8211156130ea576130e9612f94565b5b602082029050602081019050919050565b5f61310d613108846130d0565b612ff2565b905080838252602082019050602084028301858111156131305761312f613037565b5b835b8181101561315957806131458882612e93565b845260208401935050602081019050613132565b5050509392505050565b5f82601f83011261317757613176612f90565b5b81356131878482602086016130fb565b91505092915050565b5f80604083850312156131a6576131a5612e12565b5b5f83013567ffffffffffffffff8111156131c3576131c2612e16565b5b6131cf858286016130a3565b925050602083013567ffffffffffffffff8111156131f0576131ef612e16565b5b6131fc85828601613163565b9150509250929050565b5f60ff82169050919050565b61321b81613206565b82525050565b5f6020820190506132345f830184613212565b92915050565b5f6020828403121561324f5761324e612e12565b5b5f61325c84828501612e93565b91505092915050565b5f6020828403121561327a57613279612e12565b5b5f61328784828501612e60565b91505092915050565b61329981612e39565b82525050565b5f6020820190506132b25f830184613290565b92915050565b5f80604083850312156132ce576132cd612e12565b5b5f6132db85828601612e93565b92505060206132ec85828601612e93565b9150509250929050565b5f806040838503121561330c5761330b612e12565b5b5f61331985828601612e60565b925050602061332a85828601612e60565b9150509250929050565b61333d81612ee5565b8114613347575f80fd5b50565b5f8135905061335881613334565b92915050565b5f6020828403121561337357613372612e12565b5b5f6133808482850161334a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806133cd57607f821691505b6020821081036133e0576133df613389565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61341a602083612d69565b9150613425826133e6565b602082019050919050565b5f6020820190508181035f8301526134478161340e565b9050919050565b7f4469737065727365206461746120696e76616c696400000000000000000000005f82015250565b5f613482601583612d69565b915061348d8261344e565b602082019050919050565b5f6020820190508181035f8301526134af81613476565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61351a82613206565b915060ff820361352d5761352c6134e3565b5b600182019050919050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f61356c600e83612d69565b915061357782613538565b602082019050919050565b5f6020820190508181035f83015261359981613560565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f6135d4601f83612d69565b91506135df826135a0565b602082019050919050565b5f6020820190508181035f830152613601816135c8565b9050919050565b7f53776170207265717565737420696e76616c69640000000000000000000000005f82015250565b5f61363c601483612d69565b915061364782613608565b602082019050919050565b5f6020820190508181035f83015261366981613630565b9050919050565b7f4e657720627579206665652063616e6e6f74206578636565642063757272656e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f6136ca602183612d69565b91506136d582613670565b604082019050919050565b5f6020820190508181035f8301526136f7816136be565b9050919050565b7f4e65772073656c6c206665652063616e6e6f74206578636565642063757272655f8201527f6e74000000000000000000000000000000000000000000000000000000000000602082015250565b5f613758602283612d69565b9150613763826136fe565b604082019050919050565b5f6020820190508181035f8301526137858161374c565b9050919050565b7f54726164696e6720616c726561647920656e61626c65640000000000000000005f82015250565b5f6137c0601783612d69565b91506137cb8261378c565b602082019050919050565b5f6020820190508181035f8301526137ed816137b4565b9050919050565b5f8151905061380281612e4a565b92915050565b5f6020828403121561381d5761381c612e12565b5b5f61382a848285016137f4565b91505092915050565b5f6040820190506138465f830185613290565b6138536020830184613290565b9392505050565b5f819050919050565b5f819050919050565b5f61388661388161387c8461385a565b613863565b612e74565b9050919050565b6138968161386c565b82525050565b5f60c0820190506138af5f830189613290565b6138bc6020830188612f18565b6138c9604083018761388d565b6138d6606083018661388d565b6138e36080830185613290565b6138f060a0830184612f18565b979650505050505050565b5f8151905061390981612e7d565b92915050565b5f805f6060848603121561392657613925612e12565b5b5f613933868287016138fb565b9350506020613944868287016138fb565b9250506040613955868287016138fb565b9150509250925092565b5f81905092915050565b50565b5f6139775f8361395f565b915061398282613969565b5f82019050919050565b5f6139968261396c565b9150819050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6139fa602683612d69565b9150613a05826139a0565b604082019050919050565b5f6020820190508181035f830152613a27816139ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a88602483612d69565b9150613a9382613a2e565b604082019050919050565b5f6020820190508181035f830152613ab581613a7c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613b16602283612d69565b9150613b2182613abc565b604082019050919050565b5f6020820190508181035f830152613b4381613b0a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613ba4602583612d69565b9150613baf82613b4a565b604082019050919050565b5f6020820190508181035f830152613bd181613b98565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c32602383612d69565b9150613c3d82613bd8565b604082019050919050565b5f6020820190508181035f830152613c5f81613c26565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f613c9a601383612d69565b9150613ca582613c66565b602082019050919050565b5f6020820190508181035f830152613cc781613c8e565b9050919050565b7f4d617820545820657863656564656400000000000000000000000000000000005f82015250565b5f613d02600f83612d69565b9150613d0d82613cce565b602082019050919050565b5f6020820190508181035f830152613d2f81613cf6565b9050919050565b5f613d4082612e74565b9150613d4b83612e74565b9250828201905080821115613d6357613d626134e3565b5b92915050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613d9d601383612d69565b9150613da882613d69565b602082019050919050565b5f6020820190508181035f830152613dca81613d91565b9050919050565b5f613ddb82612e74565b9150613de683612e74565b9250828203905081811115613dfe57613dfd6134e3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613e38601b83612d69565b9150613e4382613e04565b602082019050919050565b5f6020820190508181035f830152613e6581613e2c565b9050919050565b5f613e7682612e74565b9150613e8183612e74565b9250828202613e8f81612e74565b91508282048414831517613ea657613ea56134e3565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ee482612e74565b9150613eef83612e74565b925082613eff57613efe613ead565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f64602183612d69565b9150613f6f82613f0a565b604082019050919050565b5f6020820190508181035f830152613f9181613f58565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613fca81612e39565b82525050565b5f613fdb8383613fc1565b60208301905092915050565b5f602082019050919050565b5f613ffd82613f98565b6140078185613fa2565b935061401283613fb2565b805f5b838110156140425781516140298882613fd0565b975061403483613fe7565b925050600181019050614015565b5085935050505092915050565b5f60a0820190506140625f830188612f18565b61406f602083018761388d565b81810360408301526140818186613ff3565b90506140906060830185613290565b61409d6080830184612f18565b969550505050505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220877fb86322b194633b99652bd2e8df41e8f1105599eb23e91919e195114b9a1764736f6c63430008160033

Deployed Bytecode Sourcemap

15494:8456:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4074:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5464:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4654:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5699:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15945:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18045:409;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4496:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23386:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16099:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6130:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15913:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16131:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23093:285;;;;;;;;;;;;;:::i;:::-;;16164:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4825:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12846:150;;;;;;;;;;;;;:::i;:::-;;12369:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4285:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22794:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6458:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5014:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17326:711;;;;;;;;;;;;;:::i;:::-;;5252:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21518:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23690:220;;;;;;;;;;;;;:::i;:::-;;13151:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21426:84;;;;;;;;;;;;;:::i;:::-;;4074:100;4128:13;4161:5;4154:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4074:100;:::o;5464:169::-;5547:4;5564:39;5573:12;:10;:12::i;:::-;5587:7;5596:6;5564:8;:39::i;:::-;5621:4;5614:11;;5464:169;;;;:::o;4654:108::-;4715:7;4742:12;;4735:19;;4654:108;:::o;5699:321::-;5805:4;5822:36;5832:6;5840:9;5851:6;5822:9;:36::i;:::-;5869:121;5878:6;5886:12;:10;:12::i;:::-;5900:89;5938:6;5900:89;;;;;;;;;;;;;;;;;:11;:19;5912:6;5900:19;;;;;;;;;;;;;;;:33;5920:12;:10;:12::i;:::-;5900:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5869:8;:121::i;:::-;6008:4;6001:11;;5699:321;;;;;:::o;15945:27::-;;;;:::o;18045:409::-;12591:12;:10;:12::i;:::-;12581:22;;:6;;;;;;;;;;;:22;;;12573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18199:1:::1;18172:17;:24;:28;:83;;;;;18232:16;:23;18204:17;:24;:51;18172:83;18164:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;18299:7;18294:153;18316:17;:24;18312:1;:28;;;18294:153;;;18362:73;18386:4;18393:17;18411:1;18393:20;;;;;;;;;;:::i;:::-;;;;;;;;18415:16;18432:1;18415:19;;;;;;;;;;:::i;:::-;;;;;;;;18362:15;:73::i;:::-;18342:3;;;;;:::i;:::-;;;;18294:153;;;;18045:409:::0;;:::o;4496:93::-;4554:5;4579:2;4572:9;;4496:93;:::o;23386:296::-;23475:14;;;;;;;;;;;23459:30;;:12;:10;:12::i;:::-;:30;;;23451:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;23542:24;23560:4;23542:9;:24::i;:::-;23527:11;:39;;23519:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;23615:59;23639:4;23646:14;;;;;;;;;;;23662:11;23615:15;:59::i;:::-;23386:296;:::o;16099:25::-;;;;;;;;;;;;;:::o;6130:218::-;6218:4;6235:83;6244:12;:10;:12::i;:::-;6258:7;6267:50;6306:10;6267:11;:25;6279:12;:10;:12::i;:::-;6267:25;;;;;;;;;;;;;;;:34;6293:7;6267:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6235:8;:83::i;:::-;6336:4;6329:11;;6130:218;;;;:::o;15913:25::-;;;;:::o;16131:26::-;;;;;;;;;;;;;:::o;23093:285::-;23162:14;;;;;;;;;;;23146:30;;:12;:10;:12::i;:::-;:30;;;23138:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;23241:1;23214:24;23232:4;23214:9;:24::i;:::-;:28;:44;;;;;23247:11;;;;;;;;;;;23246:12;23214:44;23206:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;23310:4;23296:11;;:18;;;;;;;;;;;;;;;;;;23327:11;:9;:11::i;:::-;23365:5;23351:11;;:19;;;;;;;;;;;;;;;;;;23093:285::o;16164:23::-;;;;;;;;;;;;;:::o;4825:127::-;4899:7;4926:9;:18;4936:7;4926:18;;;;;;;;;;;;;;;;4919:25;;4825:127;;;:::o;12846:150::-;12591:12;:10;:12::i;:::-;12581:22;;:6;;;;;;;;;;;:22;;;12573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12953:1:::1;12916:40;;12937:6;;;;;;;;;;;12916:40;;;;;;;;;;;;12986:1;12969:6;;:19;;;;;;;;;;;;;;;;;;12846:150::o:0;12369:79::-;12407:7;12434:6;;;;;;;;;;;12427:13;;12369:79;:::o;4285:104::-;4341:13;4374:7;4367:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4285:104;:::o;22794:291::-;12591:12;:10;:12::i;:::-;12581:22;;:6;;;;;;;;;;;:22;;;12573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22898:6:::1;;22887:7;:17;;22879:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;22973:7;;22961:8;:19;;22953:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23041:7;23032:6;:16;;;;23069:8;23059:7;:18;;;;22794:291:::0;;:::o;6458:269::-;6551:4;6568:129;6577:12;:10;:12::i;:::-;6591:7;6600:96;6639:15;6600:96;;;;;;;;;;;;;;;;;:11;:25;6612:12;:10;:12::i;:::-;6600:25;;;;;;;;;;;;;;;:34;6626:7;6600:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6568:8;:129::i;:::-;6715:4;6708:11;;6458:269;;;;:::o;5014:175::-;5100:4;5117:42;5127:12;:10;:12::i;:::-;5141:9;5152:6;5117:9;:42::i;:::-;5177:4;5170:11;;5014:175;;;;:::o;17326:711::-;12591:12;:10;:12::i;:::-;12581:22;;:6;;;;;;;;;;;:22;;;12573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17388:14:::1;;;;;;;;;;;17387:15;17379:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;17478:7;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17469:38;;;17516:4;17523:7;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17469:69;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17461:5;;:77;;;;;;;;;;;;;;;;;;17551:39;17577:5;;;;;;;;;;;17585:4;17551:17;:39::i;:::-;17601:33;17621:5;;;;;;;;;;;17629:4;17601:11;:33::i;:::-;17674:7;:23;;;17705:21;17750:4;17770:24;17788:4;17770:9;:24::i;:::-;17809:1;17825::::0;17841:7:::1;:5;:7::i;:::-;17863:15;17674:215;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17964:4;17948:13;;:20;;;;;;;;;;;;;;;;;;17996:4;17979:14;;:21;;;;;;;;;;;;;;;;;;18025:4;18011:11;;:18;;;;;;;;;;;;;;;;;;17326:711::o:0;5252:151::-;5341:7;5368:11;:18;5380:5;5368:18;;;;;;;;;;;;;;;:27;5387:7;5368:27;;;;;;;;;;;;;;;;5361:34;;5252:151;;;;:::o;21518:103::-;12591:12;:10;:12::i;:::-;12581:22;;:6;;;;;;;;;;;:22;;;12573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21603:10:::1;21589:11;;:24;;;;;;;;;;;;;;;;;;21518:103:::0;:::o;23690:220::-;23757:14;;;;;;;;;;;23741:30;;:12;:10;:12::i;:::-;:30;;;23733:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;23803:12;23848:14;;;;;;;;;;;23840:28;;23876:21;23840:62;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23826:76;;;;;23722:188;23690:220::o;13151:248::-;12591:12;:10;:12::i;:::-;12581:22;;:6;;;;;;;;;;;:22;;;12573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13260:1:::1;13240:22;;:8;:22;;::::0;13232:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13352:8;13323:38;;13344:6;;;;;;;;;;;13323:38;;;;;;;;;;;;13383:8;13374:6;;:17;;;;;;;;;;;;;;;;;;13151:248:::0;:::o;21426:84::-;12591:12;:10;:12::i;:::-;12581:22;;:6;;;;;;;;;;;:22;;;12573:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21497:5:::1;21481:13;;:21;;;;;;;;;;;;;;;;;;21426:84::o:0;303:98::-;356:7;383:10;376:17;;303:98;:::o;8500:348::-;8619:1;8602:19;;:5;:19;;;8594:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8700:1;8681:21;;:7;:21;;;8673:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8784:6;8754:11;:18;8766:5;8754:18;;;;;;;;;;;;;;;:27;8773:7;8754:27;;;;;;;;;;;;;;;:36;;;;8824:7;8808:32;;8817:5;8808:32;;;8833:6;8808:32;;;;;;:::i;:::-;;;;;;;;8500:348;;;:::o;18855:2563::-;18969:1;18953:18;;:4;:18;;;18945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19046:1;19032:16;;:2;:16;;;19024:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19115:1;19105:6;:11;19101:95;;19133:28;19149:4;19155:2;19159:1;19133:15;:28::i;:::-;19178:7;;19101:95;19232:13;;;;;;;;;;;19228:945;;;19274:7;:5;:7::i;:::-;19266:15;;:4;:15;;;;:32;;;;;19291:7;:5;:7::i;:::-;19285:13;;:2;:13;;;;19266:32;:52;;;;;19316:1;19302:16;;:2;:16;;;;19266:52;:74;;;;;15686:6;19322:18;;:2;:18;;;;19266:74;:90;;;;;19345:11;;;;;;;;;;;19344:12;19266:90;19262:900;;;19382:14;;;;;;;;;;;19377:148;;19429:19;:25;19449:4;19429:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19458:19;:23;19478:2;19458:23;;;;;;;;;;;;;;;;;;;;;;;;;19429:52;19421:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;19377:148;19549:9;:15;19559:4;19549:15;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;19569:20;:24;19590:2;19569:24;;;;;;;;;;;;;;;;;;;;;;;;;19568:25;19549:44;19545:602;;;19665:12;;19655:6;:22;;19647:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;19754:16;;19737:13;19747:2;19737:9;:13::i;:::-;19728:6;:22;;;;:::i;:::-;:42;;19720:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19545:602;;;19824:9;:13;19834:2;19824:13;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;;19842:20;:26;19863:4;19842:26;;;;;;;;;;;;;;;;;;;;;;;;;19841:27;19824:44;19820:327;;;19941:12;;19931:6;:22;;19923:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;19820:327;;;20004:20;:24;20025:2;20004:24;;;;;;;;;;;;;;;;;;;;;;;;;19999:148;;20087:16;;20070:13;20080:2;20070:9;:13::i;:::-;20061:6;:22;;;;:::i;:::-;:42;;20053:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19999:148;19820:327;19545:602;19262:900;19228:945;20237:11;;;;;;;;;;;:41;;;;;20267:11;;;;;;;;;;;20266:12;20237:41;:75;;;;;20297:9;:15;20307:4;20297:15;;;;;;;;;;;;;;;;;;;;;;;;;20296:16;20237:75;:119;;;;;20331:19;:25;20351:4;20331:25;;;;;;;;;;;;;;;;;;;;;;;;;20330:26;20237:119;:161;;;;;20375:19;:23;20395:2;20375:23;;;;;;;;;;;;;;;;;;;;;;;;;20374:24;20237:161;:226;;;;;20444:19;;20416:24;20434:4;20416:9;:24::i;:::-;:47;;20237:226;20219:365;;;20504:4;20490:11;;:18;;;;;;;;;;;;;;;;;;20525:11;:9;:11::i;:::-;20567:5;20553:11;;:19;;;;;;;;;;;;;;;;;;20219:365;20614:12;20630:11;;;;;;;;;;;20629:12;20614:27;;20658:19;:25;20678:4;20658:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20687:19;:23;20707:2;20687:23;;;;;;;;;;;;;;;;;;;;;;;;;20658:52;20654:100;;;20737:5;20727:15;;20654:100;20766:12;20862:7;20858:479;;;20890:9;:13;20900:2;20890:13;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;;;20917:1;20907:7;;:11;20890:28;20886:265;;;20972:28;20996:3;20972:19;20983:7;;20972:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;20965:35;;20886:265;;;21026:9;:15;21036:4;21026:15;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;;21054:1;21045:6;;:10;21026:29;21022:129;;;21108:27;21131:3;21108:18;21119:6;;21108;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21101:34;;21022:129;20886:265;21178:1;21171:4;:8;21167:159;;;21233:42;21249:4;21263;21270;21233:15;:42::i;:::-;21306:4;21296:14;;;;;:::i;:::-;;;21167:159;20858:479;21377:33;21393:4;21399:2;21403:6;21377:15;:33::i;:::-;18934:2484;;18855:2563;;;;:::o;9871:192::-;9957:7;9990:1;9985;:6;;9993:12;9977:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;10017:9;10033:1;10029;:5;;;;:::i;:::-;10017:17;;10054:1;10047:8;;;9871:192;;;;;:::o;6818:541::-;6942:1;6924:20;;:6;:20;;;6916:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7026:1;7005:23;;:9;:23;;;6997:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7081:47;7102:6;7110:9;7121:6;7081:20;:47::i;:::-;7161:71;7183:6;7161:71;;;;;;;;;;;;;;;;;:9;:17;7171:6;7161:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;7141:9;:17;7151:6;7141:17;;;;;;;;;;;;;;;:91;;;;7266:32;7291:6;7266:9;:20;7276:9;7266:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7243:9;:20;7253:9;7243:20;;;;;;;;;;;;;;;:55;;;;7333:9;7316:35;;7325:6;7316:35;;;7344:6;7316:35;;;;;;:::i;:::-;;;;;;;;6818:541;;;:::o;9233:181::-;9291:7;9311:9;9327:1;9323;:5;;;;:::i;:::-;9311:17;;9352:1;9347;:6;;9339:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9405:1;9398:8;;;9233:181;;;;:::o;21629:581::-;21669:25;21697:24;21715:4;21697:9;:24::i;:::-;21669:52;;21759:1;21738:17;:22;21734:61;;21777:7;;;21734:61;21853:2;21831:19;;:24;;;;:::i;:::-;21811:17;:44;21807:121;;;21914:2;21892:19;;:24;;;;:::i;:::-;21872:44;;21807:121;21940:36;21958:17;21940;:36::i;:::-;21989:26;22018:21;21989:50;;22050:12;22100:1;22079:18;:22;22075:128;;;22140:14;;;;;;;;;;;22132:28;;22168:18;22132:59;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22118:73;;;;;22075:128;21658:552;;;21629:581;:::o;18602:134::-;18717:11;18684:20;:30;18705:8;18684:30;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;18602:134;;:::o;18744:103::-;18832:7;18813:9;:16;18823:5;18813:16;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;18744:103;;:::o;10178:250::-;10236:7;10265:1;10260;:6;10256:47;;10290:1;10283:8;;;;10256:47;10315:9;10331:1;10327;:5;;;;:::i;:::-;10315:17;;10360:1;10355;10351;:5;;;;:::i;:::-;:10;10343:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10419:1;10412:8;;;10178:250;;;;;:::o;10595:132::-;10653:7;10680:39;10684:1;10687;10680:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;10673:46;;10595:132;;;;:::o;8973:91::-;;;;:::o;22218:568::-;22285:21;22323:1;22309:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22285:40;;22354:4;22336;22341:1;22336:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22380:7;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22370:4;22375:1;22370:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;22457:17;22411:42;22429:4;22444:7;22411:9;:42::i;:::-;:63;22407:156;;22491:60;22508:4;22523:7;22533:17;22491:8;:60::i;:::-;22407:156;22579:7;:58;;;22652:11;22678:1;22694:4;22721;22741:15;22579:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22575:204;22274:512;22218:568;:::o;10914:278::-;11000:7;11032:1;11028;:5;11035:12;11020:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;11059:9;11075:1;11071;:5;;;;:::i;:::-;11059:17;;11183:1;11176:8;;;10914:278;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:117::-;4532:1;4529;4522:12;4546:180;4594:77;4591:1;4584:88;4691:4;4688:1;4681:15;4715:4;4712:1;4705:15;4732:281;4815:27;4837:4;4815:27;:::i;:::-;4807:6;4803:40;4945:6;4933:10;4930:22;4909:18;4897:10;4894:34;4891:62;4888:88;;;4956:18;;:::i;:::-;4888:88;4996:10;4992:2;4985:22;4775:238;4732:281;;:::o;5019:129::-;5053:6;5080:20;;:::i;:::-;5070:30;;5109:33;5137:4;5129:6;5109:33;:::i;:::-;5019:129;;;:::o;5154:311::-;5231:4;5321:18;5313:6;5310:30;5307:56;;;5343:18;;:::i;:::-;5307:56;5393:4;5385:6;5381:17;5373:25;;5453:4;5447;5443:15;5435:23;;5154:311;;;:::o;5471:117::-;5580:1;5577;5570:12;5611:710;5707:5;5732:81;5748:64;5805:6;5748:64;:::i;:::-;5732:81;:::i;:::-;5723:90;;5833:5;5862:6;5855:5;5848:21;5896:4;5889:5;5885:16;5878:23;;5949:4;5941:6;5937:17;5929:6;5925:30;5978:3;5970:6;5967:15;5964:122;;;5997:79;;:::i;:::-;5964:122;6112:6;6095:220;6129:6;6124:3;6121:15;6095:220;;;6204:3;6233:37;6266:3;6254:10;6233:37;:::i;:::-;6228:3;6221:50;6300:4;6295:3;6291:14;6284:21;;6171:144;6155:4;6150:3;6146:14;6139:21;;6095:220;;;6099:21;5713:608;;5611:710;;;;;:::o;6344:370::-;6415:5;6464:3;6457:4;6449:6;6445:17;6441:27;6431:122;;6472:79;;:::i;:::-;6431:122;6589:6;6576:20;6614:94;6704:3;6696:6;6689:4;6681:6;6677:17;6614:94;:::i;:::-;6605:103;;6421:293;6344:370;;;;:::o;6720:311::-;6797:4;6887:18;6879:6;6876:30;6873:56;;;6909:18;;:::i;:::-;6873:56;6959:4;6951:6;6947:17;6939:25;;7019:4;7013;7009:15;7001:23;;6720:311;;;:::o;7054:710::-;7150:5;7175:81;7191:64;7248:6;7191:64;:::i;:::-;7175:81;:::i;:::-;7166:90;;7276:5;7305:6;7298:5;7291:21;7339:4;7332:5;7328:16;7321:23;;7392:4;7384:6;7380:17;7372:6;7368:30;7421:3;7413:6;7410:15;7407:122;;;7440:79;;:::i;:::-;7407:122;7555:6;7538:220;7572:6;7567:3;7564:15;7538:220;;;7647:3;7676:37;7709:3;7697:10;7676:37;:::i;:::-;7671:3;7664:50;7743:4;7738:3;7734:14;7727:21;;7614:144;7598:4;7593:3;7589:14;7582:21;;7538:220;;;7542:21;7156:608;;7054:710;;;;;:::o;7787:370::-;7858:5;7907:3;7900:4;7892:6;7888:17;7884:27;7874:122;;7915:79;;:::i;:::-;7874:122;8032:6;8019:20;8057:94;8147:3;8139:6;8132:4;8124:6;8120:17;8057:94;:::i;:::-;8048:103;;7864:293;7787:370;;;;:::o;8163:894::-;8281:6;8289;8338:2;8326:9;8317:7;8313:23;8309:32;8306:119;;;8344:79;;:::i;:::-;8306:119;8492:1;8481:9;8477:17;8464:31;8522:18;8514:6;8511:30;8508:117;;;8544:79;;:::i;:::-;8508:117;8649:78;8719:7;8710:6;8699:9;8695:22;8649:78;:::i;:::-;8639:88;;8435:302;8804:2;8793:9;8789:18;8776:32;8835:18;8827:6;8824:30;8821:117;;;8857:79;;:::i;:::-;8821:117;8962:78;9032:7;9023:6;9012:9;9008:22;8962:78;:::i;:::-;8952:88;;8747:303;8163:894;;;;;:::o;9063:86::-;9098:7;9138:4;9131:5;9127:16;9116:27;;9063:86;;;:::o;9155:112::-;9238:22;9254:5;9238:22;:::i;:::-;9233:3;9226:35;9155:112;;:::o;9273:214::-;9362:4;9400:2;9389:9;9385:18;9377:26;;9413:67;9477:1;9466:9;9462:17;9453:6;9413:67;:::i;:::-;9273:214;;;;:::o;9493:329::-;9552:6;9601:2;9589:9;9580:7;9576:23;9572:32;9569:119;;;9607:79;;:::i;:::-;9569:119;9727:1;9752:53;9797:7;9788:6;9777:9;9773:22;9752:53;:::i;:::-;9742:63;;9698:117;9493:329;;;;:::o;9828:::-;9887:6;9936:2;9924:9;9915:7;9911:23;9907:32;9904:119;;;9942:79;;:::i;:::-;9904:119;10062:1;10087:53;10132:7;10123:6;10112:9;10108:22;10087:53;:::i;:::-;10077:63;;10033:117;9828:329;;;;:::o;10163:118::-;10250:24;10268:5;10250:24;:::i;:::-;10245:3;10238:37;10163:118;;:::o;10287:222::-;10380:4;10418:2;10407:9;10403:18;10395:26;;10431:71;10499:1;10488:9;10484:17;10475:6;10431:71;:::i;:::-;10287:222;;;;:::o;10515:474::-;10583:6;10591;10640:2;10628:9;10619:7;10615:23;10611:32;10608:119;;;10646:79;;:::i;:::-;10608:119;10766:1;10791:53;10836:7;10827:6;10816:9;10812:22;10791:53;:::i;:::-;10781:63;;10737:117;10893:2;10919:53;10964:7;10955:6;10944:9;10940:22;10919:53;:::i;:::-;10909:63;;10864:118;10515:474;;;;;:::o;10995:::-;11063:6;11071;11120:2;11108:9;11099:7;11095:23;11091:32;11088:119;;;11126:79;;:::i;:::-;11088:119;11246:1;11271:53;11316:7;11307:6;11296:9;11292:22;11271:53;:::i;:::-;11261:63;;11217:117;11373:2;11399:53;11444:7;11435:6;11424:9;11420:22;11399:53;:::i;:::-;11389:63;;11344:118;10995:474;;;;;:::o;11475:116::-;11545:21;11560:5;11545:21;:::i;:::-;11538:5;11535:32;11525:60;;11581:1;11578;11571:12;11525:60;11475:116;:::o;11597:133::-;11640:5;11678:6;11665:20;11656:29;;11694:30;11718:5;11694:30;:::i;:::-;11597:133;;;;:::o;11736:323::-;11792:6;11841:2;11829:9;11820:7;11816:23;11812:32;11809:119;;;11847:79;;:::i;:::-;11809:119;11967:1;11992:50;12034:7;12025:6;12014:9;12010:22;11992:50;:::i;:::-;11982:60;;11938:114;11736:323;;;;:::o;12065:180::-;12113:77;12110:1;12103:88;12210:4;12207:1;12200:15;12234:4;12231:1;12224:15;12251:320;12295:6;12332:1;12326:4;12322:12;12312:22;;12379:1;12373:4;12369:12;12400:18;12390:81;;12456:4;12448:6;12444:17;12434:27;;12390:81;12518:2;12510:6;12507:14;12487:18;12484:38;12481:84;;12537:18;;:::i;:::-;12481:84;12302:269;12251:320;;;:::o;12577:182::-;12717:34;12713:1;12705:6;12701:14;12694:58;12577:182;:::o;12765:366::-;12907:3;12928:67;12992:2;12987:3;12928:67;:::i;:::-;12921:74;;13004:93;13093:3;13004:93;:::i;:::-;13122:2;13117:3;13113:12;13106:19;;12765:366;;;:::o;13137:419::-;13303:4;13341:2;13330:9;13326:18;13318:26;;13390:9;13384:4;13380:20;13376:1;13365:9;13361:17;13354:47;13418:131;13544:4;13418:131;:::i;:::-;13410:139;;13137:419;;;:::o;13562:171::-;13702:23;13698:1;13690:6;13686:14;13679:47;13562:171;:::o;13739:366::-;13881:3;13902:67;13966:2;13961:3;13902:67;:::i;:::-;13895:74;;13978:93;14067:3;13978:93;:::i;:::-;14096:2;14091:3;14087:12;14080:19;;13739:366;;;:::o;14111:419::-;14277:4;14315:2;14304:9;14300:18;14292:26;;14364:9;14358:4;14354:20;14350:1;14339:9;14335:17;14328:47;14392:131;14518:4;14392:131;:::i;:::-;14384:139;;14111:419;;;:::o;14536:180::-;14584:77;14581:1;14574:88;14681:4;14678:1;14671:15;14705:4;14702:1;14695:15;14722:180;14770:77;14767:1;14760:88;14867:4;14864:1;14857:15;14891:4;14888:1;14881:15;14908:167;14945:3;14968:22;14984:5;14968:22;:::i;:::-;14959:31;;15012:4;15005:5;15002:15;14999:41;;15020:18;;:::i;:::-;14999:41;15067:1;15060:5;15056:13;15049:20;;14908:167;;;:::o;15081:164::-;15221:16;15217:1;15209:6;15205:14;15198:40;15081:164;:::o;15251:366::-;15393:3;15414:67;15478:2;15473:3;15414:67;:::i;:::-;15407:74;;15490:93;15579:3;15490:93;:::i;:::-;15608:2;15603:3;15599:12;15592:19;;15251:366;;;:::o;15623:419::-;15789:4;15827:2;15816:9;15812:18;15804:26;;15876:9;15870:4;15866:20;15862:1;15851:9;15847:17;15840:47;15904:131;16030:4;15904:131;:::i;:::-;15896:139;;15623:419;;;:::o;16048:181::-;16188:33;16184:1;16176:6;16172:14;16165:57;16048:181;:::o;16235:366::-;16377:3;16398:67;16462:2;16457:3;16398:67;:::i;:::-;16391:74;;16474:93;16563:3;16474:93;:::i;:::-;16592:2;16587:3;16583:12;16576:19;;16235:366;;;:::o;16607:419::-;16773:4;16811:2;16800:9;16796:18;16788:26;;16860:9;16854:4;16850:20;16846:1;16835:9;16831:17;16824:47;16888:131;17014:4;16888:131;:::i;:::-;16880:139;;16607:419;;;:::o;17032:170::-;17172:22;17168:1;17160:6;17156:14;17149:46;17032:170;:::o;17208:366::-;17350:3;17371:67;17435:2;17430:3;17371:67;:::i;:::-;17364:74;;17447:93;17536:3;17447:93;:::i;:::-;17565:2;17560:3;17556:12;17549:19;;17208:366;;;:::o;17580:419::-;17746:4;17784:2;17773:9;17769:18;17761:26;;17833:9;17827:4;17823:20;17819:1;17808:9;17804:17;17797:47;17861:131;17987:4;17861:131;:::i;:::-;17853:139;;17580:419;;;:::o;18005:220::-;18145:34;18141:1;18133:6;18129:14;18122:58;18214:3;18209:2;18201:6;18197:15;18190:28;18005:220;:::o;18231:366::-;18373:3;18394:67;18458:2;18453:3;18394:67;:::i;:::-;18387:74;;18470:93;18559:3;18470:93;:::i;:::-;18588:2;18583:3;18579:12;18572:19;;18231:366;;;:::o;18603:419::-;18769:4;18807:2;18796:9;18792:18;18784:26;;18856:9;18850:4;18846:20;18842:1;18831:9;18827:17;18820:47;18884:131;19010:4;18884:131;:::i;:::-;18876:139;;18603:419;;;:::o;19028:221::-;19168:34;19164:1;19156:6;19152:14;19145:58;19237:4;19232:2;19224:6;19220:15;19213:29;19028:221;:::o;19255:366::-;19397:3;19418:67;19482:2;19477:3;19418:67;:::i;:::-;19411:74;;19494:93;19583:3;19494:93;:::i;:::-;19612:2;19607:3;19603:12;19596:19;;19255:366;;;:::o;19627:419::-;19793:4;19831:2;19820:9;19816:18;19808:26;;19880:9;19874:4;19870:20;19866:1;19855:9;19851:17;19844:47;19908:131;20034:4;19908:131;:::i;:::-;19900:139;;19627:419;;;:::o;20052:173::-;20192:25;20188:1;20180:6;20176:14;20169:49;20052:173;:::o;20231:366::-;20373:3;20394:67;20458:2;20453:3;20394:67;:::i;:::-;20387:74;;20470:93;20559:3;20470:93;:::i;:::-;20588:2;20583:3;20579:12;20572:19;;20231:366;;;:::o;20603:419::-;20769:4;20807:2;20796:9;20792:18;20784:26;;20856:9;20850:4;20846:20;20842:1;20831:9;20827:17;20820:47;20884:131;21010:4;20884:131;:::i;:::-;20876:139;;20603:419;;;:::o;21028:143::-;21085:5;21116:6;21110:13;21101:22;;21132:33;21159:5;21132:33;:::i;:::-;21028:143;;;;:::o;21177:351::-;21247:6;21296:2;21284:9;21275:7;21271:23;21267:32;21264:119;;;21302:79;;:::i;:::-;21264:119;21422:1;21447:64;21503:7;21494:6;21483:9;21479:22;21447:64;:::i;:::-;21437:74;;21393:128;21177:351;;;;:::o;21534:332::-;21655:4;21693:2;21682:9;21678:18;21670:26;;21706:71;21774:1;21763:9;21759:17;21750:6;21706:71;:::i;:::-;21787:72;21855:2;21844:9;21840:18;21831:6;21787:72;:::i;:::-;21534:332;;;;;:::o;21872:85::-;21917:7;21946:5;21935:16;;21872:85;;;:::o;21963:60::-;21991:3;22012:5;22005:12;;21963:60;;;:::o;22029:158::-;22087:9;22120:61;22138:42;22147:32;22173:5;22147:32;:::i;:::-;22138:42;:::i;:::-;22120:61;:::i;:::-;22107:74;;22029:158;;;:::o;22193:147::-;22288:45;22327:5;22288:45;:::i;:::-;22283:3;22276:58;22193:147;;:::o;22346:807::-;22595:4;22633:3;22622:9;22618:19;22610:27;;22647:71;22715:1;22704:9;22700:17;22691:6;22647:71;:::i;:::-;22728:72;22796:2;22785:9;22781:18;22772:6;22728:72;:::i;:::-;22810:80;22886:2;22875:9;22871:18;22862:6;22810:80;:::i;:::-;22900;22976:2;22965:9;22961:18;22952:6;22900:80;:::i;:::-;22990:73;23058:3;23047:9;23043:19;23034:6;22990:73;:::i;:::-;23073;23141:3;23130:9;23126:19;23117:6;23073:73;:::i;:::-;22346:807;;;;;;;;;:::o;23159:143::-;23216:5;23247:6;23241:13;23232:22;;23263:33;23290:5;23263:33;:::i;:::-;23159:143;;;;:::o;23308:663::-;23396:6;23404;23412;23461:2;23449:9;23440:7;23436:23;23432:32;23429:119;;;23467:79;;:::i;:::-;23429:119;23587:1;23612:64;23668:7;23659:6;23648:9;23644:22;23612:64;:::i;:::-;23602:74;;23558:128;23725:2;23751:64;23807:7;23798:6;23787:9;23783:22;23751:64;:::i;:::-;23741:74;;23696:129;23864:2;23890:64;23946:7;23937:6;23926:9;23922:22;23890:64;:::i;:::-;23880:74;;23835:129;23308:663;;;;;:::o;23977:147::-;24078:11;24115:3;24100:18;;23977:147;;;;:::o;24130:114::-;;:::o;24250:398::-;24409:3;24430:83;24511:1;24506:3;24430:83;:::i;:::-;24423:90;;24522:93;24611:3;24522:93;:::i;:::-;24640:1;24635:3;24631:11;24624:18;;24250:398;;;:::o;24654:379::-;24838:3;24860:147;25003:3;24860:147;:::i;:::-;24853:154;;25024:3;25017:10;;24654:379;;;:::o;25039:225::-;25179:34;25175:1;25167:6;25163:14;25156:58;25248:8;25243:2;25235:6;25231:15;25224:33;25039:225;:::o;25270:366::-;25412:3;25433:67;25497:2;25492:3;25433:67;:::i;:::-;25426:74;;25509:93;25598:3;25509:93;:::i;:::-;25627:2;25622:3;25618:12;25611:19;;25270:366;;;:::o;25642:419::-;25808:4;25846:2;25835:9;25831:18;25823:26;;25895:9;25889:4;25885:20;25881:1;25870:9;25866:17;25859:47;25923:131;26049:4;25923:131;:::i;:::-;25915:139;;25642:419;;;:::o;26067:223::-;26207:34;26203:1;26195:6;26191:14;26184:58;26276:6;26271:2;26263:6;26259:15;26252:31;26067:223;:::o;26296:366::-;26438:3;26459:67;26523:2;26518:3;26459:67;:::i;:::-;26452:74;;26535:93;26624:3;26535:93;:::i;:::-;26653:2;26648:3;26644:12;26637:19;;26296:366;;;:::o;26668:419::-;26834:4;26872:2;26861:9;26857:18;26849:26;;26921:9;26915:4;26911:20;26907:1;26896:9;26892:17;26885:47;26949:131;27075:4;26949:131;:::i;:::-;26941:139;;26668:419;;;:::o;27093:221::-;27233:34;27229:1;27221:6;27217:14;27210:58;27302:4;27297:2;27289:6;27285:15;27278:29;27093:221;:::o;27320:366::-;27462:3;27483:67;27547:2;27542:3;27483:67;:::i;:::-;27476:74;;27559:93;27648:3;27559:93;:::i;:::-;27677:2;27672:3;27668:12;27661:19;;27320:366;;;:::o;27692:419::-;27858:4;27896:2;27885:9;27881:18;27873:26;;27945:9;27939:4;27935:20;27931:1;27920:9;27916:17;27909:47;27973:131;28099:4;27973:131;:::i;:::-;27965:139;;27692:419;;;:::o;28117:224::-;28257:34;28253:1;28245:6;28241:14;28234:58;28326:7;28321:2;28313:6;28309:15;28302:32;28117:224;:::o;28347:366::-;28489:3;28510:67;28574:2;28569:3;28510:67;:::i;:::-;28503:74;;28586:93;28675:3;28586:93;:::i;:::-;28704:2;28699:3;28695:12;28688:19;;28347:366;;;:::o;28719:419::-;28885:4;28923:2;28912:9;28908:18;28900:26;;28972:9;28966:4;28962:20;28958:1;28947:9;28943:17;28936:47;29000:131;29126:4;29000:131;:::i;:::-;28992:139;;28719:419;;;:::o;29144:222::-;29284:34;29280:1;29272:6;29268:14;29261:58;29353:5;29348:2;29340:6;29336:15;29329:30;29144:222;:::o;29372:366::-;29514:3;29535:67;29599:2;29594:3;29535:67;:::i;:::-;29528:74;;29611:93;29700:3;29611:93;:::i;:::-;29729:2;29724:3;29720:12;29713:19;;29372:366;;;:::o;29744:419::-;29910:4;29948:2;29937:9;29933:18;29925:26;;29997:9;29991:4;29987:20;29983:1;29972:9;29968:17;29961:47;30025:131;30151:4;30025:131;:::i;:::-;30017:139;;29744:419;;;:::o;30169:169::-;30309:21;30305:1;30297:6;30293:14;30286:45;30169:169;:::o;30344:366::-;30486:3;30507:67;30571:2;30566:3;30507:67;:::i;:::-;30500:74;;30583:93;30672:3;30583:93;:::i;:::-;30701:2;30696:3;30692:12;30685:19;;30344:366;;;:::o;30716:419::-;30882:4;30920:2;30909:9;30905:18;30897:26;;30969:9;30963:4;30959:20;30955:1;30944:9;30940:17;30933:47;30997:131;31123:4;30997:131;:::i;:::-;30989:139;;30716:419;;;:::o;31141:165::-;31281:17;31277:1;31269:6;31265:14;31258:41;31141:165;:::o;31312:366::-;31454:3;31475:67;31539:2;31534:3;31475:67;:::i;:::-;31468:74;;31551:93;31640:3;31551:93;:::i;:::-;31669:2;31664:3;31660:12;31653:19;;31312:366;;;:::o;31684:419::-;31850:4;31888:2;31877:9;31873:18;31865:26;;31937:9;31931:4;31927:20;31923:1;31912:9;31908:17;31901:47;31965:131;32091:4;31965:131;:::i;:::-;31957:139;;31684:419;;;:::o;32109:191::-;32149:3;32168:20;32186:1;32168:20;:::i;:::-;32163:25;;32202:20;32220:1;32202:20;:::i;:::-;32197:25;;32245:1;32242;32238:9;32231:16;;32266:3;32263:1;32260:10;32257:36;;;32273:18;;:::i;:::-;32257:36;32109:191;;;;:::o;32306:169::-;32446:21;32442:1;32434:6;32430:14;32423:45;32306:169;:::o;32481:366::-;32623:3;32644:67;32708:2;32703:3;32644:67;:::i;:::-;32637:74;;32720:93;32809:3;32720:93;:::i;:::-;32838:2;32833:3;32829:12;32822:19;;32481:366;;;:::o;32853:419::-;33019:4;33057:2;33046:9;33042:18;33034:26;;33106:9;33100:4;33096:20;33092:1;33081:9;33077:17;33070:47;33134:131;33260:4;33134:131;:::i;:::-;33126:139;;32853:419;;;:::o;33278:194::-;33318:4;33338:20;33356:1;33338:20;:::i;:::-;33333:25;;33372:20;33390:1;33372:20;:::i;:::-;33367:25;;33416:1;33413;33409:9;33401:17;;33440:1;33434:4;33431:11;33428:37;;;33445:18;;:::i;:::-;33428:37;33278:194;;;;:::o;33478:177::-;33618:29;33614:1;33606:6;33602:14;33595:53;33478:177;:::o;33661:366::-;33803:3;33824:67;33888:2;33883:3;33824:67;:::i;:::-;33817:74;;33900:93;33989:3;33900:93;:::i;:::-;34018:2;34013:3;34009:12;34002:19;;33661:366;;;:::o;34033:419::-;34199:4;34237:2;34226:9;34222:18;34214:26;;34286:9;34280:4;34276:20;34272:1;34261:9;34257:17;34250:47;34314:131;34440:4;34314:131;:::i;:::-;34306:139;;34033:419;;;:::o;34458:410::-;34498:7;34521:20;34539:1;34521:20;:::i;:::-;34516:25;;34555:20;34573:1;34555:20;:::i;:::-;34550:25;;34610:1;34607;34603:9;34632:30;34650:11;34632:30;:::i;:::-;34621:41;;34811:1;34802:7;34798:15;34795:1;34792:22;34772:1;34765:9;34745:83;34722:139;;34841:18;;:::i;:::-;34722:139;34506:362;34458:410;;;;:::o;34874:180::-;34922:77;34919:1;34912:88;35019:4;35016:1;35009:15;35043:4;35040:1;35033:15;35060:185;35100:1;35117:20;35135:1;35117:20;:::i;:::-;35112:25;;35151:20;35169:1;35151:20;:::i;:::-;35146:25;;35190:1;35180:35;;35195:18;;:::i;:::-;35180:35;35237:1;35234;35230:9;35225:14;;35060:185;;;;:::o;35251:220::-;35391:34;35387:1;35379:6;35375:14;35368:58;35460:3;35455:2;35447:6;35443:15;35436:28;35251:220;:::o;35477:366::-;35619:3;35640:67;35704:2;35699:3;35640:67;:::i;:::-;35633:74;;35716:93;35805:3;35716:93;:::i;:::-;35834:2;35829:3;35825:12;35818:19;;35477:366;;;:::o;35849:419::-;36015:4;36053:2;36042:9;36038:18;36030:26;;36102:9;36096:4;36092:20;36088:1;36077:9;36073:17;36066:47;36130:131;36256:4;36130:131;:::i;:::-;36122:139;;35849:419;;;:::o;36274:114::-;36341:6;36375:5;36369:12;36359:22;;36274:114;;;:::o;36394:184::-;36493:11;36527:6;36522:3;36515:19;36567:4;36562:3;36558:14;36543:29;;36394:184;;;;:::o;36584:132::-;36651:4;36674:3;36666:11;;36704:4;36699:3;36695:14;36687:22;;36584:132;;;:::o;36722:108::-;36799:24;36817:5;36799:24;:::i;:::-;36794:3;36787:37;36722:108;;:::o;36836:179::-;36905:10;36926:46;36968:3;36960:6;36926:46;:::i;:::-;37004:4;36999:3;36995:14;36981:28;;36836:179;;;;:::o;37021:113::-;37091:4;37123;37118:3;37114:14;37106:22;;37021:113;;;:::o;37170:732::-;37289:3;37318:54;37366:5;37318:54;:::i;:::-;37388:86;37467:6;37462:3;37388:86;:::i;:::-;37381:93;;37498:56;37548:5;37498:56;:::i;:::-;37577:7;37608:1;37593:284;37618:6;37615:1;37612:13;37593:284;;;37694:6;37688:13;37721:63;37780:3;37765:13;37721:63;:::i;:::-;37714:70;;37807:60;37860:6;37807:60;:::i;:::-;37797:70;;37653:224;37640:1;37637;37633:9;37628:14;;37593:284;;;37597:14;37893:3;37886:10;;37294:608;;;37170:732;;;;:::o;37908:831::-;38171:4;38209:3;38198:9;38194:19;38186:27;;38223:71;38291:1;38280:9;38276:17;38267:6;38223:71;:::i;:::-;38304:80;38380:2;38369:9;38365:18;38356:6;38304:80;:::i;:::-;38431:9;38425:4;38421:20;38416:2;38405:9;38401:18;38394:48;38459:108;38562:4;38553:6;38459:108;:::i;:::-;38451:116;;38577:72;38645:2;38634:9;38630:18;38621:6;38577:72;:::i;:::-;38659:73;38727:3;38716:9;38712:19;38703:6;38659:73;:::i;:::-;37908:831;;;;;;;;:::o

Swarm Source

ipfs://877fb86322b194633b99652bd2e8df41e8f1105599eb23e91919e195114b9a17
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.