ETH Price: $3,308.80 (-3.00%)
Gas: 13 Gwei

Token

Its Over (OVER)
 

Overview

Max Total Supply

100,000,000,000 OVER

Holders

141

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
188,384,357.388718280225477348 OVER

Value
$0.00
0x50fe12e655244BDcD0058dc684345F86EA10D478
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ItsOver

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-26
*/

// itsover.io | It's definetely over.

//SPDX-License-Identifier: MIT

pragma solidity 0.8.3;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

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

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

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

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


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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

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

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

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

contract ItsOver is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold = 50_000_000 * 10e18;
    uint256 public maxTxAmount = 100_000_000_000 * 10**18;
    uint256 public maxWalletAmount = 100_000_000_000 * 10**18;
    
    address public marketingWallet = 0x43699041caa11157e34aae5D7533e8E041898634;
    address public devWallet = 0x43699041caa11157e34aae5D7533e8E041898634;
    
    struct Taxes {
        uint256 marketing;
        uint256 liquidity; 
        uint256 dev;
    }
    
    Taxes public taxes = Taxes(0,0,0);
    Taxes public sellTaxes = Taxes(0,0,0);
    uint256 public totTax = 0;
    uint256 public totSellTax = 0;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) public isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("Its Over", "OVER") {
        _mint(msg.sender, 100000000000 * 10 ** decimals());
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[devWallet] = true;
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
        //calculate fee
        else{
            if(recipient == pair) fee = amount * totSellTax / 100;
            else fee = amount * totTax / 100;
        }
        
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {

            // Split the contract balance into halves
            uint256 denominator = totSellTax * 2;
            uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(toSwap);
    
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity;
    
            if(ethToAddLiquidityWith > 0){
                // Add liquidity to Uniswap
                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
    
            uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing;
            if(marketingAmt > 0){
                payable(marketingWallet).sendValue(marketingAmt);
            }
            
            uint256 devAmt = unitBalance * 2 * sellTaxes.dev;
            if(devAmt > 0){
                payable(devWallet).sendValue(devAmt);
            }
        }
    }


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

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }

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

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading(uint256 numOfDeadBlocks) external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
        deadblocks = numOfDeadBlocks;
    }

    function setTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        taxes = Taxes(_marketing, _liquidity, _dev);
        totTax = _marketing + _liquidity + _dev;
    }

    function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{
        sellTaxes = Taxes(_marketing, _liquidity, _dev);
        totSellTax = _marketing + _liquidity + _dev;
    }
    
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
    function setIsBot(address account, bool state) external onlyOwner{
        isBot[account] = state;
    }

    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }

    // fallbacks
    receive() external payable {}
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260006009556b019d971e4fe8401e74000000600a556c01431e0fae6d7217caa0000000600b556c01431e0fae6d7217caa0000000600c557343699041caa11157e34aae5d7533e8e041898634600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507343699041caa11157e34aae5d7533e8e041898634600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060008152602001600081526020016000815250600f600082015181600001556020820151816001015560408201518160020155505060405180606001604052806000815260200160008152602001600081525060126000820151816000015560208201518160010155604082015181600201555050600060155560006016553480156200017c57600080fd5b506040518060400160405280600881526020017f497473204f7665720000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4f564552000000000000000000000000000000000000000000000000000000008152508160039080519060200190620002019291906200089f565b5080600490805190602001906200021a9291906200089f565b5050506200023d620002316200065e60201b60201c565b6200066660201b60201c565b6200027e33620002526200072c60201b60201c565b600a62000260919062000b10565b64174876e80062000272919062000c4d565b6200073560201b60201c565b6001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033857600080fd5b505afa1580156200034d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000373919062000966565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d657600080fd5b505afa158015620003eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000411919062000966565b6040518363ffffffff1660e01b815260040162000430929190620009db565b602060405180830381600087803b1580156200044b57600080fd5b505af115801562000460573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000486919062000966565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000ddd565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200079f9062000a08565b60405180910390fd5b620007bc600083836200089a60201b60201c565b8060026000828254620007d0919062000a58565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000827919062000a58565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200088e919062000a2a565b60405180910390a35050565b505050565b828054620008ad9062000cf9565b90600052602060002090601f016020900481019282620008d157600085556200091d565b82601f10620008ec57805160ff19168380011785556200091d565b828001600101855582156200091d579182015b828111156200091c578251825591602001919060010190620008ff565b5b5090506200092c919062000930565b5090565b5b808211156200094b57600081600090555060010162000931565b5090565b600081519050620009608162000dc3565b92915050565b6000602082840312156200097957600080fd5b600062000989848285016200094f565b91505092915050565b6200099d8162000cae565b82525050565b6000620009b2601f8362000a47565b9150620009bf8262000d9a565b602082019050919050565b620009d58162000ce2565b82525050565b6000604082019050620009f2600083018562000992565b62000a01602083018462000992565b9392505050565b6000602082019050818103600083015262000a2381620009a3565b9050919050565b600060208201905062000a416000830184620009ca565b92915050565b600082825260208201905092915050565b600062000a658262000ce2565b915062000a728362000ce2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000aaa5762000aa962000d2f565b5b828201905092915050565b6000808291508390505b600185111562000b075780860481111562000adf5762000ade62000d2f565b5b600185161562000aef5780820291505b808102905062000aff8562000d8d565b945062000abf565b94509492505050565b600062000b1d8262000ce2565b915062000b2a8362000cec565b925062000b597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b61565b905092915050565b60008262000b73576001905062000c46565b8162000b83576000905062000c46565b816001811462000b9c576002811462000ba75762000bdd565b600191505062000c46565b60ff84111562000bbc5762000bbb62000d2f565b5b8360020a91508482111562000bd65762000bd562000d2f565b5b5062000c46565b5060208310610133831016604e8410600b841016171562000c175782820a90508381111562000c115762000c1062000d2f565b5b62000c46565b62000c26848484600162000ab5565b9250905081840481111562000c405762000c3f62000d2f565b5b81810290505b9392505050565b600062000c5a8262000ce2565b915062000c678362000ce2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ca35762000ca262000d2f565b5b828202905092915050565b600062000cbb8262000cc2565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000d1257607f821691505b6020821081141562000d295762000d2862000d5e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b62000dce8162000cae565b811462000dda57600080fd5b50565b6144b68062000ded6000396000f3fe6080604052600436106102815760003560e01c806375f0a8741161014f578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c146109bd578063e545fd6d146109e6578063e9dae5ed14610a0f578063f2fde38b14610a38578063f66895a314610a61578063f887ea4014610a8e57610288565b8063a9059cbb14610889578063aa4bde28146108c6578063aacebbe3146108f1578063c18bc1951461091a578063dbe66ca014610943578063dd62ed3e1461098057610288565b80638ea5220f116101135780638ea5220f1461077957806395d89b41146107a45780639d0014b1146107cf5780639e252f00146107f8578063a457c2d714610821578063a8aa1b311461085e57610288565b806375f0a874146106a657806382aa7c68146106d15780638c0b5e22146106fa5780638cd4426d146107255780638da5cb5b1461074e57610288565b8063293b7ef4116101f357806350c9a88f116101ac57806350c9a88f146105a65780636256d181146105d15780636ddd1713146105fa57806370a0823114610625578063715018a614610662578063728f8eea1461067957610288565b8063293b7ef414610482578063313ce567146104ad57806339509351146104d85780633bbac5791461051557806340b28c2f146105525780634ada218b1461057b57610288565b806318160ddd1161024557806318160ddd146103725780631816467f1461039d5780632253163d146103c657806323b872dd146103f157806326b5d32f1461042e578063274a533c1461045757610288565b806303c0f5d41461028d5780630445b667146102b657806306fdde03146102e1578063087332141461030c578063095ea7b31461033557610288565b3661028857005b600080fd5b34801561029957600080fd5b506102b460048036038101906102af919061335d565b610ab9565b005b3480156102c257600080fd5b506102cb610b90565b6040516102d89190613bea565b60405180910390f35b3480156102ed57600080fd5b506102f6610b96565b60405161030391906139a8565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e919061348c565b610c28565b005b34801561034157600080fd5b5061035c60048036038101906103579190613399565b610d04565b6040516103699190613972565b60405180910390f35b34801561037e57600080fd5b50610387610d22565b6040516103949190613bea565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190613280565b610d2c565b005b3480156103d257600080fd5b506103db610dec565b6040516103e89190613bea565b60405180910390f35b3480156103fd57600080fd5b506104186004803603810190610413919061330e565b610df2565b6040516104259190613972565b60405180910390f35b34801561043a57600080fd5b506104556004803603810190610450919061348c565b610ef3565b005b34801561046357600080fd5b5061046c611080565b6040516104799190613bea565b60405180910390f35b34801561048e57600080fd5b50610497611086565b6040516104a49190613bea565b60405180910390f35b3480156104b957600080fd5b506104c261108c565b6040516104cf9190613c96565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa9190613399565b611095565b60405161050c9190613972565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190613280565b611141565b6040516105499190613972565b60405180910390f35b34801561055e57600080fd5b5061057960048036038101906105749190613427565b611161565b005b34801561058757600080fd5b50610590611263565b60405161059d9190613972565b60405180910390f35b3480156105b257600080fd5b506105bb611276565b6040516105c89190613bea565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f39190613463565b61127c565b005b34801561060657600080fd5b5061060f611315565b60405161061c9190613972565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190613280565b611328565b6040516106599190613bea565b60405180910390f35b34801561066e57600080fd5b50610677611370565b005b34801561068557600080fd5b5061068e6113f8565b60405161069d93929190613c5f565b60405180910390f35b3480156106b257600080fd5b506106bb611410565b6040516106c891906138cd565b60405180910390f35b3480156106dd57600080fd5b506106f860048036038101906106f39190613463565b611436565b005b34801561070657600080fd5b5061070f611549565b60405161071c9190613bea565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190613399565b61154f565b005b34801561075a57600080fd5b50610763611664565b60405161077091906138cd565b60405180910390f35b34801561078557600080fd5b5061078e61168e565b60405161079b91906138cd565b60405180910390f35b3480156107b057600080fd5b506107b96116b4565b6040516107c691906139a8565b60405180910390f35b3480156107db57600080fd5b506107f660048036038101906107f19190613463565b611746565b005b34801561080457600080fd5b5061081f600480360381019061081a9190613463565b6117cc565b005b34801561082d57600080fd5b5061084860048036038101906108439190613399565b61187b565b6040516108559190613972565b60405180910390f35b34801561086a57600080fd5b5061087361196f565b60405161088091906138cd565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab9190613399565b611995565b6040516108bd9190613972565b60405180910390f35b3480156108d257600080fd5b506108db6119b3565b6040516108e89190613bea565b60405180910390f35b3480156108fd57600080fd5b5061091860048036038101906109139190613280565b6119b9565b005b34801561092657600080fd5b50610941600480360381019061093c9190613463565b611a79565b005b34801561094f57600080fd5b5061096a60048036038101906109659190613280565b611b12565b6040516109779190613972565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a291906132d2565b611b32565b6040516109b49190613bea565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df91906133d5565b611bb9565b005b3480156109f257600080fd5b50610a0d6004803603810190610a08919061335d565b611c52565b005b348015610a1b57600080fd5b50610a366004803603810190610a31919061348c565b611d29565b005b348015610a4457600080fd5b50610a5f6004803603810190610a5a9190613280565b611e05565b005b348015610a6d57600080fd5b50610a76611efd565b604051610a8593929190613c5f565b60405180910390f35b348015610a9a57600080fd5b50610aa3611f15565b604051610ab0919061398d565b60405180910390f35b610ac1611f3b565b73ffffffffffffffffffffffffffffffffffffffff16610adf611664565b73ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90613b2a565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b606060038054610ba590613ef6565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd190613ef6565b8015610c1e5780601f10610bf357610100808354040283529160200191610c1e565b820191906000526020600020905b815481529060010190602001808311610c0157829003601f168201915b5050505050905090565b610c30611f3b565b73ffffffffffffffffffffffffffffffffffffffff16610c4e611664565b73ffffffffffffffffffffffffffffffffffffffff1614610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b90613b2a565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610cef9190613d11565b610cf99190613d11565b601681905550505050565b6000610d18610d11611f3b565b8484611f43565b6001905092915050565b6000600254905090565b610d34611f3b565b73ffffffffffffffffffffffffffffffffffffffff16610d52611664565b73ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90613b2a565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b6000610dff84848461210e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e4a611f3b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec190613b0a565b60405180910390fd5b610ee785610ed6611f3b565b8584610ee29190613df2565b611f43565b60019150509392505050565b610efb611f3b565b73ffffffffffffffffffffffffffffffffffffffff16610f19611664565b73ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6690613b2a565b60405180910390fd5b6000479050610f7d846127d8565b60008147610f8b9190613df2565b90506000831115611003576110028385610fa59190613d11565b8483610fb19190613d98565b610fbb9190613d67565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a9c90919063ffffffff16565b5b600084111561107957611078838561101b9190613d11565b85836110279190613d98565b6110319190613d67565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a9c90919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b60006111376110a2611f3b565b8484600160006110b0611f3b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111329190613d11565b611f43565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b611169611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611187611664565b73ffffffffffffffffffffffffffffffffffffffff16146111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d490613b2a565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b611284611f3b565b73ffffffffffffffffffffffffffffffffffffffff166112a2611664565b73ffffffffffffffffffffffffffffffffffffffff16146112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef90613b2a565b60405180910390fd5b670de0b6b3a76400008161130c9190613d98565b600b8190555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611378611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611396611664565b73ffffffffffffffffffffffffffffffffffffffff16146113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390613b2a565b60405180910390fd5b6113f66000612b90565b565b600f8060000154908060010154908060020154905083565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61143e611f3b565b73ffffffffffffffffffffffffffffffffffffffff1661145c611664565b73ffffffffffffffffffffffffffffffffffffffff16146114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a990613b2a565b60405180910390fd5b600760169054906101000a900460ff1615611502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f9906139ca565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b611557611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611575611664565b73ffffffffffffffffffffffffffffffffffffffff16146115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290613b2a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115ef611664565b836040518363ffffffff1660e01b815260040161160d9291906138e8565b602060405180830381600087803b15801561162757600080fd5b505af115801561163b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165f91906133fe565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546116c390613ef6565b80601f01602080910402602001604051908101604052809291908181526020018280546116ef90613ef6565b801561173c5780601f106117115761010080835404028352916020019161173c565b820191906000526020600020905b81548152906001019060200180831161171f57829003601f168201915b5050505050905090565b61174e611f3b565b73ffffffffffffffffffffffffffffffffffffffff1661176c611664565b73ffffffffffffffffffffffffffffffffffffffff16146117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990613b2a565b60405180910390fd5b80600a8190555050565b6117d4611f3b565b73ffffffffffffffffffffffffffffffffffffffff166117f2611664565b73ffffffffffffffffffffffffffffffffffffffff1614611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f90613b2a565b60405180910390fd5b61187881611854611664565b73ffffffffffffffffffffffffffffffffffffffff16612a9c90919063ffffffff16565b50565b6000806001600061188a611f3b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90613bca565b60405180910390fd5b611964611952611f3b565b85858461195f9190613df2565b611f43565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119a96119a2611f3b565b848461210e565b6001905092915050565b600c5481565b6119c1611f3b565b73ffffffffffffffffffffffffffffffffffffffff166119df611664565b73ffffffffffffffffffffffffffffffffffffffff1614611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613b2a565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a81611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611a9f611664565b73ffffffffffffffffffffffffffffffffffffffff1614611af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aec90613b2a565b60405180910390fd5b670de0b6b3a764000081611b099190613d98565b600c8190555050565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611bc1611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611bdf611664565b73ffffffffffffffffffffffffffffffffffffffff1614611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c90613b2a565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611c5a611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611c78611664565b73ffffffffffffffffffffffffffffffffffffffff1614611cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc590613b2a565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d31611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611d4f611664565b73ffffffffffffffffffffffffffffffffffffffff1614611da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9c90613b2a565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284611df09190613d11565b611dfa9190613d11565b601581905550505050565b611e0d611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611e2b611664565b73ffffffffffffffffffffffffffffffffffffffff1614611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613b2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee890613a4a565b60405180910390fd5b611efa81612b90565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faa90613baa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201a90613a6a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121019190613bea565b60405180910390a3505050565b60008111612151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214890613b4a565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121f55750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222b90613b6a565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d85750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122f15750600760149054906101000a900460ff16155b156125ad57600760169054906101000a900460ff16612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c90613a2a565b60405180910390fd5b436009546008546123569190613d11565b11156124b957600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461240a576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124b8576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b548111156124fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f590613a0a565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125ac57600c548161256084611328565b61256a9190613d11565b11156125ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a290613aaa565b60405180910390fd5b5b5b6000600760149054906101000a900460ff16806126135750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126675750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612675576000905061270a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126ec576064601654836126db9190613d98565b6126e59190613d67565b9050612709565b6064601554836126fc9190613d98565b6127069190613d67565b90505b5b600760159054906101000a900460ff1680156127335750600760149054906101000a900460ff16155b801561278d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127995750600081115b156127a7576127a6612c56565b5b6127bd848483856127b89190613df2565b612e5a565b60008111156127d2576127d1843083612e5a565b5b50505050565b6000600267ffffffffffffffff81111561281b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156128495781602001602082028036833780820191505090505b5090503081600081518110612887577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561292957600080fd5b505afa15801561293d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296191906132a9565b8160018151811061299b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a0230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f43565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a66959493929190613c05565b600060405180830381600087803b158015612a8057600080fd5b505af1158015612a94573d6000803e3d6000fd5b505050505050565b80471015612adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad690613aea565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612b05906138b8565b60006040518083038185875af1925050503d8060008114612b42576040519150601f19603f3d011682016040523d82523d6000602084013e612b47565b606091505b5050905080612b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8290613aca565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612e58576001600760146101000a81548160ff0219169083151502179055506000612c9030611328565b9050600a548110612e3b5760006002601654612cac9190613d98565b905060008160126001015484612cc29190613d98565b612ccc9190613d67565b905060008184612cdc9190613df2565b90506000479050612cec826127d8565b60008147612cfa9190613df2565b9050600060126001015486612d0f9190613df2565b82612d1a9190613d67565b9050600060126001015482612d2f9190613d98565b90506000811115612d4557612d4486826130d9565b5b6000601260000154600284612d5a9190613d98565b612d649190613d98565b90506000811115612dbb57612dba81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a9c90919063ffffffff16565b5b6000601260020154600285612dd09190613d98565b612dda9190613d98565b90506000811115612e3157612e3081600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a9c90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec190613b8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f31906139ea565b60405180910390fd5b612f458383836131e8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc290613a8a565b60405180910390fd5b8181612fd79190613df2565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130679190613d11565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130cb9190613bea565b60405180910390a350505050565b61310630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f43565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161318f96959493929190613911565b6060604051808303818588803b1580156131a857600080fd5b505af11580156131bc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131e191906134db565b5050505050565b505050565b6000813590506131fc81614424565b92915050565b60008151905061321181614424565b92915050565b6000813590506132268161443b565b92915050565b60008151905061323b8161443b565b92915050565b60008135905061325081614452565b92915050565b60008135905061326581614469565b92915050565b60008151905061327a81614469565b92915050565b60006020828403121561329257600080fd5b60006132a0848285016131ed565b91505092915050565b6000602082840312156132bb57600080fd5b60006132c984828501613202565b91505092915050565b600080604083850312156132e557600080fd5b60006132f3858286016131ed565b9250506020613304858286016131ed565b9150509250929050565b60008060006060848603121561332357600080fd5b6000613331868287016131ed565b9350506020613342868287016131ed565b925050604061335386828701613256565b9150509250925092565b6000806040838503121561337057600080fd5b600061337e858286016131ed565b925050602061338f85828601613217565b9150509250929050565b600080604083850312156133ac57600080fd5b60006133ba858286016131ed565b92505060206133cb85828601613256565b9150509250929050565b6000602082840312156133e757600080fd5b60006133f584828501613217565b91505092915050565b60006020828403121561341057600080fd5b600061341e8482850161322c565b91505092915050565b6000806040838503121561343a57600080fd5b600061344885828601613241565b9250506020613459858286016131ed565b9150509250929050565b60006020828403121561347557600080fd5b600061348384828501613256565b91505092915050565b6000806000606084860312156134a157600080fd5b60006134af86828701613256565b93505060206134c086828701613256565b92505060406134d186828701613256565b9150509250925092565b6000806000606084860312156134f057600080fd5b60006134fe8682870161326b565b935050602061350f8682870161326b565b92505060406135208682870161326b565b9150509250925092565b60006135368383613542565b60208301905092915050565b61354b81613e26565b82525050565b61355a81613e26565b82525050565b600061356b82613cc1565b6135758185613ce4565b935061358083613cb1565b8060005b838110156135b1578151613598888261352a565b97506135a383613cd7565b925050600181019050613584565b5085935050505092915050565b6135c781613e38565b82525050565b6135d681613e8d565b82525050565b6135e581613eb1565b82525050565b60006135f682613ccc565b6136008185613d00565b9350613610818560208601613ec3565b61361981613fb5565b840191505092915050565b6000613631601683613d00565b915061363c82613fc6565b602082019050919050565b6000613654602383613d00565b915061365f82613fef565b604082019050919050565b6000613677601d83613d00565b91506136828261403e565b602082019050919050565b600061369a601683613d00565b91506136a582614067565b602082019050919050565b60006136bd602683613d00565b91506136c882614090565b604082019050919050565b60006136e0602283613d00565b91506136eb826140df565b604082019050919050565b6000613703602683613d00565b915061370e8261412e565b604082019050919050565b6000613726602183613d00565b91506137318261417d565b604082019050919050565b6000613749603a83613d00565b9150613754826141cc565b604082019050919050565b600061376c601d83613d00565b91506137778261421b565b602082019050919050565b600061378f602883613d00565b915061379a82614244565b604082019050919050565b60006137b2602083613d00565b91506137bd82614293565b602082019050919050565b60006137d5602983613d00565b91506137e0826142bc565b604082019050919050565b60006137f8601983613d00565b91506138038261430b565b602082019050919050565b600061381b602583613d00565b915061382682614334565b604082019050919050565b600061383e600083613cf5565b915061384982614383565b600082019050919050565b6000613861602483613d00565b915061386c82614386565b604082019050919050565b6000613884602583613d00565b915061388f826143d5565b604082019050919050565b6138a381613e76565b82525050565b6138b281613e80565b82525050565b60006138c382613831565b9150819050919050565b60006020820190506138e26000830184613551565b92915050565b60006040820190506138fd6000830185613551565b61390a602083018461389a565b9392505050565b600060c0820190506139266000830189613551565b613933602083018861389a565b61394060408301876135dc565b61394d60608301866135dc565b61395a6080830185613551565b61396760a083018461389a565b979650505050505050565b600060208201905061398760008301846135be565b92915050565b60006020820190506139a260008301846135cd565b92915050565b600060208201905081810360008301526139c281846135eb565b905092915050565b600060208201905081810360008301526139e381613624565b9050919050565b60006020820190508181036000830152613a0381613647565b9050919050565b60006020820190508181036000830152613a238161366a565b9050919050565b60006020820190508181036000830152613a438161368d565b9050919050565b60006020820190508181036000830152613a63816136b0565b9050919050565b60006020820190508181036000830152613a83816136d3565b9050919050565b60006020820190508181036000830152613aa3816136f6565b9050919050565b60006020820190508181036000830152613ac381613719565b9050919050565b60006020820190508181036000830152613ae38161373c565b9050919050565b60006020820190508181036000830152613b038161375f565b9050919050565b60006020820190508181036000830152613b2381613782565b9050919050565b60006020820190508181036000830152613b43816137a5565b9050919050565b60006020820190508181036000830152613b63816137c8565b9050919050565b60006020820190508181036000830152613b83816137eb565b9050919050565b60006020820190508181036000830152613ba38161380e565b9050919050565b60006020820190508181036000830152613bc381613854565b9050919050565b60006020820190508181036000830152613be381613877565b9050919050565b6000602082019050613bff600083018461389a565b92915050565b600060a082019050613c1a600083018861389a565b613c2760208301876135dc565b8181036040830152613c398186613560565b9050613c486060830185613551565b613c55608083018461389a565b9695505050505050565b6000606082019050613c74600083018661389a565b613c81602083018561389a565b613c8e604083018461389a565b949350505050565b6000602082019050613cab60008301846138a9565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613d1c82613e76565b9150613d2783613e76565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d5c57613d5b613f28565b5b828201905092915050565b6000613d7282613e76565b9150613d7d83613e76565b925082613d8d57613d8c613f57565b5b828204905092915050565b6000613da382613e76565b9150613dae83613e76565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613de757613de6613f28565b5b828202905092915050565b6000613dfd82613e76565b9150613e0883613e76565b925082821015613e1b57613e1a613f28565b5b828203905092915050565b6000613e3182613e56565b9050919050565b60008115159050919050565b6000613e4f82613e26565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e9882613e9f565b9050919050565b6000613eaa82613e56565b9050919050565b6000613ebc82613e76565b9050919050565b60005b83811015613ee1578082015181840152602081019050613ec6565b83811115613ef0576000848401525b50505050565b60006002820490506001821680613f0e57607f821691505b60208210811415613f2257613f21613f86565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61442d81613e26565b811461443857600080fd5b50565b61444481613e38565b811461444f57600080fd5b50565b61445b81613e44565b811461446657600080fd5b50565b61447281613e76565b811461447d57600080fd5b5056fea2646970667358221220314d4d57af290fa5de74cad8b3cbb443ee15262219bd9d939004ddbdfe20ebd164736f6c63430008030033

Deployed Bytecode

0x6080604052600436106102815760003560e01c806375f0a8741161014f578063a9059cbb116100c1578063e01af92c1161007a578063e01af92c146109bd578063e545fd6d146109e6578063e9dae5ed14610a0f578063f2fde38b14610a38578063f66895a314610a61578063f887ea4014610a8e57610288565b8063a9059cbb14610889578063aa4bde28146108c6578063aacebbe3146108f1578063c18bc1951461091a578063dbe66ca014610943578063dd62ed3e1461098057610288565b80638ea5220f116101135780638ea5220f1461077957806395d89b41146107a45780639d0014b1146107cf5780639e252f00146107f8578063a457c2d714610821578063a8aa1b311461085e57610288565b806375f0a874146106a657806382aa7c68146106d15780638c0b5e22146106fa5780638cd4426d146107255780638da5cb5b1461074e57610288565b8063293b7ef4116101f357806350c9a88f116101ac57806350c9a88f146105a65780636256d181146105d15780636ddd1713146105fa57806370a0823114610625578063715018a614610662578063728f8eea1461067957610288565b8063293b7ef414610482578063313ce567146104ad57806339509351146104d85780633bbac5791461051557806340b28c2f146105525780634ada218b1461057b57610288565b806318160ddd1161024557806318160ddd146103725780631816467f1461039d5780632253163d146103c657806323b872dd146103f157806326b5d32f1461042e578063274a533c1461045757610288565b806303c0f5d41461028d5780630445b667146102b657806306fdde03146102e1578063087332141461030c578063095ea7b31461033557610288565b3661028857005b600080fd5b34801561029957600080fd5b506102b460048036038101906102af919061335d565b610ab9565b005b3480156102c257600080fd5b506102cb610b90565b6040516102d89190613bea565b60405180910390f35b3480156102ed57600080fd5b506102f6610b96565b60405161030391906139a8565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e919061348c565b610c28565b005b34801561034157600080fd5b5061035c60048036038101906103579190613399565b610d04565b6040516103699190613972565b60405180910390f35b34801561037e57600080fd5b50610387610d22565b6040516103949190613bea565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190613280565b610d2c565b005b3480156103d257600080fd5b506103db610dec565b6040516103e89190613bea565b60405180910390f35b3480156103fd57600080fd5b506104186004803603810190610413919061330e565b610df2565b6040516104259190613972565b60405180910390f35b34801561043a57600080fd5b506104556004803603810190610450919061348c565b610ef3565b005b34801561046357600080fd5b5061046c611080565b6040516104799190613bea565b60405180910390f35b34801561048e57600080fd5b50610497611086565b6040516104a49190613bea565b60405180910390f35b3480156104b957600080fd5b506104c261108c565b6040516104cf9190613c96565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa9190613399565b611095565b60405161050c9190613972565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190613280565b611141565b6040516105499190613972565b60405180910390f35b34801561055e57600080fd5b5061057960048036038101906105749190613427565b611161565b005b34801561058757600080fd5b50610590611263565b60405161059d9190613972565b60405180910390f35b3480156105b257600080fd5b506105bb611276565b6040516105c89190613bea565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f39190613463565b61127c565b005b34801561060657600080fd5b5061060f611315565b60405161061c9190613972565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190613280565b611328565b6040516106599190613bea565b60405180910390f35b34801561066e57600080fd5b50610677611370565b005b34801561068557600080fd5b5061068e6113f8565b60405161069d93929190613c5f565b60405180910390f35b3480156106b257600080fd5b506106bb611410565b6040516106c891906138cd565b60405180910390f35b3480156106dd57600080fd5b506106f860048036038101906106f39190613463565b611436565b005b34801561070657600080fd5b5061070f611549565b60405161071c9190613bea565b60405180910390f35b34801561073157600080fd5b5061074c60048036038101906107479190613399565b61154f565b005b34801561075a57600080fd5b50610763611664565b60405161077091906138cd565b60405180910390f35b34801561078557600080fd5b5061078e61168e565b60405161079b91906138cd565b60405180910390f35b3480156107b057600080fd5b506107b96116b4565b6040516107c691906139a8565b60405180910390f35b3480156107db57600080fd5b506107f660048036038101906107f19190613463565b611746565b005b34801561080457600080fd5b5061081f600480360381019061081a9190613463565b6117cc565b005b34801561082d57600080fd5b5061084860048036038101906108439190613399565b61187b565b6040516108559190613972565b60405180910390f35b34801561086a57600080fd5b5061087361196f565b60405161088091906138cd565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab9190613399565b611995565b6040516108bd9190613972565b60405180910390f35b3480156108d257600080fd5b506108db6119b3565b6040516108e89190613bea565b60405180910390f35b3480156108fd57600080fd5b5061091860048036038101906109139190613280565b6119b9565b005b34801561092657600080fd5b50610941600480360381019061093c9190613463565b611a79565b005b34801561094f57600080fd5b5061096a60048036038101906109659190613280565b611b12565b6040516109779190613972565b60405180910390f35b34801561098c57600080fd5b506109a760048036038101906109a291906132d2565b611b32565b6040516109b49190613bea565b60405180910390f35b3480156109c957600080fd5b506109e460048036038101906109df91906133d5565b611bb9565b005b3480156109f257600080fd5b50610a0d6004803603810190610a08919061335d565b611c52565b005b348015610a1b57600080fd5b50610a366004803603810190610a31919061348c565b611d29565b005b348015610a4457600080fd5b50610a5f6004803603810190610a5a9190613280565b611e05565b005b348015610a6d57600080fd5b50610a76611efd565b604051610a8593929190613c5f565b60405180910390f35b348015610a9a57600080fd5b50610aa3611f15565b604051610ab0919061398d565b60405180910390f35b610ac1611f3b565b73ffffffffffffffffffffffffffffffffffffffff16610adf611664565b73ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90613b2a565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b606060038054610ba590613ef6565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd190613ef6565b8015610c1e5780601f10610bf357610100808354040283529160200191610c1e565b820191906000526020600020905b815481529060010190602001808311610c0157829003601f168201915b5050505050905090565b610c30611f3b565b73ffffffffffffffffffffffffffffffffffffffff16610c4e611664565b73ffffffffffffffffffffffffffffffffffffffff1614610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b90613b2a565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610cef9190613d11565b610cf99190613d11565b601681905550505050565b6000610d18610d11611f3b565b8484611f43565b6001905092915050565b6000600254905090565b610d34611f3b565b73ffffffffffffffffffffffffffffffffffffffff16610d52611664565b73ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f90613b2a565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b6000610dff84848461210e565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e4a611f3b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec190613b0a565b60405180910390fd5b610ee785610ed6611f3b565b8584610ee29190613df2565b611f43565b60019150509392505050565b610efb611f3b565b73ffffffffffffffffffffffffffffffffffffffff16610f19611664565b73ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6690613b2a565b60405180910390fd5b6000479050610f7d846127d8565b60008147610f8b9190613df2565b90506000831115611003576110028385610fa59190613d11565b8483610fb19190613d98565b610fbb9190613d67565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a9c90919063ffffffff16565b5b600084111561107957611078838561101b9190613d11565b85836110279190613d98565b6110319190613d67565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a9c90919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b60006111376110a2611f3b565b8484600160006110b0611f3b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111329190613d11565b611f43565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b611169611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611187611664565b73ffffffffffffffffffffffffffffffffffffffff16146111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d490613b2a565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b611284611f3b565b73ffffffffffffffffffffffffffffffffffffffff166112a2611664565b73ffffffffffffffffffffffffffffffffffffffff16146112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef90613b2a565b60405180910390fd5b670de0b6b3a76400008161130c9190613d98565b600b8190555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611378611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611396611664565b73ffffffffffffffffffffffffffffffffffffffff16146113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390613b2a565b60405180910390fd5b6113f66000612b90565b565b600f8060000154908060010154908060020154905083565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61143e611f3b565b73ffffffffffffffffffffffffffffffffffffffff1661145c611664565b73ffffffffffffffffffffffffffffffffffffffff16146114b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a990613b2a565b60405180910390fd5b600760169054906101000a900460ff1615611502576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f9906139ca565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b600b5481565b611557611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611575611664565b73ffffffffffffffffffffffffffffffffffffffff16146115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c290613b2a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6115ef611664565b836040518363ffffffff1660e01b815260040161160d9291906138e8565b602060405180830381600087803b15801561162757600080fd5b505af115801561163b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165f91906133fe565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546116c390613ef6565b80601f01602080910402602001604051908101604052809291908181526020018280546116ef90613ef6565b801561173c5780601f106117115761010080835404028352916020019161173c565b820191906000526020600020905b81548152906001019060200180831161171f57829003601f168201915b5050505050905090565b61174e611f3b565b73ffffffffffffffffffffffffffffffffffffffff1661176c611664565b73ffffffffffffffffffffffffffffffffffffffff16146117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990613b2a565b60405180910390fd5b80600a8190555050565b6117d4611f3b565b73ffffffffffffffffffffffffffffffffffffffff166117f2611664565b73ffffffffffffffffffffffffffffffffffffffff1614611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f90613b2a565b60405180910390fd5b61187881611854611664565b73ffffffffffffffffffffffffffffffffffffffff16612a9c90919063ffffffff16565b50565b6000806001600061188a611f3b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90613bca565b60405180910390fd5b611964611952611f3b565b85858461195f9190613df2565b611f43565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006119a96119a2611f3b565b848461210e565b6001905092915050565b600c5481565b6119c1611f3b565b73ffffffffffffffffffffffffffffffffffffffff166119df611664565b73ffffffffffffffffffffffffffffffffffffffff1614611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613b2a565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a81611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611a9f611664565b73ffffffffffffffffffffffffffffffffffffffff1614611af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aec90613b2a565b60405180910390fd5b670de0b6b3a764000081611b099190613d98565b600c8190555050565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611bc1611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611bdf611664565b73ffffffffffffffffffffffffffffffffffffffff1614611c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2c90613b2a565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611c5a611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611c78611664565b73ffffffffffffffffffffffffffffffffffffffff1614611cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc590613b2a565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d31611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611d4f611664565b73ffffffffffffffffffffffffffffffffffffffff1614611da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9c90613b2a565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284611df09190613d11565b611dfa9190613d11565b601581905550505050565b611e0d611f3b565b73ffffffffffffffffffffffffffffffffffffffff16611e2b611664565b73ffffffffffffffffffffffffffffffffffffffff1614611e81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7890613b2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee890613a4a565b60405180910390fd5b611efa81612b90565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611faa90613baa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201a90613a6a565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121019190613bea565b60405180910390a3505050565b60008111612151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214890613b4a565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121f55750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222b90613b6a565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d85750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122f15750600760149054906101000a900460ff16155b156125ad57600760169054906101000a900460ff16612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c90613a2a565b60405180910390fd5b436009546008546123569190613d11565b11156124b957600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461240a576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124b8576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b548111156124fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f590613a0a565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125ac57600c548161256084611328565b61256a9190613d11565b11156125ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a290613aaa565b60405180910390fd5b5b5b6000600760149054906101000a900460ff16806126135750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126675750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612675576000905061270a565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126ec576064601654836126db9190613d98565b6126e59190613d67565b9050612709565b6064601554836126fc9190613d98565b6127069190613d67565b90505b5b600760159054906101000a900460ff1680156127335750600760149054906101000a900460ff16155b801561278d5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127995750600081115b156127a7576127a6612c56565b5b6127bd848483856127b89190613df2565b612e5a565b60008111156127d2576127d1843083612e5a565b5b50505050565b6000600267ffffffffffffffff81111561281b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156128495781602001602082028036833780820191505090505b5090503081600081518110612887577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561292957600080fd5b505afa15801561293d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061296191906132a9565b8160018151811061299b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a0230600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f43565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a66959493929190613c05565b600060405180830381600087803b158015612a8057600080fd5b505af1158015612a94573d6000803e3d6000fd5b505050505050565b80471015612adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad690613aea565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612b05906138b8565b60006040518083038185875af1925050503d8060008114612b42576040519150601f19603f3d011682016040523d82523d6000602084013e612b47565b606091505b5050905080612b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b8290613aca565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612e58576001600760146101000a81548160ff0219169083151502179055506000612c9030611328565b9050600a548110612e3b5760006002601654612cac9190613d98565b905060008160126001015484612cc29190613d98565b612ccc9190613d67565b905060008184612cdc9190613df2565b90506000479050612cec826127d8565b60008147612cfa9190613df2565b9050600060126001015486612d0f9190613df2565b82612d1a9190613d67565b9050600060126001015482612d2f9190613d98565b90506000811115612d4557612d4486826130d9565b5b6000601260000154600284612d5a9190613d98565b612d649190613d98565b90506000811115612dbb57612dba81600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a9c90919063ffffffff16565b5b6000601260020154600285612dd09190613d98565b612dda9190613d98565b90506000811115612e3157612e3081600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a9c90919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ec190613b8a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f31906139ea565b60405180910390fd5b612f458383836131e8565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fc290613a8a565b60405180910390fd5b8181612fd79190613df2565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130679190613d11565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130cb9190613bea565b60405180910390a350505050565b61310630600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f43565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161318f96959493929190613911565b6060604051808303818588803b1580156131a857600080fd5b505af11580156131bc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906131e191906134db565b5050505050565b505050565b6000813590506131fc81614424565b92915050565b60008151905061321181614424565b92915050565b6000813590506132268161443b565b92915050565b60008151905061323b8161443b565b92915050565b60008135905061325081614452565b92915050565b60008135905061326581614469565b92915050565b60008151905061327a81614469565b92915050565b60006020828403121561329257600080fd5b60006132a0848285016131ed565b91505092915050565b6000602082840312156132bb57600080fd5b60006132c984828501613202565b91505092915050565b600080604083850312156132e557600080fd5b60006132f3858286016131ed565b9250506020613304858286016131ed565b9150509250929050565b60008060006060848603121561332357600080fd5b6000613331868287016131ed565b9350506020613342868287016131ed565b925050604061335386828701613256565b9150509250925092565b6000806040838503121561337057600080fd5b600061337e858286016131ed565b925050602061338f85828601613217565b9150509250929050565b600080604083850312156133ac57600080fd5b60006133ba858286016131ed565b92505060206133cb85828601613256565b9150509250929050565b6000602082840312156133e757600080fd5b60006133f584828501613217565b91505092915050565b60006020828403121561341057600080fd5b600061341e8482850161322c565b91505092915050565b6000806040838503121561343a57600080fd5b600061344885828601613241565b9250506020613459858286016131ed565b9150509250929050565b60006020828403121561347557600080fd5b600061348384828501613256565b91505092915050565b6000806000606084860312156134a157600080fd5b60006134af86828701613256565b93505060206134c086828701613256565b92505060406134d186828701613256565b9150509250925092565b6000806000606084860312156134f057600080fd5b60006134fe8682870161326b565b935050602061350f8682870161326b565b92505060406135208682870161326b565b9150509250925092565b60006135368383613542565b60208301905092915050565b61354b81613e26565b82525050565b61355a81613e26565b82525050565b600061356b82613cc1565b6135758185613ce4565b935061358083613cb1565b8060005b838110156135b1578151613598888261352a565b97506135a383613cd7565b925050600181019050613584565b5085935050505092915050565b6135c781613e38565b82525050565b6135d681613e8d565b82525050565b6135e581613eb1565b82525050565b60006135f682613ccc565b6136008185613d00565b9350613610818560208601613ec3565b61361981613fb5565b840191505092915050565b6000613631601683613d00565b915061363c82613fc6565b602082019050919050565b6000613654602383613d00565b915061365f82613fef565b604082019050919050565b6000613677601d83613d00565b91506136828261403e565b602082019050919050565b600061369a601683613d00565b91506136a582614067565b602082019050919050565b60006136bd602683613d00565b91506136c882614090565b604082019050919050565b60006136e0602283613d00565b91506136eb826140df565b604082019050919050565b6000613703602683613d00565b915061370e8261412e565b604082019050919050565b6000613726602183613d00565b91506137318261417d565b604082019050919050565b6000613749603a83613d00565b9150613754826141cc565b604082019050919050565b600061376c601d83613d00565b91506137778261421b565b602082019050919050565b600061378f602883613d00565b915061379a82614244565b604082019050919050565b60006137b2602083613d00565b91506137bd82614293565b602082019050919050565b60006137d5602983613d00565b91506137e0826142bc565b604082019050919050565b60006137f8601983613d00565b91506138038261430b565b602082019050919050565b600061381b602583613d00565b915061382682614334565b604082019050919050565b600061383e600083613cf5565b915061384982614383565b600082019050919050565b6000613861602483613d00565b915061386c82614386565b604082019050919050565b6000613884602583613d00565b915061388f826143d5565b604082019050919050565b6138a381613e76565b82525050565b6138b281613e80565b82525050565b60006138c382613831565b9150819050919050565b60006020820190506138e26000830184613551565b92915050565b60006040820190506138fd6000830185613551565b61390a602083018461389a565b9392505050565b600060c0820190506139266000830189613551565b613933602083018861389a565b61394060408301876135dc565b61394d60608301866135dc565b61395a6080830185613551565b61396760a083018461389a565b979650505050505050565b600060208201905061398760008301846135be565b92915050565b60006020820190506139a260008301846135cd565b92915050565b600060208201905081810360008301526139c281846135eb565b905092915050565b600060208201905081810360008301526139e381613624565b9050919050565b60006020820190508181036000830152613a0381613647565b9050919050565b60006020820190508181036000830152613a238161366a565b9050919050565b60006020820190508181036000830152613a438161368d565b9050919050565b60006020820190508181036000830152613a63816136b0565b9050919050565b60006020820190508181036000830152613a83816136d3565b9050919050565b60006020820190508181036000830152613aa3816136f6565b9050919050565b60006020820190508181036000830152613ac381613719565b9050919050565b60006020820190508181036000830152613ae38161373c565b9050919050565b60006020820190508181036000830152613b038161375f565b9050919050565b60006020820190508181036000830152613b2381613782565b9050919050565b60006020820190508181036000830152613b43816137a5565b9050919050565b60006020820190508181036000830152613b63816137c8565b9050919050565b60006020820190508181036000830152613b83816137eb565b9050919050565b60006020820190508181036000830152613ba38161380e565b9050919050565b60006020820190508181036000830152613bc381613854565b9050919050565b60006020820190508181036000830152613be381613877565b9050919050565b6000602082019050613bff600083018461389a565b92915050565b600060a082019050613c1a600083018861389a565b613c2760208301876135dc565b8181036040830152613c398186613560565b9050613c486060830185613551565b613c55608083018461389a565b9695505050505050565b6000606082019050613c74600083018661389a565b613c81602083018561389a565b613c8e604083018461389a565b949350505050565b6000602082019050613cab60008301846138a9565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000613d1c82613e76565b9150613d2783613e76565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613d5c57613d5b613f28565b5b828201905092915050565b6000613d7282613e76565b9150613d7d83613e76565b925082613d8d57613d8c613f57565b5b828204905092915050565b6000613da382613e76565b9150613dae83613e76565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613de757613de6613f28565b5b828202905092915050565b6000613dfd82613e76565b9150613e0883613e76565b925082821015613e1b57613e1a613f28565b5b828203905092915050565b6000613e3182613e56565b9050919050565b60008115159050919050565b6000613e4f82613e26565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e9882613e9f565b9050919050565b6000613eaa82613e56565b9050919050565b6000613ebc82613e76565b9050919050565b60005b83811015613ee1578082015181840152602081019050613ec6565b83811115613ef0576000848401525b50505050565b60006002820490506001821680613f0e57607f821691505b60208210811415613f2257613f21613f86565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61442d81613e26565b811461443857600080fd5b50565b61444481613e38565b811461444f57600080fd5b50565b61445b81613e44565b811461446657600080fd5b50565b61447281613e76565b811461447d57600080fd5b5056fea2646970667358221220314d4d57af290fa5de74cad8b3cbb443ee15262219bd9d939004ddbdfe20ebd164736f6c63430008030033

Deployed Bytecode Sourcemap

13212:8336:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20162:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13523:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2418:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19551:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4585:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3538:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19903:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14101:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5236:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20938:546;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13446:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14069:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3380:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6067:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14199:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20013:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13411:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13481:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20422:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13381:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3709:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11989:94;;;;;;;;;;;;;:::i;:::-;;13985:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13709:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19059:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13579:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20668:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11766:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13791:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2637:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18941:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20818:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6785:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13327:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4049:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13639:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19777:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20543:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14143:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4287:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18840:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20276:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19341:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12091:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14025:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13299:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20162:106;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20255:5:::1;20238;:14;20244:7;20238:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20162:106:::0;;:::o;13523:49::-;;;;:::o;2418:100::-;2472:13;2505:5;2498:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2418:100;:::o;19551:214::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19668:35:::1;;;;;;;;19674:10;19668:35;;;;19686:10;19668:35;;;;19698:4;19668:35;;::::0;19656:9:::1;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;19753:4;19740:10;19727;:23;;;;:::i;:::-;:30;;;;:::i;:::-;19714:10;:43;;;;19551:214:::0;;;:::o;4585:169::-;4668:4;4685:39;4694:12;:10;:12::i;:::-;4708:7;4717:6;4685:8;:39::i;:::-;4742:4;4735:11;;4585:169;;;;:::o;3538:108::-;3599:7;3626:12;;3619:19;;3538:108;:::o;19903:102::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19988:9:::1;19976;;:21;;;;;;;;;;;;;;;;;;19903:102:::0;:::o;14101:29::-;;;;:::o;5236:422::-;5342:4;5359:36;5369:6;5377:9;5388:6;5359:9;:36::i;:::-;5408:24;5435:11;:19;5447:6;5435:19;;;;;;;;;;;;;;;:33;5455:12;:10;:12::i;:::-;5435:33;;;;;;;;;;;;;;;;5408:60;;5507:6;5487:16;:26;;5479:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5569:57;5578:6;5586:12;:10;:12::i;:::-;5619:6;5600:16;:25;;;;:::i;:::-;5569:8;:57::i;:::-;5646:4;5639:11;;;5236:422;;;;;:::o;20938:546::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21055:19:::1;21077:21;21055:43;;21109:24;21126:6;21109:16;:24::i;:::-;21144:18;21189:11;21165:21;:35;;;;:::i;:::-;21144:56;;21236:1;21214:19;:23;21211:136;;;21239:108;21326:19;21310:13;:35;;;;:::i;:::-;21287:19;21274:10;:32;;;;:::i;:::-;:72;;;;:::i;:::-;21247:15;;;;;;;;;;;21239:34;;;;:108;;;;:::i;:::-;21211:136;21377:1;21361:13;:17;21358:118;;;21380:96;21455:19;21439:13;:35;;;;:::i;:::-;21422:13;21409:10;:26;;;;:::i;:::-;:66;;;;:::i;:::-;21388:9;;;;;;;;;;;21380:28;;;;:96;;;;:::i;:::-;21358:118;11972:1;;20938:546:::0;;;:::o;13446:28::-;;;;:::o;14069:25::-;;;;:::o;3380:93::-;3438:5;3463:2;3456:9;;3380:93;:::o;6067:215::-;6155:4;6172:80;6181:12;:10;:12::i;:::-;6195:7;6241:10;6204:11;:25;6216:12;:10;:12::i;:::-;6204:25;;;;;;;;;;;;;;;:34;6230:7;6204:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6172:8;:80::i;:::-;6270:4;6263:11;;6067:215;;;;:::o;14199:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;20013:137::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20112:7:::1;20103:6;;:16;;;;;;;;;;;;;;;;;;20137:5;20130:4;;:12;;;;;;;;;;;;;;;;;;20013:137:::0;;:::o;13411:26::-;;;;;;;;;;;;;:::o;13481:29::-;;;;:::o;20422:109::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20517:6:::1;20508;:15;;;;:::i;:::-;20494:11;:29;;;;20422:109:::0;:::o;13381:23::-;;;;;;;;;;;;;:::o;3709:127::-;3783:7;3810:9;:18;3820:7;3810:18;;;;;;;;;;;;;;;;3803:25;;3709:127;;;:::o;11989:94::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12054:21:::1;12072:1;12054:9;:21::i;:::-;11989:94::o:0;13985:33::-;;;;;;;;;;;;;;;;;;;:::o;13709:75::-;;;;;;;;;;;;;:::o;19059:274::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19145:14:::1;;;;;;;;;;;19144:15;19136:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;19214:4;19197:14;;:21;;;;;;;;;;;;;;;;;;19243:4;19229:11;;:18;;;;;;;;;;;;;;;;;;19274:12;19258:13;:28;;;;19310:15;19297:10;:28;;;;19059:274:::0;:::o;13579:53::-;;;;:::o;20668:142::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20763:12:::1;20756:29;;;20786:7;:5;:7::i;:::-;20795:6;20756:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20668:142:::0;;:::o;11766:87::-;11812:7;11839:6;;;;;;;;;;;11832:13;;11766:87;:::o;13791:69::-;;;;;;;;;;;;;:::o;2637:104::-;2693:13;2726:7;2719:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2637:104;:::o;18941:110::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19033:10:::1;19017:13;:26;;;;18941:110:::0;:::o;20818:112::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20885:37:::1;20912:9;20893:7;:5;:7::i;:::-;20885:26;;;;:37;;;;:::i;:::-;20818:112:::0;:::o;6785:377::-;6878:4;6895:24;6922:11;:25;6934:12;:10;:12::i;:::-;6922:25;;;;;;;;;;;;;;;:34;6948:7;6922:34;;;;;;;;;;;;;;;;6895:61;;6995:15;6975:16;:35;;6967:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7063:67;7072:12;:10;:12::i;:::-;7086:7;7114:15;7095:16;:34;;;;:::i;:::-;7063:8;:67::i;:::-;7150:4;7143:11;;;6785:377;;;;:::o;13327:19::-;;;;;;;;;;;;;:::o;4049:175::-;4135:4;4152:42;4162:12;:10;:12::i;:::-;4176:9;4187:6;4152:9;:42::i;:::-;4212:4;4205:11;;4049:175;;;;:::o;13639:57::-;;;;:::o;19777:114::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19874:9:::1;19856:15;;:27;;;;;;;;;;;;;;;;;;19777:114:::0;:::o;20543:117::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20646:6:::1;20637;:15;;;;:::i;:::-;20619;:33;;;;20543:117:::0;:::o;14143:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4287:151::-;4376:7;4403:11;:18;4415:5;4403:18;;;;;;;;;;;;;;;:27;4422:7;4403:27;;;;;;;;;;;;;;;;4396:34;;4287:151;;;;:::o;18840:93::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18920:5:::1;18906:11;;:19;;;;;;;;;;;;;;;;;;18840:93:::0;:::o;20276:134::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20397:5:::1;20368:16;:26;20385:8;20368:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20276:134:::0;;:::o;19341:202::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19450:35:::1;;;;;;;;19456:10;19450:35;;;;19468:10;19450:35;;;;19480:4;19450:35;;::::0;19442:5:::1;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;19531:4;19518:10;19505;:23;;;;:::i;:::-;:30;;;;:::i;:::-;19496:6;:39;;;;19341:202:::0;;;:::o;12091:192::-;11912:12;:10;:12::i;:::-;11901:23;;:7;:5;:7::i;:::-;:23;;;11893:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12200:1:::1;12180:22;;:8;:22;;;;12172:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12256:19;12266:8;12256:9;:19::i;:::-;12091:192:::0;:::o;14025:37::-;;;;;;;;;;;;;;;;;;;:::o;13299:21::-;;;;;;;;;;;;;:::o;134:98::-;187:7;214:10;207:17;;134:98;:::o;10141:346::-;10260:1;10243:19;;:5;:19;;;;10235:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10341:1;10322:21;;:7;:21;;;;10314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10425:6;10395:11;:18;10407:5;10395:18;;;;;;;;;;;;;;;:27;10414:7;10395:27;;;;;;;;;;;;;;;:36;;;;10463:7;10447:32;;10456:5;10447:32;;;10472:6;10447:32;;;;;;:::i;:::-;;;;;;;;10141:346;;;:::o;14962:1573::-;15078:1;15069:6;:10;15061:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15145:5;:13;15151:6;15145:13;;;;;;;;;;;;;;;;;;;;;;;;;15144:14;:35;;;;;15163:5;:16;15169:9;15163:16;;;;;;;;;;;;;;;;;;;;;;;;;15162:17;15144:35;15136:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15252:16;:24;15269:6;15252:24;;;;;;;;;;;;;;;;;;;;;;;;;15251:25;:57;;;;;15281:16;:27;15298:9;15281:27;;;;;;;;;;;;;;;;;;;;;;;;;15280:28;15251:57;:70;;;;;15313:8;;;;;;;;;;;15312:9;15251:70;15248:589;;;15345:14;;;;;;;;;;;15337:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;15433:12;15420:10;;15404:13;;:26;;;;:::i;:::-;:41;15401:183;;;15481:4;;;;;;;;;;;15468:17;;:9;:17;;;15465:45;;15506:4;15487:5;:16;15493:9;15487:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;15465:45;15542:4;;;;;;;;;;;15532:14;;:6;:14;;;15529:39;;15564:4;15548:5;:13;15554:6;15548:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15529:39;15401:183;15616:11;;15606:6;:21;;15598:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15692:4;;;;;;;;;;;15679:17;;:9;:17;;;15676:150;;15757:15;;15747:6;15724:20;15734:9;15724;:20::i;:::-;:29;;;;:::i;:::-;:48;;15716:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15676:150;15248:589;15849:11;15956:8;;;;;;;;;;;:36;;;;15968:16;:24;15985:6;15968:24;;;;;;;;;;;;;;;;;;;;;;;;;15956:36;:67;;;;15996:16;:27;16013:9;15996:27;;;;;;;;;;;;;;;;;;;;;;;;;15956:67;15952:257;;;16031:1;16025:7;;15952:257;;;16113:4;;;;;;;;;;;16100:17;;:9;:17;;;16097:100;;;16147:3;16134:10;;16125:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16119:31;;16097:100;;;16194:3;16185:6;;16176;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16170:27;;16097:100;15952:257;16330:11;;;;;;;;;;;:24;;;;;16346:8;;;;;;;;;;;16345:9;16330:24;:42;;;;;16368:4;;;;;;;;;;;16358:14;;:6;:14;;;;16330:42;:53;;;;;16382:1;16376:3;:7;16330:53;16326:72;;;16385:13;:11;:13::i;:::-;16326:72;16411:48;16427:6;16435:9;16455:3;16446:6;:12;;;;:::i;:::-;16411:15;:48::i;:::-;16479:1;16473:3;:7;16470:55;;;16482:43;16498:6;16514:4;16521:3;16482:15;:43::i;:::-;16470:55;14962:1573;;;;:::o;17927:400::-;17993:21;18031:1;18017:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17993:40;;18062:4;18044;18049:1;18044:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;18088:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18078:4;18083:1;18078:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;18114:53;18131:4;18146:6;;;;;;;;;;;18155:11;18114:8;:53::i;:::-;18206:6;;;;;;;;;;;:57;;;18264:11;18277:1;18280:4;18294;18301:15;18206:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17927:400;;:::o;11211:317::-;11326:6;11301:21;:31;;11293:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11380:12;11398:9;:14;;11420:6;11398:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11379:52;;;11450:7;11442:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11211:317;;;:::o;12291:173::-;12347:16;12366:6;;;;;;;;;;;12347:25;;12392:8;12383:6;;:17;;;;;;;;;;;;;;;;;;12447:8;12416:40;;12437:8;12416:40;;;;;;;;;;;;12291:173;;:::o;16543:1374::-;14284:8;;;;;;;;;;;14279:104;;14320:4;14309:8;;:15;;;;;;;;;;;;;;;;;;16592:23:::1;16618:24;16636:4;16618:9;:24::i;:::-;16592:50;;16676:13;;16657:15;:32;16653:1257;;16763:19;16798:1;16785:10;;:14;;;;:::i;:::-;16763:36;;16814:32;16889:11;16867:9;:19;;;16849:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;16814:86;;16915:14;16950:24;16932:15;:42;;;;:::i;:::-;16915:59;;16995:22;17020:21;16995:46;;17062:24;17079:6;17062:16;:24::i;:::-;17107:20;17154:14;17130:21;:38;;;;:::i;:::-;17107:61;;17183:19;17234:9;:19;;;17220:11;:33;;;;:::i;:::-;17204:12;:50;;;;:::i;:::-;17183:71;;17269:29;17315:9;:19;;;17301:11;:33;;;;:::i;:::-;17269:65;;17382:1;17358:21;:25;17355:170;;;17448:61;17461:24;17487:21;17448:12;:61::i;:::-;17355:170;17545:20;17586:9;:19;;;17582:1;17568:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;17545:60;;17638:1;17623:12;:16;17620:103;;;17659:48;17694:12;17667:15;;;;;;;;;;;17659:34;;;;:48;;;;:::i;:::-;17620:103;17751:14;17786:9;:13;;;17782:1;17768:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;17751:48;;17826:1;17817:6;:10;17814:85;;;17847:36;17876:6;17855:9;;;;;;;;;;;17847:28;;;;:36;;;;:::i;:::-;17814:85;16653:1257;;;;;;;;;;14339:1;14366:5:::0;14355:8;;:16;;;;;;;;;;;;;;;;;;14279:104;16543:1374::o;7652:604::-;7776:1;7758:20;;:6;:20;;;;7750:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7860:1;7839:23;;:9;:23;;;;7831:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7915:47;7936:6;7944:9;7955:6;7915:20;:47::i;:::-;7975:21;7999:9;:17;8009:6;7999:17;;;;;;;;;;;;;;;;7975:41;;8052:6;8035:13;:23;;8027:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8148:6;8132:13;:22;;;;:::i;:::-;8112:9;:17;8122:6;8112:17;;;;;;;;;;;;;;;:42;;;;8189:6;8165:9;:20;8175:9;8165:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8230:9;8213:35;;8222:6;8213:35;;;8241:6;8213:35;;;;;;:::i;:::-;;;;;;;;7652:604;;;;:::o;18335:497::-;18483:53;18500:4;18515:6;;;;;;;;;;;18524:11;18483:8;:53::i;:::-;18579:6;;;;;;;;;;;:22;;;18609:9;18642:4;18662:11;18688:1;18731;18774:9;;;;;;;;;;;18798:15;18579:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18335:497;;:::o;11090:92::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:169::-;;682:6;669:20;660:29;;698:48;740:5;698:48;:::i;:::-;650:102;;;;:::o;758:139::-;;842:6;829:20;820:29;;858:33;885:5;858:33;:::i;:::-;810:87;;;;:::o;903:143::-;;991:6;985:13;976:22;;1007:33;1034:5;1007:33;:::i;:::-;966:80;;;;:::o;1052:262::-;;1160:2;1148:9;1139:7;1135:23;1131:32;1128:2;;;1176:1;1173;1166:12;1128:2;1219:1;1244:53;1289:7;1280:6;1269:9;1265:22;1244:53;:::i;:::-;1234:63;;1190:117;1118:196;;;;:::o;1320:284::-;;1439:2;1427:9;1418:7;1414:23;1410:32;1407:2;;;1455:1;1452;1445:12;1407:2;1498:1;1523:64;1579:7;1570:6;1559:9;1555:22;1523:64;:::i;:::-;1513:74;;1469:128;1397:207;;;;:::o;1610:407::-;;;1735:2;1723:9;1714:7;1710:23;1706:32;1703:2;;;1751:1;1748;1741:12;1703:2;1794:1;1819:53;1864:7;1855:6;1844:9;1840:22;1819:53;:::i;:::-;1809:63;;1765:117;1921:2;1947:53;1992:7;1983:6;1972:9;1968:22;1947:53;:::i;:::-;1937:63;;1892:118;1693:324;;;;;:::o;2023:552::-;;;;2165:2;2153:9;2144:7;2140:23;2136:32;2133:2;;;2181:1;2178;2171:12;2133:2;2224:1;2249:53;2294:7;2285:6;2274:9;2270:22;2249:53;:::i;:::-;2239:63;;2195:117;2351:2;2377:53;2422:7;2413:6;2402:9;2398:22;2377:53;:::i;:::-;2367:63;;2322:118;2479:2;2505:53;2550:7;2541:6;2530:9;2526:22;2505:53;:::i;:::-;2495:63;;2450:118;2123:452;;;;;:::o;2581:401::-;;;2703:2;2691:9;2682:7;2678:23;2674:32;2671:2;;;2719:1;2716;2709:12;2671:2;2762:1;2787:53;2832:7;2823:6;2812:9;2808:22;2787:53;:::i;:::-;2777:63;;2733:117;2889:2;2915:50;2957:7;2948:6;2937:9;2933:22;2915:50;:::i;:::-;2905:60;;2860:115;2661:321;;;;;:::o;2988:407::-;;;3113:2;3101:9;3092:7;3088:23;3084:32;3081:2;;;3129:1;3126;3119:12;3081:2;3172:1;3197:53;3242:7;3233:6;3222:9;3218:22;3197:53;:::i;:::-;3187:63;;3143:117;3299:2;3325:53;3370:7;3361:6;3350:9;3346:22;3325:53;:::i;:::-;3315:63;;3270:118;3071:324;;;;;:::o;3401:256::-;;3506:2;3494:9;3485:7;3481:23;3477:32;3474:2;;;3522:1;3519;3512:12;3474:2;3565:1;3590:50;3632:7;3623:6;3612:9;3608:22;3590:50;:::i;:::-;3580:60;;3536:114;3464:193;;;;:::o;3663:278::-;;3779:2;3767:9;3758:7;3754:23;3750:32;3747:2;;;3795:1;3792;3785:12;3747:2;3838:1;3863:61;3916:7;3907:6;3896:9;3892:22;3863:61;:::i;:::-;3853:71;;3809:125;3737:204;;;;:::o;3947:437::-;;;4087:2;4075:9;4066:7;4062:23;4058:32;4055:2;;;4103:1;4100;4093:12;4055:2;4146:1;4171:68;4231:7;4222:6;4211:9;4207:22;4171:68;:::i;:::-;4161:78;;4117:132;4288:2;4314:53;4359:7;4350:6;4339:9;4335:22;4314:53;:::i;:::-;4304:63;;4259:118;4045:339;;;;;:::o;4390:262::-;;4498:2;4486:9;4477:7;4473:23;4469:32;4466:2;;;4514:1;4511;4504:12;4466:2;4557:1;4582:53;4627:7;4618:6;4607:9;4603:22;4582:53;:::i;:::-;4572:63;;4528:117;4456:196;;;;:::o;4658:552::-;;;;4800:2;4788:9;4779:7;4775:23;4771:32;4768:2;;;4816:1;4813;4806:12;4768:2;4859:1;4884:53;4929:7;4920:6;4909:9;4905:22;4884:53;:::i;:::-;4874:63;;4830:117;4986:2;5012:53;5057:7;5048:6;5037:9;5033:22;5012:53;:::i;:::-;5002:63;;4957:118;5114:2;5140:53;5185:7;5176:6;5165:9;5161:22;5140:53;:::i;:::-;5130:63;;5085:118;4758:452;;;;;:::o;5216:596::-;;;;5369:2;5357:9;5348:7;5344:23;5340:32;5337:2;;;5385:1;5382;5375:12;5337:2;5428:1;5453:64;5509:7;5500:6;5489:9;5485:22;5453:64;:::i;:::-;5443:74;;5399:128;5566:2;5592:64;5648:7;5639:6;5628:9;5624:22;5592:64;:::i;:::-;5582:74;;5537:129;5705:2;5731:64;5787:7;5778:6;5767:9;5763:22;5731:64;:::i;:::-;5721:74;;5676:129;5327:485;;;;;:::o;5818:179::-;;5908:46;5950:3;5942:6;5908:46;:::i;:::-;5986:4;5981:3;5977:14;5963:28;;5898:99;;;;:::o;6003:108::-;6080:24;6098:5;6080:24;:::i;:::-;6075:3;6068:37;6058:53;;:::o;6117:118::-;6204:24;6222:5;6204:24;:::i;:::-;6199:3;6192:37;6182:53;;:::o;6271:732::-;;6419:54;6467:5;6419:54;:::i;:::-;6489:86;6568:6;6563:3;6489:86;:::i;:::-;6482:93;;6599:56;6649:5;6599:56;:::i;:::-;6678:7;6709:1;6694:284;6719:6;6716:1;6713:13;6694:284;;;6795:6;6789:13;6822:63;6881:3;6866:13;6822:63;:::i;:::-;6815:70;;6908:60;6961:6;6908:60;:::i;:::-;6898:70;;6754:224;6741:1;6738;6734:9;6729:14;;6694:284;;;6698:14;6994:3;6987:10;;6395:608;;;;;;;:::o;7009:109::-;7090:21;7105:5;7090:21;:::i;:::-;7085:3;7078:34;7068:50;;:::o;7124:161::-;7226:52;7272:5;7226:52;:::i;:::-;7221:3;7214:65;7204:81;;:::o;7291:147::-;7386:45;7425:5;7386:45;:::i;:::-;7381:3;7374:58;7364:74;;:::o;7444:364::-;;7560:39;7593:5;7560:39;:::i;:::-;7615:71;7679:6;7674:3;7615:71;:::i;:::-;7608:78;;7695:52;7740:6;7735:3;7728:4;7721:5;7717:16;7695:52;:::i;:::-;7772:29;7794:6;7772:29;:::i;:::-;7767:3;7763:39;7756:46;;7536:272;;;;;:::o;7814:366::-;;7977:67;8041:2;8036:3;7977:67;:::i;:::-;7970:74;;8053:93;8142:3;8053:93;:::i;:::-;8171:2;8166:3;8162:12;8155:19;;7960:220;;;:::o;8186:366::-;;8349:67;8413:2;8408:3;8349:67;:::i;:::-;8342:74;;8425:93;8514:3;8425:93;:::i;:::-;8543:2;8538:3;8534:12;8527:19;;8332:220;;;:::o;8558:366::-;;8721:67;8785:2;8780:3;8721:67;:::i;:::-;8714:74;;8797:93;8886:3;8797:93;:::i;:::-;8915:2;8910:3;8906:12;8899:19;;8704:220;;;:::o;8930:366::-;;9093:67;9157:2;9152:3;9093:67;:::i;:::-;9086:74;;9169:93;9258:3;9169:93;:::i;:::-;9287:2;9282:3;9278:12;9271:19;;9076:220;;;:::o;9302:366::-;;9465:67;9529:2;9524:3;9465:67;:::i;:::-;9458:74;;9541:93;9630:3;9541:93;:::i;:::-;9659:2;9654:3;9650:12;9643:19;;9448:220;;;:::o;9674:366::-;;9837:67;9901:2;9896:3;9837:67;:::i;:::-;9830:74;;9913:93;10002:3;9913:93;:::i;:::-;10031:2;10026:3;10022:12;10015:19;;9820:220;;;:::o;10046:366::-;;10209:67;10273:2;10268:3;10209:67;:::i;:::-;10202:74;;10285:93;10374:3;10285:93;:::i;:::-;10403:2;10398:3;10394:12;10387:19;;10192:220;;;:::o;10418:366::-;;10581:67;10645:2;10640:3;10581:67;:::i;:::-;10574:74;;10657:93;10746:3;10657:93;:::i;:::-;10775:2;10770:3;10766:12;10759:19;;10564:220;;;:::o;10790:366::-;;10953:67;11017:2;11012:3;10953:67;:::i;:::-;10946:74;;11029:93;11118:3;11029:93;:::i;:::-;11147:2;11142:3;11138:12;11131:19;;10936:220;;;:::o;11162:366::-;;11325:67;11389:2;11384:3;11325:67;:::i;:::-;11318:74;;11401:93;11490:3;11401:93;:::i;:::-;11519:2;11514:3;11510:12;11503:19;;11308:220;;;:::o;11534:366::-;;11697:67;11761:2;11756:3;11697:67;:::i;:::-;11690:74;;11773:93;11862:3;11773:93;:::i;:::-;11891:2;11886:3;11882:12;11875:19;;11680:220;;;:::o;11906:366::-;;12069:67;12133:2;12128:3;12069:67;:::i;:::-;12062:74;;12145:93;12234:3;12145:93;:::i;:::-;12263:2;12258:3;12254:12;12247:19;;12052:220;;;:::o;12278:366::-;;12441:67;12505:2;12500:3;12441:67;:::i;:::-;12434:74;;12517:93;12606:3;12517:93;:::i;:::-;12635:2;12630:3;12626:12;12619:19;;12424:220;;;:::o;12650:366::-;;12813:67;12877:2;12872:3;12813:67;:::i;:::-;12806:74;;12889:93;12978:3;12889:93;:::i;:::-;13007:2;13002:3;12998:12;12991:19;;12796:220;;;:::o;13022:366::-;;13185:67;13249:2;13244:3;13185:67;:::i;:::-;13178:74;;13261:93;13350:3;13261:93;:::i;:::-;13379:2;13374:3;13370:12;13363:19;;13168:220;;;:::o;13394:398::-;;13574:83;13655:1;13650:3;13574:83;:::i;:::-;13567:90;;13666:93;13755:3;13666:93;:::i;:::-;13784:1;13779:3;13775:11;13768:18;;13557:235;;;:::o;13798:366::-;;13961:67;14025:2;14020:3;13961:67;:::i;:::-;13954:74;;14037:93;14126:3;14037:93;:::i;:::-;14155:2;14150:3;14146:12;14139:19;;13944:220;;;:::o;14170:366::-;;14333:67;14397:2;14392:3;14333:67;:::i;:::-;14326:74;;14409:93;14498:3;14409:93;:::i;:::-;14527:2;14522:3;14518:12;14511:19;;14316:220;;;:::o;14542:118::-;14629:24;14647:5;14629:24;:::i;:::-;14624:3;14617:37;14607:53;;:::o;14666:112::-;14749:22;14765:5;14749:22;:::i;:::-;14744:3;14737:35;14727:51;;:::o;14784:379::-;;14990:147;15133:3;14990:147;:::i;:::-;14983:154;;15154:3;15147:10;;14972:191;;;:::o;15169:222::-;;15300:2;15289:9;15285:18;15277:26;;15313:71;15381:1;15370:9;15366:17;15357:6;15313:71;:::i;:::-;15267:124;;;;:::o;15397:332::-;;15556:2;15545:9;15541:18;15533:26;;15569:71;15637:1;15626:9;15622:17;15613:6;15569:71;:::i;:::-;15650:72;15718:2;15707:9;15703:18;15694:6;15650:72;:::i;:::-;15523:206;;;;;:::o;15735:807::-;;16022:3;16011:9;16007:19;15999:27;;16036:71;16104:1;16093:9;16089:17;16080:6;16036:71;:::i;:::-;16117:72;16185:2;16174:9;16170:18;16161:6;16117:72;:::i;:::-;16199:80;16275:2;16264:9;16260:18;16251:6;16199:80;:::i;:::-;16289;16365:2;16354:9;16350:18;16341:6;16289:80;:::i;:::-;16379:73;16447:3;16436:9;16432:19;16423:6;16379:73;:::i;:::-;16462;16530:3;16519:9;16515:19;16506:6;16462:73;:::i;:::-;15989:553;;;;;;;;;:::o;16548:210::-;;16673:2;16662:9;16658:18;16650:26;;16686:65;16748:1;16737:9;16733:17;16724:6;16686:65;:::i;:::-;16640:118;;;;:::o;16764:252::-;;16910:2;16899:9;16895:18;16887:26;;16923:86;17006:1;16995:9;16991:17;16982:6;16923:86;:::i;:::-;16877:139;;;;:::o;17022:313::-;;17173:2;17162:9;17158:18;17150:26;;17222:9;17216:4;17212:20;17208:1;17197:9;17193:17;17186:47;17250:78;17323:4;17314:6;17250:78;:::i;:::-;17242:86;;17140:195;;;;:::o;17341:419::-;;17545:2;17534:9;17530:18;17522:26;;17594:9;17588:4;17584:20;17580:1;17569:9;17565:17;17558:47;17622:131;17748:4;17622:131;:::i;:::-;17614:139;;17512:248;;;:::o;17766:419::-;;17970:2;17959:9;17955:18;17947:26;;18019:9;18013:4;18009:20;18005:1;17994:9;17990:17;17983:47;18047:131;18173:4;18047:131;:::i;:::-;18039:139;;17937:248;;;:::o;18191:419::-;;18395:2;18384:9;18380:18;18372:26;;18444:9;18438:4;18434:20;18430:1;18419:9;18415:17;18408:47;18472:131;18598:4;18472:131;:::i;:::-;18464:139;;18362:248;;;:::o;18616:419::-;;18820:2;18809:9;18805:18;18797:26;;18869:9;18863:4;18859:20;18855:1;18844:9;18840:17;18833:47;18897:131;19023:4;18897:131;:::i;:::-;18889:139;;18787:248;;;:::o;19041:419::-;;19245:2;19234:9;19230:18;19222:26;;19294:9;19288:4;19284:20;19280:1;19269:9;19265:17;19258:47;19322:131;19448:4;19322:131;:::i;:::-;19314:139;;19212:248;;;:::o;19466:419::-;;19670:2;19659:9;19655:18;19647:26;;19719:9;19713:4;19709:20;19705:1;19694:9;19690:17;19683:47;19747:131;19873:4;19747:131;:::i;:::-;19739:139;;19637:248;;;:::o;19891:419::-;;20095:2;20084:9;20080:18;20072:26;;20144:9;20138:4;20134:20;20130:1;20119:9;20115:17;20108:47;20172:131;20298:4;20172:131;:::i;:::-;20164:139;;20062:248;;;:::o;20316:419::-;;20520:2;20509:9;20505:18;20497:26;;20569:9;20563:4;20559:20;20555:1;20544:9;20540:17;20533:47;20597:131;20723:4;20597:131;:::i;:::-;20589:139;;20487:248;;;:::o;20741:419::-;;20945:2;20934:9;20930:18;20922:26;;20994:9;20988:4;20984:20;20980:1;20969:9;20965:17;20958:47;21022:131;21148:4;21022:131;:::i;:::-;21014:139;;20912:248;;;:::o;21166:419::-;;21370:2;21359:9;21355:18;21347:26;;21419:9;21413:4;21409:20;21405:1;21394:9;21390:17;21383:47;21447:131;21573:4;21447:131;:::i;:::-;21439:139;;21337:248;;;:::o;21591:419::-;;21795:2;21784:9;21780:18;21772:26;;21844:9;21838:4;21834:20;21830:1;21819:9;21815:17;21808:47;21872:131;21998:4;21872:131;:::i;:::-;21864:139;;21762:248;;;:::o;22016:419::-;;22220:2;22209:9;22205:18;22197:26;;22269:9;22263:4;22259:20;22255:1;22244:9;22240:17;22233:47;22297:131;22423:4;22297:131;:::i;:::-;22289:139;;22187:248;;;:::o;22441:419::-;;22645:2;22634:9;22630:18;22622:26;;22694:9;22688:4;22684:20;22680:1;22669:9;22665:17;22658:47;22722:131;22848:4;22722:131;:::i;:::-;22714:139;;22612:248;;;:::o;22866:419::-;;23070:2;23059:9;23055:18;23047:26;;23119:9;23113:4;23109:20;23105:1;23094:9;23090:17;23083:47;23147:131;23273:4;23147:131;:::i;:::-;23139:139;;23037:248;;;:::o;23291:419::-;;23495:2;23484:9;23480:18;23472:26;;23544:9;23538:4;23534:20;23530:1;23519:9;23515:17;23508:47;23572:131;23698:4;23572:131;:::i;:::-;23564:139;;23462:248;;;:::o;23716:419::-;;23920:2;23909:9;23905:18;23897:26;;23969:9;23963:4;23959:20;23955:1;23944:9;23940:17;23933:47;23997:131;24123:4;23997:131;:::i;:::-;23989:139;;23887:248;;;:::o;24141:419::-;;24345:2;24334:9;24330:18;24322:26;;24394:9;24388:4;24384:20;24380:1;24369:9;24365:17;24358:47;24422:131;24548:4;24422:131;:::i;:::-;24414:139;;24312:248;;;:::o;24566:222::-;;24697:2;24686:9;24682:18;24674:26;;24710:71;24778:1;24767:9;24763:17;24754:6;24710:71;:::i;:::-;24664:124;;;;:::o;24794:831::-;;25095:3;25084:9;25080:19;25072:27;;25109:71;25177:1;25166:9;25162:17;25153:6;25109:71;:::i;:::-;25190:80;25266:2;25255:9;25251:18;25242:6;25190:80;:::i;:::-;25317:9;25311:4;25307:20;25302:2;25291:9;25287:18;25280:48;25345:108;25448:4;25439:6;25345:108;:::i;:::-;25337:116;;25463:72;25531:2;25520:9;25516:18;25507:6;25463:72;:::i;:::-;25545:73;25613:3;25602:9;25598:19;25589:6;25545:73;:::i;:::-;25062:563;;;;;;;;:::o;25631:442::-;;25818:2;25807:9;25803:18;25795:26;;25831:71;25899:1;25888:9;25884:17;25875:6;25831:71;:::i;:::-;25912:72;25980:2;25969:9;25965:18;25956:6;25912:72;:::i;:::-;25994;26062:2;26051:9;26047:18;26038:6;25994:72;:::i;:::-;25785:288;;;;;;:::o;26079:214::-;;26206:2;26195:9;26191:18;26183:26;;26219:67;26283:1;26272:9;26268:17;26259:6;26219:67;:::i;:::-;26173:120;;;;:::o;26299:132::-;;26389:3;26381:11;;26419:4;26414:3;26410:14;26402:22;;26371:60;;;:::o;26437:114::-;;26538:5;26532:12;26522:22;;26511:40;;;:::o;26557:99::-;;26643:5;26637:12;26627:22;;26616:40;;;:::o;26662:113::-;;26764:4;26759:3;26755:14;26747:22;;26737:38;;;:::o;26781:184::-;;26914:6;26909:3;26902:19;26954:4;26949:3;26945:14;26930:29;;26892:73;;;;:::o;26971:147::-;;27109:3;27094:18;;27084:34;;;;:::o;27124:169::-;;27242:6;27237:3;27230:19;27282:4;27277:3;27273:14;27258:29;;27220:73;;;;:::o;27299:305::-;;27358:20;27376:1;27358:20;:::i;:::-;27353:25;;27392:20;27410:1;27392:20;:::i;:::-;27387:25;;27546:1;27478:66;27474:74;27471:1;27468:81;27465:2;;;27552:18;;:::i;:::-;27465:2;27596:1;27593;27589:9;27582:16;;27343:261;;;;:::o;27610:185::-;;27667:20;27685:1;27667:20;:::i;:::-;27662:25;;27701:20;27719:1;27701:20;:::i;:::-;27696:25;;27740:1;27730:2;;27745:18;;:::i;:::-;27730:2;27787:1;27784;27780:9;27775:14;;27652:143;;;;:::o;27801:348::-;;27864:20;27882:1;27864:20;:::i;:::-;27859:25;;27898:20;27916:1;27898:20;:::i;:::-;27893:25;;28086:1;28018:66;28014:74;28011:1;28008:81;28003:1;27996:9;27989:17;27985:105;27982:2;;;28093:18;;:::i;:::-;27982:2;28141:1;28138;28134:9;28123:20;;27849:300;;;;:::o;28155:191::-;;28215:20;28233:1;28215:20;:::i;:::-;28210:25;;28249:20;28267:1;28249:20;:::i;:::-;28244:25;;28288:1;28285;28282:8;28279:2;;;28293:18;;:::i;:::-;28279:2;28338:1;28335;28331:9;28323:17;;28200:146;;;;:::o;28352:96::-;;28418:24;28436:5;28418:24;:::i;:::-;28407:35;;28397:51;;;:::o;28454:90::-;;28531:5;28524:13;28517:21;28506:32;;28496:48;;;:::o;28550:111::-;;28631:24;28649:5;28631:24;:::i;:::-;28620:35;;28610:51;;;:::o;28667:126::-;;28744:42;28737:5;28733:54;28722:65;;28712:81;;;:::o;28799:77::-;;28865:5;28854:16;;28844:32;;;:::o;28882:86::-;;28957:4;28950:5;28946:16;28935:27;;28925:43;;;:::o;28974:156::-;;29072:52;29118:5;29072:52;:::i;:::-;29059:65;;29049:81;;;:::o;29136:128::-;;29234:24;29252:5;29234:24;:::i;:::-;29221:37;;29211:53;;;:::o;29270:121::-;;29361:24;29379:5;29361:24;:::i;:::-;29348:37;;29338:53;;;:::o;29397:307::-;29465:1;29475:113;29489:6;29486:1;29483:13;29475:113;;;29574:1;29569:3;29565:11;29559:18;29555:1;29550:3;29546:11;29539:39;29511:2;29508:1;29504:10;29499:15;;29475:113;;;29606:6;29603:1;29600:13;29597:2;;;29686:1;29677:6;29672:3;29668:16;29661:27;29597:2;29446:258;;;;:::o;29710:320::-;;29791:1;29785:4;29781:12;29771:22;;29838:1;29832:4;29828:12;29859:18;29849:2;;29915:4;29907:6;29903:17;29893:27;;29849:2;29977;29969:6;29966:14;29946:18;29943:38;29940:2;;;29996:18;;:::i;:::-;29940:2;29761:269;;;;:::o;30036:180::-;30084:77;30081:1;30074:88;30181:4;30178:1;30171:15;30205:4;30202:1;30195:15;30222:180;30270:77;30267:1;30260:88;30367:4;30364:1;30357:15;30391:4;30388:1;30381:15;30408:180;30456:77;30453:1;30446:88;30553:4;30550:1;30543:15;30577:4;30574:1;30567:15;30594:102;;30686:2;30682:7;30677:2;30670:5;30666:14;30662:28;30652:38;;30642:54;;;:::o;30702:172::-;30842:24;30838:1;30830:6;30826:14;30819:48;30808:66;:::o;30880:222::-;31020:34;31016:1;31008:6;31004:14;30997:58;31089:5;31084:2;31076:6;31072:15;31065:30;30986:116;:::o;31108:179::-;31248:31;31244:1;31236:6;31232:14;31225:55;31214:73;:::o;31293:172::-;31433:24;31429:1;31421:6;31417:14;31410:48;31399:66;:::o;31471:225::-;31611:34;31607:1;31599:6;31595:14;31588:58;31680:8;31675:2;31667:6;31663:15;31656:33;31577:119;:::o;31702:221::-;31842:34;31838:1;31830:6;31826:14;31819:58;31911:4;31906:2;31898:6;31894:15;31887:29;31808:115;:::o;31929:225::-;32069:34;32065:1;32057:6;32053:14;32046:58;32138:8;32133:2;32125:6;32121:15;32114:33;32035:119;:::o;32160:220::-;32300:34;32296:1;32288:6;32284:14;32277:58;32369:3;32364:2;32356:6;32352:15;32345:28;32266:114;:::o;32386:245::-;32526:34;32522:1;32514:6;32510:14;32503:58;32595:28;32590:2;32582:6;32578:15;32571:53;32492:139;:::o;32637:179::-;32777:31;32773:1;32765:6;32761:14;32754:55;32743:73;:::o;32822:227::-;32962:34;32958:1;32950:6;32946:14;32939:58;33031:10;33026:2;33018:6;33014:15;33007:35;32928:121;:::o;33055:182::-;33195:34;33191:1;33183:6;33179:14;33172:58;33161:76;:::o;33243:228::-;33383:34;33379:1;33371:6;33367:14;33360:58;33452:11;33447:2;33439:6;33435:15;33428:36;33349:122;:::o;33477:175::-;33617:27;33613:1;33605:6;33601:14;33594:51;33583:69;:::o;33658:224::-;33798:34;33794:1;33786:6;33782:14;33775:58;33867:7;33862:2;33854:6;33850:15;33843:32;33764:118;:::o;33888:114::-;33994:8;:::o;34008:223::-;34148:34;34144:1;34136:6;34132:14;34125:58;34217:6;34212:2;34204:6;34200:15;34193:31;34114:117;:::o;34237:224::-;34377:34;34373:1;34365:6;34361:14;34354:58;34446:7;34441:2;34433:6;34429:15;34422:32;34343:118;:::o;34467:122::-;34540:24;34558:5;34540:24;:::i;:::-;34533:5;34530:35;34520:2;;34579:1;34576;34569:12;34520:2;34510:79;:::o;34595:116::-;34665:21;34680:5;34665:21;:::i;:::-;34658:5;34655:32;34645:2;;34701:1;34698;34691:12;34645:2;34635:76;:::o;34717:152::-;34805:39;34838:5;34805:39;:::i;:::-;34798:5;34795:50;34785:2;;34859:1;34856;34849:12;34785:2;34775:94;:::o;34875:122::-;34948:24;34966:5;34948:24;:::i;:::-;34941:5;34938:35;34928:2;;34987:1;34984;34977:12;34928:2;34918:79;:::o

Swarm Source

ipfs://314d4d57af290fa5de74cad8b3cbb443ee15262219bd9d939004ddbdfe20ebd1
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.