ETH Price: $2,283.93 (-3.75%)

Token

UNIPAD (UNP)
 

Overview

Max Total Supply

100,000,000 UNP

Holders

210

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
65,709.150618820703169078 UNP

Value
$0.00
0x48584e776709951d73039aeb066781eebCa0E672
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:
UNIPAD

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
istanbul EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-21
*/

/*
                            AI POWERED LAUNCHPAD

 ▄         ▄  ▄▄        ▄  ▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄▄▄▄  
▐░▌       ▐░▌▐░░▌      ▐░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░░░░░░░░░░▌ 
▐░▌       ▐░▌▐░▌░▌     ▐░▌ ▀▀▀▀█░█▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌▐░█▀▀▀▀▀▀▀█░▌
▐░▌       ▐░▌▐░▌▐░▌    ▐░▌     ▐░▌     ▐░▌       ▐░▌▐░▌       ▐░▌▐░▌       ▐░▌
▐░▌       ▐░▌▐░▌ ▐░▌   ▐░▌     ▐░▌     ▐░█▄▄▄▄▄▄▄█░▌▐░█▄▄▄▄▄▄▄█░▌▐░▌       ▐░▌
▐░▌       ▐░▌▐░▌  ▐░▌  ▐░▌     ▐░▌     ▐░░░░░░░░░░░▌▐░░░░░░░░░░░▌▐░▌       ▐░▌
▐░▌       ▐░▌▐░▌   ▐░▌ ▐░▌     ▐░▌     ▐░█▀▀▀▀▀▀▀▀▀ ▐░█▀▀▀▀▀▀▀█░▌▐░▌       ▐░▌
▐░▌       ▐░▌▐░▌    ▐░▌▐░▌     ▐░▌     ▐░▌          ▐░▌       ▐░▌▐░▌       ▐░▌
▐░█▄▄▄▄▄▄▄█░▌▐░▌     ▐░▐░▌ ▄▄▄▄█░█▄▄▄▄ ▐░▌          ▐░▌       ▐░▌▐░█▄▄▄▄▄▄▄█░▌
▐░░░░░░░░░░░▌▐░▌      ▐░░▌▐░░░░░░░░░░░▌▐░▌          ▐░▌       ▐░▌▐░░░░░░░░░░▌ 
 ▀▀▀▀▀▀▀▀▀▀▀  ▀        ▀▀  ▀▀▀▀▀▀▀▀▀▀▀  ▀            ▀         ▀  ▀▀▀▀▀▀▀▀▀▀  
                                                                              
     https://unipad.app/
     https://t.me/unipadofficial
     https://x.com/unipadcoin                                                 */                        
                                                                    
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

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 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

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

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

    uint256 private _totalSupply;
    
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

     function setTotalSupply(uint256 amount) internal virtual{
        _totalSupply = amount;
    }

    function setBalance(address account, uint256 amount) internal virtual{
        _balances[account] += amount;
    }
   
    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);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

contract UNIPAD is ERC20, Ownable {
    IUniswapV2Router02 public uniswapV2Router;
    address public  uniswapV2Pair;
    address public marketingWallet;

    mapping (address => bool) private _isExcludedFromFees;

    uint256 public buyFee;
    uint256 public sellFee;
    uint256 public walletToWalletTransferFee;

    uint256 public  swapTokensAtAmount;
    bool    private swapping;
    bool    public  enableTrading;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event BuyFeeUpdated(uint256 buyFee);
    event SellFeeUpdated(uint256 sellFee);
    event WalletToWalletTransferFeeUpdated(uint256 walletToWalletTransferFee);
    event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount);
    event SwapAndSend(uint256 tokensSwapped, uint256 valueReceived);
    event MarketingWalletChanged(address marketingWallet);
    event TradingEnabled(bool enabled);

    constructor () ERC20("UNIPAD", "UNP") 
    {   
        address newOwner = 0x1891211C0695a3f51785744eFE8c763211832824;
        transferOwnership(newOwner);

        address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair   = _uniswapV2Pair;

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

        buyFee  = 3;
        sellFee = 3;
        walletToWalletTransferFee = 3;

        marketingWallet = 0xbc927df095Fa9F60341A46Bad50cB2DA61a901AC;

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(0xdead)] = true;
        _isExcludedFromFees[address(this)] = true;

        setTotalSupply(100_000_000 * 1e18);
        setBalance(owner(),totalSupply());
        emit Transfer(address(0), owner(), totalSupply());
        swapTokensAtAmount = totalSupply() / 5000;
    }

    receive() external payable {

  	}

    function setEnableTrading() public onlyOwner{
        require(enableTrading == false, "Trading is already enabled");
        enableTrading = true;
        emit TradingEnabled(true);
    }  

    function claimStuckTokens(address token) external onlyOwner {
        require(token != address(this), "Owner cannot claim contract's balance of its own tokens");
        if (token == address(0x0)) {
            (bool success,) = msg.sender.call{value: address(this).balance}("");
            require(success, "Claim failed");
            return;
        }
        IERC20 ERC20token = IERC20(token);
        uint256 balance = ERC20token.balanceOf(address(this));
        ERC20token.transfer(msg.sender, balance);
    }

    function excludeFromFees(address account, bool excluded) external onlyOwner{
        require(_isExcludedFromFees[account] != excluded,"Account is already the value of 'excluded'");
        _isExcludedFromFees[account] = excluded;

        emit ExcludeFromFees(account, excluded);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }

    function setBuyFee(uint256 _buyFee) external onlyOwner {
        require(_buyFee <= 9, "Buy Fee cannot be more than 9%");
        buyFee = _buyFee;
        emit BuyFeeUpdated(buyFee);
    }

    function setSellFee(uint256 _sellFee) external onlyOwner {
        require(_sellFee <= 9, "Sell Fee cannot be more than 9%");
        sellFee = _sellFee;
        emit SellFeeUpdated(sellFee);
    }

    function setWalletToWalletTransferFee(uint256 _walletToWalletTransferFee) external onlyOwner {
        require(_walletToWalletTransferFee <= 9, "Wallet to Wallet Transfer Fee cannot be more than 9%");
        walletToWalletTransferFee = _walletToWalletTransferFee;
        emit WalletToWalletTransferFeeUpdated(walletToWalletTransferFee);
    }

    function changeMarketingWallet(address _marketingWallet) external onlyOwner {
        require(_marketingWallet != marketingWallet, "Marketing wallet is already that address");
        require(_marketingWallet != address(0), "Marketing wallet cannot be the zero address");
        marketingWallet = _marketingWallet;
        emit MarketingWalletChanged(marketingWallet);
    }
    
    function _transfer(address from,address to,uint256 amount) internal  override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            require(enableTrading, "Trading is not enabled");
        }

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

        if (!_isExcludedFromFees[from] && amount == balanceOf(from)) {
            amount -= 1;
        }       

		uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

        if (canSwap &&
            !swapping &&
            to == uniswapV2Pair
        ) {
            swapping = true;

            swap(contractTokenBalance);        

            swapping = false;
        }

        uint256 _totalFees;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) {
            _totalFees = 0;
        } else if (from == uniswapV2Pair) {
            _totalFees = buyFee;
        } else if (to == uniswapV2Pair) {
            _totalFees = sellFee;
        } else {
            _totalFees = walletToWalletTransferFee;
        }

        if (_totalFees > 0) {
            uint256 fees = (amount * _totalFees) / 100;
            amount = amount - fees;
            super._transfer(from, address(this), fees);
        }

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

    function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner{
        require(newAmount > totalSupply() / 1e6, "SwapTokensAtAmount must be greater than 0.0001% of total supply");
        swapTokensAtAmount = newAmount;
        emit SwapTokensAtAmountUpdated(swapTokensAtAmount);
    }

    function swap(uint256 tokenAmount) private {
        uint256 initialBalance = address(this).balance;

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);

        uint256 newBalance = address(this).balance - initialBalance;

        bool success = payable(marketingWallet).send(newBalance);
        if (success) {
            emit SwapAndSend(tokenAmount, newBalance);
        }
    }
}

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":false,"internalType":"uint256","name":"buyFee","type":"uint256"}],"name":"BuyFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingWallet","type":"address"}],"name":"MarketingWalletChanged","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":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"SellFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"valueReceived","type":"uint256"}],"name":"SwapAndSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"TradingEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"walletToWalletTransferFee","type":"uint256"}],"name":"WalletToWalletTransferFeeUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","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":"enableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_walletToWalletTransferFee","type":"uint256"}],"name":"setWalletToWalletTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"walletToWalletTransferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060400160405280600681526020017f554e4950414400000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f554e50000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000d24565b508060049081620000a1919062000d24565b5050506000620000b66200066460201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000731891211c0695a3f51785744efe8c76321183282490506200017f816200066c60201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d9050600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000211919062000e75565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029f919062000e75565b6040518363ffffffff1660e01b8152600401620002be92919062000eb8565b6020604051808303816000875af1158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000304919062000e75565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003dd30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200084060201b60201c565b6003600a819055506003600b819055506003600c8190555073bc927df095fa9f60341a46bad50cb2da61a901ac600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960006200046062000a1160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200057f6a52b7d2dcc80cd2e400000062000a3b60201b60201c565b620005af6200059362000a1160201b60201c565b620005a362000a4560201b60201c565b62000a4f60201b60201c565b620005bf62000a1160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200061e62000a4560201b60201c565b6040516200062d919062000ef6565b60405180910390a36113886200064862000a4560201b60201c565b62000654919062000f71565b600d81905550505050506200122f565b600033905090565b6200067c6200066460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200070e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000705906200100a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000780576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200077790620010a2565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620008b2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a9906200113a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000924576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200091b90620011d2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000a04919062000ef6565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8060028190555050565b6000600254905090565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000a9f9190620011f4565b925050819055505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b2c57607f821691505b60208210810362000b425762000b4162000ae4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b6d565b62000bb8868362000b6d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c0562000bff62000bf98462000bd0565b62000bda565b62000bd0565b9050919050565b6000819050919050565b62000c218362000be4565b62000c3962000c308262000c0c565b84845462000b7a565b825550505050565b600090565b62000c5062000c41565b62000c5d81848462000c16565b505050565b5b8181101562000c855762000c7960008262000c46565b60018101905062000c63565b5050565b601f82111562000cd45762000c9e8162000b48565b62000ca98462000b5d565b8101602085101562000cb9578190505b62000cd162000cc88562000b5d565b83018262000c62565b50505b505050565b600082821c905092915050565b600062000cf96000198460080262000cd9565b1980831691505092915050565b600062000d14838362000ce6565b9150826002028217905092915050565b62000d2f8262000aaa565b67ffffffffffffffff81111562000d4b5762000d4a62000ab5565b5b62000d57825462000b13565b62000d6482828562000c89565b600060209050601f83116001811462000d9c576000841562000d87578287015190505b62000d93858262000d06565b86555062000e03565b601f19841662000dac8662000b48565b60005b8281101562000dd65784890151825560018201915060208501945060208101905062000daf565b8683101562000df6578489015162000df2601f89168262000ce6565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e3d8262000e10565b9050919050565b62000e4f8162000e30565b811462000e5b57600080fd5b50565b60008151905062000e6f8162000e44565b92915050565b60006020828403121562000e8e5762000e8d62000e0b565b5b600062000e9e8482850162000e5e565b91505092915050565b62000eb28162000e30565b82525050565b600060408201905062000ecf600083018562000ea7565b62000ede602083018462000ea7565b9392505050565b62000ef08162000bd0565b82525050565b600060208201905062000f0d600083018462000ee5565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000f7e8262000bd0565b915062000f8b8362000bd0565b92508262000f9e5762000f9d62000f13565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000ff260208362000fa9565b915062000fff8262000fba565b602082019050919050565b60006020820190508181036000830152620010258162000fe3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006200108a60268362000fa9565b915062001097826200102c565b604082019050919050565b60006020820190508181036000830152620010bd816200107b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200112260248362000fa9565b91506200112f82620010c4565b604082019050919050565b60006020820190508181036000830152620011558162001113565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011ba60228362000fa9565b9150620011c7826200115c565b604082019050919050565b60006020820190508181036000830152620011ed81620011ab565b9050919050565b6000620012018262000bd0565b91506200120e8362000bd0565b925082820190508082111562001229576200122862000f42565b5b92915050565b613d28806200123f6000396000f3fe6080604052600436106101dc5760003560e01c8063715018a611610102578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e146106bb578063e2f45605146106f8578063f2fde38b14610723578063f9d0831a1461074c576101e3565b8063a9059cbb14610603578063afa4f3b214610640578063bb85c6d114610669578063c024666814610692576101e3565b80638da5cb5b116100d15780638da5cb5b1461054757806395d89b4114610572578063a457c2d71461059d578063a6f14f6c146105da576101e3565b8063715018a6146104b157806375f0a874146104c85780638a8c523c146104f35780638b4cee081461051e576101e3565b8063313ce5671161017a5780634fbee193116101495780634fbee193146103f557806364afd18b14610432578063702509fd1461044957806370a0823114610474576101e3565b8063313ce567146103375780633950935114610362578063470624021461039f57806349bd5a5e146103ca576101e3565b80631694505e116101b65780631694505e1461027957806318160ddd146102a457806323b872dd146102cf5780632b14ca561461030c576101e3565b806306fdde03146101e8578063095ea7b3146102135780630cc835a314610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610775565b60405161020a9190612a37565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612af2565b610807565b6040516102479190612b4d565b60405180910390f35b34801561025c57600080fd5b5061027760048036038101906102729190612b68565b610825565b005b34801561028557600080fd5b5061028e610943565b60405161029b9190612bf4565b60405180910390f35b3480156102b057600080fd5b506102b9610969565b6040516102c69190612c1e565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190612c39565b610973565b6040516103039190612b4d565b60405180910390f35b34801561031857600080fd5b50610321610a92565b60405161032e9190612c1e565b60405180910390f35b34801561034357600080fd5b5061034c610a98565b6040516103599190612ca8565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190612af2565b610aa1565b6040516103969190612b4d565b60405180910390f35b3480156103ab57600080fd5b506103b4610b4d565b6040516103c19190612c1e565b60405180910390f35b3480156103d657600080fd5b506103df610b53565b6040516103ec9190612cd2565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612ced565b610b79565b6040516104299190612b4d565b60405180910390f35b34801561043e57600080fd5b50610447610bcf565b005b34801561045557600080fd5b5061045e610d11565b60405161046b9190612c1e565b60405180910390f35b34801561048057600080fd5b5061049b60048036038101906104969190612ced565b610d17565b6040516104a89190612c1e565b60405180910390f35b3480156104bd57600080fd5b506104c6610d5f565b005b3480156104d457600080fd5b506104dd610eb7565b6040516104ea9190612cd2565b60405180910390f35b3480156104ff57600080fd5b50610508610edd565b6040516105159190612b4d565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190612b68565b610ef0565b005b34801561055357600080fd5b5061055c61100e565b6040516105699190612cd2565b60405180910390f35b34801561057e57600080fd5b50610587611038565b6040516105949190612a37565b60405180910390f35b3480156105a957600080fd5b506105c460048036038101906105bf9190612af2565b6110ca565b6040516105d19190612b4d565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190612b68565b6111b5565b005b34801561060f57600080fd5b5061062a60048036038101906106259190612af2565b6112d3565b6040516106379190612b4d565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190612b68565b6112f1565b005b34801561067557600080fd5b50610690600480360381019061068b9190612ced565b611422565b005b34801561069e57600080fd5b506106b960048036038101906106b49190612d46565b611655565b005b3480156106c757600080fd5b506106e260048036038101906106dd9190612d86565b611827565b6040516106ef9190612c1e565b60405180910390f35b34801561070457600080fd5b5061070d6118ae565b60405161071a9190612c1e565b60405180910390f35b34801561072f57600080fd5b5061074a60048036038101906107459190612ced565b6118b4565b005b34801561075857600080fd5b50610773600480360381019061076e9190612ced565b611a7a565b005b60606003805461078490612df5565b80601f01602080910402602001604051908101604052809291908181526020018280546107b090612df5565b80156107fd5780601f106107d2576101008083540402835291602001916107fd565b820191906000526020600020905b8154815290600101906020018083116107e057829003601f168201915b5050505050905090565b600061081b610814611d6d565b8484611d75565b6001905092915050565b61082d611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b390612e72565b60405180910390fd5b6009811115610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f790612ede565b60405180910390fd5b80600a819055507f7c1445c98b278c9970d007fca6048704bcb25af7cc4a04eb56565d9a9f149ca3600a546040516109389190612c1e565b60405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109bf611d6d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a7b5782811015610a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5d90612f70565b60405180910390fd5b610a7a85610a72611d6d565b858403611d75565b5b610a86858585611f3e565b60019150509392505050565b600b5481565b60006012905090565b6000610b43610aae611d6d565b848460016000610abc611d6d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3e9190612fbf565b611d75565b6001905092915050565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610bd7611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90612e72565b60405180910390fd5b60001515600e60019054906101000a900460ff16151514610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb39061303f565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055507fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a6001604051610d079190612b4d565b60405180910390a1565b600c5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d67611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded90612e72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b610ef8611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e90612e72565b60405180910390fd5b6009811115610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc2906130ab565b60405180910390fd5b80600b819055507f495ee53ee22006979ebc689a00ed737d7c13b6419142f82dcaea4ed95ac1e780600b546040516110039190612c1e565b60405180910390a150565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461104790612df5565b80601f016020809104026020016040519081016040528092919081815260200182805461107390612df5565b80156110c05780601f10611095576101008083540402835291602001916110c0565b820191906000526020600020905b8154815290600101906020018083116110a357829003601f168201915b5050505050905090565b600080600160006110d9611d6d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d9061313d565b60405180910390fd5b6111aa6111a1611d6d565b85858403611d75565b600191505092915050565b6111bd611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124390612e72565b60405180910390fd5b6009811115611290576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611287906131cf565b60405180910390fd5b80600c819055507f55a18e0066d4ca4f044c3c7bff35c003f6b02ad8a7c71b6d33ae71d262833251600c546040516112c89190612c1e565b60405180910390a150565b60006112e76112e0611d6d565b8484611f3e565b6001905092915050565b6112f9611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90612e72565b60405180910390fd5b620f4240611394610969565b61139e919061321e565b81116113df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d6906132c1565b60405180910390fd5b80600d819055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145600d546040516114179190612c1e565b60405180910390a150565b61142a611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090612e72565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154090613353565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906133e5565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161164a9190612cd2565b60405180910390a150565b61165d611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e390612e72565b60405180910390fd5b801515600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590613477565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161181b9190612b4d565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b6118bc611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194290612e72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190613509565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a82611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0890612e72565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b769061359b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c655760003373ffffffffffffffffffffffffffffffffffffffff1647604051611bd9906135ec565b60006040518083038185875af1925050503d8060008114611c16576040519150601f19603f3d011682016040523d82523d6000602084013e611c1b565b606091505b5050905080611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c569061364d565b60405180910390fd5b50611d6a565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611ca59190612cd2565b602060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce69190613682565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611d239291906136af565b6020604051808303816000875af1158015611d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6691906136ed565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddb9061378c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a9061381e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f319190612c1e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa4906138b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361201c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201390613942565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120c05750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561211557600e60019054906101000a900460ff16612114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210b906139ae565b60405180910390fd5b5b6000810361212e5761212983836000612455565b612450565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561218f575061218c83610d17565b81145b156121a4576001816121a191906139ce565b90505b60006121af30610d17565b90506000600d5482101590508080156121d55750600e60009054906101000a900460ff16155b801561222e5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15612273576001600e60006101000a81548160ff021916908315150217905550612257826126d4565b6000600e60006101000a81548160ff0219169083151502179055505b6000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123165750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061232d5750600e60009054906101000a900460ff165b1561233b5760009050612401565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361239a57600a549050612400565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036123f957600b5490506123ff565b600c5490505b5b5b60008111156124415760006064828661241a9190613a02565b612424919061321e565b9050808561243291906139ce565b945061243f873083612455565b505b61244c868686612455565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bb906138b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a90613942565b60405180910390fd5b61253e83838361299d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156125c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bb90613ab6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126579190612fbf565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126bb9190612c1e565b60405180910390a36126ce8484846129a2565b50505050565b60004790506000600267ffffffffffffffff8111156126f6576126f5613ad6565b5b6040519080825280602002602001820160405280156127245781602001602082028036833780820191505090505b509050308160008151811061273c5761273b613b05565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128079190613b49565b8160018151811061281b5761281a613b05565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016128b9959493929190613c6f565b600060405180830381600087803b1580156128d357600080fd5b505af11580156128e7573d6000803e3d6000fd5b50505050600082476128f991906139ce565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505090508015612996577f1309193d68e1a43bd32da5f04e07935cc194c20b2bd1813be5c6898b99dac4be858360405161298d929190613cc9565b60405180910390a15b5050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129e15780820151818401526020810190506129c6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a09826129a7565b612a1381856129b2565b9350612a238185602086016129c3565b612a2c816129ed565b840191505092915050565b60006020820190508181036000830152612a5181846129fe565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a8982612a5e565b9050919050565b612a9981612a7e565b8114612aa457600080fd5b50565b600081359050612ab681612a90565b92915050565b6000819050919050565b612acf81612abc565b8114612ada57600080fd5b50565b600081359050612aec81612ac6565b92915050565b60008060408385031215612b0957612b08612a59565b5b6000612b1785828601612aa7565b9250506020612b2885828601612add565b9150509250929050565b60008115159050919050565b612b4781612b32565b82525050565b6000602082019050612b626000830184612b3e565b92915050565b600060208284031215612b7e57612b7d612a59565b5b6000612b8c84828501612add565b91505092915050565b6000819050919050565b6000612bba612bb5612bb084612a5e565b612b95565b612a5e565b9050919050565b6000612bcc82612b9f565b9050919050565b6000612bde82612bc1565b9050919050565b612bee81612bd3565b82525050565b6000602082019050612c096000830184612be5565b92915050565b612c1881612abc565b82525050565b6000602082019050612c336000830184612c0f565b92915050565b600080600060608486031215612c5257612c51612a59565b5b6000612c6086828701612aa7565b9350506020612c7186828701612aa7565b9250506040612c8286828701612add565b9150509250925092565b600060ff82169050919050565b612ca281612c8c565b82525050565b6000602082019050612cbd6000830184612c99565b92915050565b612ccc81612a7e565b82525050565b6000602082019050612ce76000830184612cc3565b92915050565b600060208284031215612d0357612d02612a59565b5b6000612d1184828501612aa7565b91505092915050565b612d2381612b32565b8114612d2e57600080fd5b50565b600081359050612d4081612d1a565b92915050565b60008060408385031215612d5d57612d5c612a59565b5b6000612d6b85828601612aa7565b9250506020612d7c85828601612d31565b9150509250929050565b60008060408385031215612d9d57612d9c612a59565b5b6000612dab85828601612aa7565b9250506020612dbc85828601612aa7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e0d57607f821691505b602082108103612e2057612e1f612dc6565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e5c6020836129b2565b9150612e6782612e26565b602082019050919050565b60006020820190508181036000830152612e8b81612e4f565b9050919050565b7f427579204665652063616e6e6f74206265206d6f7265207468616e2039250000600082015250565b6000612ec8601e836129b2565b9150612ed382612e92565b602082019050919050565b60006020820190508181036000830152612ef781612ebb565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612f5a6028836129b2565b9150612f6582612efe565b604082019050919050565b60006020820190508181036000830152612f8981612f4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fca82612abc565b9150612fd583612abc565b9250828201905080821115612fed57612fec612f90565b5b92915050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613029601a836129b2565b915061303482612ff3565b602082019050919050565b600060208201905081810360008301526130588161301c565b9050919050565b7f53656c6c204665652063616e6e6f74206265206d6f7265207468616e20392500600082015250565b6000613095601f836129b2565b91506130a08261305f565b602082019050919050565b600060208201905081810360008301526130c481613088565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131276025836129b2565b9150613132826130cb565b604082019050919050565b600060208201905081810360008301526131568161311a565b9050919050565b7f57616c6c657420746f2057616c6c6574205472616e736665722046656520636160008201527f6e6e6f74206265206d6f7265207468616e203925000000000000000000000000602082015250565b60006131b96034836129b2565b91506131c48261315d565b604082019050919050565b600060208201905081810360008301526131e8816131ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061322982612abc565b915061323483612abc565b925082613244576132436131ef565b5b828204905092915050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b60006132ab603f836129b2565b91506132b68261324f565b604082019050919050565b600060208201905081810360008301526132da8161329e565b9050919050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b600061333d6028836129b2565b9150613348826132e1565b604082019050919050565b6000602082019050818103600083015261336c81613330565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b60006133cf602b836129b2565b91506133da82613373565b604082019050919050565b600060208201905081810360008301526133fe816133c2565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000613461602a836129b2565b915061346c82613405565b604082019050919050565b6000602082019050818103600083015261349081613454565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006134f36026836129b2565b91506134fe82613497565b604082019050919050565b60006020820190508181036000830152613522816134e6565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160008201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000602082015250565b60006135856037836129b2565b915061359082613529565b604082019050919050565b600060208201905081810360008301526135b481613578565b9050919050565b600081905092915050565b50565b60006135d66000836135bb565b91506135e1826135c6565b600082019050919050565b60006135f7826135c9565b9150819050919050565b7f436c61696d206661696c65640000000000000000000000000000000000000000600082015250565b6000613637600c836129b2565b915061364282613601565b602082019050919050565b600060208201905081810360008301526136668161362a565b9050919050565b60008151905061367c81612ac6565b92915050565b60006020828403121561369857613697612a59565b5b60006136a68482850161366d565b91505092915050565b60006040820190506136c46000830185612cc3565b6136d16020830184612c0f565b9392505050565b6000815190506136e781612d1a565b92915050565b60006020828403121561370357613702612a59565b5b6000613711848285016136d8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137766024836129b2565b91506137818261371a565b604082019050919050565b600060208201905081810360008301526137a581613769565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138086022836129b2565b9150613813826137ac565b604082019050919050565b60006020820190508181036000830152613837816137fb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061389a6025836129b2565b91506138a58261383e565b604082019050919050565b600060208201905081810360008301526138c98161388d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061392c6023836129b2565b9150613937826138d0565b604082019050919050565b6000602082019050818103600083015261395b8161391f565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b60006139986016836129b2565b91506139a382613962565b602082019050919050565b600060208201905081810360008301526139c78161398b565b9050919050565b60006139d982612abc565b91506139e483612abc565b92508282039050818111156139fc576139fb612f90565b5b92915050565b6000613a0d82612abc565b9150613a1883612abc565b9250828202613a2681612abc565b91508282048414831517613a3d57613a3c612f90565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613aa06026836129b2565b9150613aab82613a44565b604082019050919050565b60006020820190508181036000830152613acf81613a93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b4381612a90565b92915050565b600060208284031215613b5f57613b5e612a59565b5b6000613b6d84828501613b34565b91505092915050565b6000819050919050565b6000613b9b613b96613b9184613b76565b612b95565b612abc565b9050919050565b613bab81613b80565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613be681612a7e565b82525050565b6000613bf88383613bdd565b60208301905092915050565b6000602082019050919050565b6000613c1c82613bb1565b613c268185613bbc565b9350613c3183613bcd565b8060005b83811015613c62578151613c498882613bec565b9750613c5483613c04565b925050600181019050613c35565b5085935050505092915050565b600060a082019050613c846000830188612c0f565b613c916020830187613ba2565b8181036040830152613ca38186613c11565b9050613cb26060830185612cc3565b613cbf6080830184612c0f565b9695505050505050565b6000604082019050613cde6000830185612c0f565b613ceb6020830184612c0f565b939250505056fea2646970667358221220bb82f9218bfa494ba521837eb39815e1413c4113175a10a56a11b9e00d46eace64736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c8063715018a611610102578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e146106bb578063e2f45605146106f8578063f2fde38b14610723578063f9d0831a1461074c576101e3565b8063a9059cbb14610603578063afa4f3b214610640578063bb85c6d114610669578063c024666814610692576101e3565b80638da5cb5b116100d15780638da5cb5b1461054757806395d89b4114610572578063a457c2d71461059d578063a6f14f6c146105da576101e3565b8063715018a6146104b157806375f0a874146104c85780638a8c523c146104f35780638b4cee081461051e576101e3565b8063313ce5671161017a5780634fbee193116101495780634fbee193146103f557806364afd18b14610432578063702509fd1461044957806370a0823114610474576101e3565b8063313ce567146103375780633950935114610362578063470624021461039f57806349bd5a5e146103ca576101e3565b80631694505e116101b65780631694505e1461027957806318160ddd146102a457806323b872dd146102cf5780632b14ca561461030c576101e3565b806306fdde03146101e8578063095ea7b3146102135780630cc835a314610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610775565b60405161020a9190612a37565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612af2565b610807565b6040516102479190612b4d565b60405180910390f35b34801561025c57600080fd5b5061027760048036038101906102729190612b68565b610825565b005b34801561028557600080fd5b5061028e610943565b60405161029b9190612bf4565b60405180910390f35b3480156102b057600080fd5b506102b9610969565b6040516102c69190612c1e565b60405180910390f35b3480156102db57600080fd5b506102f660048036038101906102f19190612c39565b610973565b6040516103039190612b4d565b60405180910390f35b34801561031857600080fd5b50610321610a92565b60405161032e9190612c1e565b60405180910390f35b34801561034357600080fd5b5061034c610a98565b6040516103599190612ca8565b60405180910390f35b34801561036e57600080fd5b5061038960048036038101906103849190612af2565b610aa1565b6040516103969190612b4d565b60405180910390f35b3480156103ab57600080fd5b506103b4610b4d565b6040516103c19190612c1e565b60405180910390f35b3480156103d657600080fd5b506103df610b53565b6040516103ec9190612cd2565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612ced565b610b79565b6040516104299190612b4d565b60405180910390f35b34801561043e57600080fd5b50610447610bcf565b005b34801561045557600080fd5b5061045e610d11565b60405161046b9190612c1e565b60405180910390f35b34801561048057600080fd5b5061049b60048036038101906104969190612ced565b610d17565b6040516104a89190612c1e565b60405180910390f35b3480156104bd57600080fd5b506104c6610d5f565b005b3480156104d457600080fd5b506104dd610eb7565b6040516104ea9190612cd2565b60405180910390f35b3480156104ff57600080fd5b50610508610edd565b6040516105159190612b4d565b60405180910390f35b34801561052a57600080fd5b5061054560048036038101906105409190612b68565b610ef0565b005b34801561055357600080fd5b5061055c61100e565b6040516105699190612cd2565b60405180910390f35b34801561057e57600080fd5b50610587611038565b6040516105949190612a37565b60405180910390f35b3480156105a957600080fd5b506105c460048036038101906105bf9190612af2565b6110ca565b6040516105d19190612b4d565b60405180910390f35b3480156105e657600080fd5b5061060160048036038101906105fc9190612b68565b6111b5565b005b34801561060f57600080fd5b5061062a60048036038101906106259190612af2565b6112d3565b6040516106379190612b4d565b60405180910390f35b34801561064c57600080fd5b5061066760048036038101906106629190612b68565b6112f1565b005b34801561067557600080fd5b50610690600480360381019061068b9190612ced565b611422565b005b34801561069e57600080fd5b506106b960048036038101906106b49190612d46565b611655565b005b3480156106c757600080fd5b506106e260048036038101906106dd9190612d86565b611827565b6040516106ef9190612c1e565b60405180910390f35b34801561070457600080fd5b5061070d6118ae565b60405161071a9190612c1e565b60405180910390f35b34801561072f57600080fd5b5061074a60048036038101906107459190612ced565b6118b4565b005b34801561075857600080fd5b50610773600480360381019061076e9190612ced565b611a7a565b005b60606003805461078490612df5565b80601f01602080910402602001604051908101604052809291908181526020018280546107b090612df5565b80156107fd5780601f106107d2576101008083540402835291602001916107fd565b820191906000526020600020905b8154815290600101906020018083116107e057829003601f168201915b5050505050905090565b600061081b610814611d6d565b8484611d75565b6001905092915050565b61082d611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b390612e72565b60405180910390fd5b6009811115610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f790612ede565b60405180910390fd5b80600a819055507f7c1445c98b278c9970d007fca6048704bcb25af7cc4a04eb56565d9a9f149ca3600a546040516109389190612c1e565b60405180910390a150565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109bf611d6d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a7b5782811015610a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5d90612f70565b60405180910390fd5b610a7a85610a72611d6d565b858403611d75565b5b610a86858585611f3e565b60019150509392505050565b600b5481565b60006012905090565b6000610b43610aae611d6d565b848460016000610abc611d6d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3e9190612fbf565b611d75565b6001905092915050565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610bd7611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d90612e72565b60405180910390fd5b60001515600e60019054906101000a900460ff16151514610cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb39061303f565b60405180910390fd5b6001600e60016101000a81548160ff0219169083151502179055507fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a6001604051610d079190612b4d565b60405180910390a1565b600c5481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d67611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded90612e72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60019054906101000a900460ff1681565b610ef8611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e90612e72565b60405180910390fd5b6009811115610fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc2906130ab565b60405180910390fd5b80600b819055507f495ee53ee22006979ebc689a00ed737d7c13b6419142f82dcaea4ed95ac1e780600b546040516110039190612c1e565b60405180910390a150565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461104790612df5565b80601f016020809104026020016040519081016040528092919081815260200182805461107390612df5565b80156110c05780601f10611095576101008083540402835291602001916110c0565b820191906000526020600020905b8154815290600101906020018083116110a357829003601f168201915b5050505050905090565b600080600160006110d9611d6d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d9061313d565b60405180910390fd5b6111aa6111a1611d6d565b85858403611d75565b600191505092915050565b6111bd611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124390612e72565b60405180910390fd5b6009811115611290576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611287906131cf565b60405180910390fd5b80600c819055507f55a18e0066d4ca4f044c3c7bff35c003f6b02ad8a7c71b6d33ae71d262833251600c546040516112c89190612c1e565b60405180910390a150565b60006112e76112e0611d6d565b8484611f3e565b6001905092915050565b6112f9611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90612e72565b60405180910390fd5b620f4240611394610969565b61139e919061321e565b81116113df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d6906132c1565b60405180910390fd5b80600d819055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b145600d546040516114179190612c1e565b60405180910390a150565b61142a611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090612e72565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154090613353565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af906133e5565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660405161164a9190612cd2565b60405180910390a150565b61165d611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e390612e72565b60405180910390fd5b801515600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590613477565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161181b9190612b4d565b60405180910390a25050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600d5481565b6118bc611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461194b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194290612e72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b190613509565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a82611d6d565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0890612e72565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b769061359b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c655760003373ffffffffffffffffffffffffffffffffffffffff1647604051611bd9906135ec565b60006040518083038185875af1925050503d8060008114611c16576040519150601f19603f3d011682016040523d82523d6000602084013e611c1b565b606091505b5050905080611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c569061364d565b60405180910390fd5b50611d6a565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611ca59190612cd2565b602060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce69190613682565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611d239291906136af565b6020604051808303816000875af1158015611d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6691906136ed565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddb9061378c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4a9061381e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f319190612c1e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa4906138b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361201c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201390613942565b60405180910390fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120c05750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561211557600e60019054906101000a900460ff16612114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210b906139ae565b60405180910390fd5b5b6000810361212e5761212983836000612455565b612450565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561218f575061218c83610d17565b81145b156121a4576001816121a191906139ce565b90505b60006121af30610d17565b90506000600d5482101590508080156121d55750600e60009054906101000a900460ff16155b801561222e5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15612273576001600e60006101000a81548160ff021916908315150217905550612257826126d4565b6000600e60006101000a81548160ff0219169083151502179055505b6000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806123165750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061232d5750600e60009054906101000a900460ff165b1561233b5760009050612401565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361239a57600a549050612400565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036123f957600b5490506123ff565b600c5490505b5b5b60008111156124415760006064828661241a9190613a02565b612424919061321e565b9050808561243291906139ce565b945061243f873083612455565b505b61244c868686612455565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bb906138b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252a90613942565b60405180910390fd5b61253e83838361299d565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156125c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bb90613ab6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126579190612fbf565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516126bb9190612c1e565b60405180910390a36126ce8484846129a2565b50505050565b60004790506000600267ffffffffffffffff8111156126f6576126f5613ad6565b5b6040519080825280602002602001820160405280156127245781602001602082028036833780820191505090505b509050308160008151811061273c5761273b613b05565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128079190613b49565b8160018151811061281b5761281a613b05565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016128b9959493929190613c6f565b600060405180830381600087803b1580156128d357600080fd5b505af11580156128e7573d6000803e3d6000fd5b50505050600082476128f991906139ce565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505090508015612996577f1309193d68e1a43bd32da5f04e07935cc194c20b2bd1813be5c6898b99dac4be858360405161298d929190613cc9565b60405180910390a15b5050505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129e15780820151818401526020810190506129c6565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a09826129a7565b612a1381856129b2565b9350612a238185602086016129c3565b612a2c816129ed565b840191505092915050565b60006020820190508181036000830152612a5181846129fe565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a8982612a5e565b9050919050565b612a9981612a7e565b8114612aa457600080fd5b50565b600081359050612ab681612a90565b92915050565b6000819050919050565b612acf81612abc565b8114612ada57600080fd5b50565b600081359050612aec81612ac6565b92915050565b60008060408385031215612b0957612b08612a59565b5b6000612b1785828601612aa7565b9250506020612b2885828601612add565b9150509250929050565b60008115159050919050565b612b4781612b32565b82525050565b6000602082019050612b626000830184612b3e565b92915050565b600060208284031215612b7e57612b7d612a59565b5b6000612b8c84828501612add565b91505092915050565b6000819050919050565b6000612bba612bb5612bb084612a5e565b612b95565b612a5e565b9050919050565b6000612bcc82612b9f565b9050919050565b6000612bde82612bc1565b9050919050565b612bee81612bd3565b82525050565b6000602082019050612c096000830184612be5565b92915050565b612c1881612abc565b82525050565b6000602082019050612c336000830184612c0f565b92915050565b600080600060608486031215612c5257612c51612a59565b5b6000612c6086828701612aa7565b9350506020612c7186828701612aa7565b9250506040612c8286828701612add565b9150509250925092565b600060ff82169050919050565b612ca281612c8c565b82525050565b6000602082019050612cbd6000830184612c99565b92915050565b612ccc81612a7e565b82525050565b6000602082019050612ce76000830184612cc3565b92915050565b600060208284031215612d0357612d02612a59565b5b6000612d1184828501612aa7565b91505092915050565b612d2381612b32565b8114612d2e57600080fd5b50565b600081359050612d4081612d1a565b92915050565b60008060408385031215612d5d57612d5c612a59565b5b6000612d6b85828601612aa7565b9250506020612d7c85828601612d31565b9150509250929050565b60008060408385031215612d9d57612d9c612a59565b5b6000612dab85828601612aa7565b9250506020612dbc85828601612aa7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e0d57607f821691505b602082108103612e2057612e1f612dc6565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612e5c6020836129b2565b9150612e6782612e26565b602082019050919050565b60006020820190508181036000830152612e8b81612e4f565b9050919050565b7f427579204665652063616e6e6f74206265206d6f7265207468616e2039250000600082015250565b6000612ec8601e836129b2565b9150612ed382612e92565b602082019050919050565b60006020820190508181036000830152612ef781612ebb565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612f5a6028836129b2565b9150612f6582612efe565b604082019050919050565b60006020820190508181036000830152612f8981612f4d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612fca82612abc565b9150612fd583612abc565b9250828201905080821115612fed57612fec612f90565b5b92915050565b7f54726164696e6720697320616c726561647920656e61626c6564000000000000600082015250565b6000613029601a836129b2565b915061303482612ff3565b602082019050919050565b600060208201905081810360008301526130588161301c565b9050919050565b7f53656c6c204665652063616e6e6f74206265206d6f7265207468616e20392500600082015250565b6000613095601f836129b2565b91506130a08261305f565b602082019050919050565b600060208201905081810360008301526130c481613088565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131276025836129b2565b9150613132826130cb565b604082019050919050565b600060208201905081810360008301526131568161311a565b9050919050565b7f57616c6c657420746f2057616c6c6574205472616e736665722046656520636160008201527f6e6e6f74206265206d6f7265207468616e203925000000000000000000000000602082015250565b60006131b96034836129b2565b91506131c48261315d565b604082019050919050565b600060208201905081810360008301526131e8816131ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061322982612abc565b915061323483612abc565b925082613244576132436131ef565b5b828204905092915050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b60006132ab603f836129b2565b91506132b68261324f565b604082019050919050565b600060208201905081810360008301526132da8161329e565b9050919050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b600061333d6028836129b2565b9150613348826132e1565b604082019050919050565b6000602082019050818103600083015261336c81613330565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b60006133cf602b836129b2565b91506133da82613373565b604082019050919050565b600060208201905081810360008301526133fe816133c2565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000613461602a836129b2565b915061346c82613405565b604082019050919050565b6000602082019050818103600083015261349081613454565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006134f36026836129b2565b91506134fe82613497565b604082019050919050565b60006020820190508181036000830152613522816134e6565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160008201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000602082015250565b60006135856037836129b2565b915061359082613529565b604082019050919050565b600060208201905081810360008301526135b481613578565b9050919050565b600081905092915050565b50565b60006135d66000836135bb565b91506135e1826135c6565b600082019050919050565b60006135f7826135c9565b9150819050919050565b7f436c61696d206661696c65640000000000000000000000000000000000000000600082015250565b6000613637600c836129b2565b915061364282613601565b602082019050919050565b600060208201905081810360008301526136668161362a565b9050919050565b60008151905061367c81612ac6565b92915050565b60006020828403121561369857613697612a59565b5b60006136a68482850161366d565b91505092915050565b60006040820190506136c46000830185612cc3565b6136d16020830184612c0f565b9392505050565b6000815190506136e781612d1a565b92915050565b60006020828403121561370357613702612a59565b5b6000613711848285016136d8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006137766024836129b2565b91506137818261371a565b604082019050919050565b600060208201905081810360008301526137a581613769565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138086022836129b2565b9150613813826137ac565b604082019050919050565b60006020820190508181036000830152613837816137fb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061389a6025836129b2565b91506138a58261383e565b604082019050919050565b600060208201905081810360008301526138c98161388d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061392c6023836129b2565b9150613937826138d0565b604082019050919050565b6000602082019050818103600083015261395b8161391f565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b60006139986016836129b2565b91506139a382613962565b602082019050919050565b600060208201905081810360008301526139c78161398b565b9050919050565b60006139d982612abc565b91506139e483612abc565b92508282039050818111156139fc576139fb612f90565b5b92915050565b6000613a0d82612abc565b9150613a1883612abc565b9250828202613a2681612abc565b91508282048414831517613a3d57613a3c612f90565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613aa06026836129b2565b9150613aab82613a44565b604082019050919050565b60006020820190508181036000830152613acf81613a93565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613b4381612a90565b92915050565b600060208284031215613b5f57613b5e612a59565b5b6000613b6d84828501613b34565b91505092915050565b6000819050919050565b6000613b9b613b96613b9184613b76565b612b95565b612abc565b9050919050565b613bab81613b80565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613be681612a7e565b82525050565b6000613bf88383613bdd565b60208301905092915050565b6000602082019050919050565b6000613c1c82613bb1565b613c268185613bbc565b9350613c3183613bcd565b8060005b83811015613c62578151613c498882613bec565b9750613c5483613c04565b925050600181019050613c35565b5085935050505092915050565b600060a082019050613c846000830188612c0f565b613c916020830187613ba2565b8181036040830152613ca38186613c11565b9050613cb26060830185612cc3565b613cbf6080830184612c0f565b9695505050505050565b6000604082019050613cde6000830185612c0f565b613ceb6020830184612c0f565b939250505056fea2646970667358221220bb82f9218bfa494ba521837eb39815e1413c4113175a10a56a11b9e00d46eace64736f6c63430008140033

Deployed Bytecode Sourcemap

14520:7010:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10579:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11493:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17803:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14561:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10900:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11670:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14774:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10799:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12251:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14746:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14609:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17670:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16636:191;;;;;;;;;;;;;:::i;:::-;;14803:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11016:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9762:148;;;;;;;;;;;;;:::i;:::-;;14645:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14924:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18004:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9548:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10687:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12474:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18213:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11151:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20554:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18569:380;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17372:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11334:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14852:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9918:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16837:527;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10579:100;10633:13;10666:5;10659:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10579:100;:::o;11493:169::-;11576:4;11593:39;11602:12;:10;:12::i;:::-;11616:7;11625:6;11593:8;:39::i;:::-;11650:4;11643:11;;11493:169;;;;:::o;17803:193::-;9685:12;:10;:12::i;:::-;9675:22;;:6;;;;;;;;;;;:22;;;9667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17888:1:::1;17877:7;:12;;17869:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;17944:7;17935:6;:16;;;;17967:21;17981:6;;17967:21;;;;;;:::i;:::-;;;;;;;;17803:193:::0;:::o;14561:41::-;;;;;;;;;;;;;:::o;10900:108::-;10961:7;10988:12;;10981:19;;10900:108;:::o;11670:573::-;11810:4;11827:24;11854:11;:19;11866:6;11854:19;;;;;;;;;;;;;;;:33;11874:12;:10;:12::i;:::-;11854:33;;;;;;;;;;;;;;;;11827:60;;11922:17;11902:16;:37;11898:265;;11984:6;11964:16;:26;;11956:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12079:57;12088:6;12096:12;:10;:12::i;:::-;12129:6;12110:16;:25;12079:8;:57::i;:::-;11898:265;12175:36;12185:6;12193:9;12204:6;12175:9;:36::i;:::-;12231:4;12224:11;;;11670:573;;;;;:::o;14774:22::-;;;;:::o;10799:93::-;10857:5;10882:2;10875:9;;10799:93;:::o;12251:215::-;12339:4;12356:80;12365:12;:10;:12::i;:::-;12379:7;12425:10;12388:11;:25;12400:12;:10;:12::i;:::-;12388:25;;;;;;;;;;;;;;;:34;12414:7;12388:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12356:8;:80::i;:::-;12454:4;12447:11;;12251:215;;;;:::o;14746:21::-;;;;:::o;14609:29::-;;;;;;;;;;;;;:::o;17670:125::-;17735:4;17759:19;:28;17779:7;17759:28;;;;;;;;;;;;;;;;;;;;;;;;;17752:35;;17670:125;;;:::o;16636:191::-;9685:12;:10;:12::i;:::-;9675:22;;:6;;;;;;;;;;;:22;;;9667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16716:5:::1;16699:22;;:13;;;;;;;;;;;:22;;;16691:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16779:4;16763:13;;:20;;;;;;;;;;;;;;;;;;16799;16814:4;16799:20;;;;;;:::i;:::-;;;;;;;;16636:191::o:0;14803:40::-;;;;:::o;11016:127::-;11090:7;11117:9;:18;11127:7;11117:18;;;;;;;;;;;;;;;;11110:25;;11016:127;;;:::o;9762:148::-;9685:12;:10;:12::i;:::-;9675:22;;:6;;;;;;;;;;;:22;;;9667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9869:1:::1;9832:40;;9853:6;;;;;;;;;;;9832:40;;;;;;;;;;;;9900:1;9883:6;;:19;;;;;;;;;;;;;;;;;;9762:148::o:0;14645:30::-;;;;;;;;;;;;;:::o;14924:29::-;;;;;;;;;;;;;:::o;18004:201::-;9685:12;:10;:12::i;:::-;9675:22;;:6;;;;;;;;;;;:22;;;9667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18092:1:::1;18080:8;:13;;18072:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;18150:8;18140:7;:18;;;;18174:23;18189:7;;18174:23;;;;;;:::i;:::-;;;;;;;;18004:201:::0;:::o;9548:79::-;9586:7;9613:6;;;;;;;;;;;9606:13;;9548:79;:::o;10687:104::-;10743:13;10776:7;10769:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10687:104;:::o;12474:413::-;12567:4;12584:24;12611:11;:25;12623:12;:10;:12::i;:::-;12611:25;;;;;;;;;;;;;;;:34;12637:7;12611:34;;;;;;;;;;;;;;;;12584:61;;12684:15;12664:16;:35;;12656:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12777:67;12786:12;:10;:12::i;:::-;12800:7;12828:15;12809:16;:34;12777:8;:67::i;:::-;12875:4;12868:11;;;12474:413;;;;:::o;18213:348::-;9685:12;:10;:12::i;:::-;9675:22;;:6;;;;;;;;;;;:22;;;9667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18355:1:::1;18325:26;:31;;18317:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;18452:26;18424:25;:54;;;;18494:59;18527:25;;18494:59;;;;;;:::i;:::-;;;;;;;;18213:348:::0;:::o;11151:175::-;11237:4;11254:42;11264:12;:10;:12::i;:::-;11278:9;11289:6;11254:9;:42::i;:::-;11314:4;11307:11;;11151:175;;;;:::o;20554:296::-;9685:12;:10;:12::i;:::-;9675:22;;:6;;;;;;;;;;;:22;;;9667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20669:3:::1;20653:13;:11;:13::i;:::-;:19;;;;:::i;:::-;20641:9;:31;20633:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;20772:9;20751:18;:30;;;;20797:45;20823:18;;20797:45;;;;;;:::i;:::-;;;;;;;;20554:296:::0;:::o;18569:380::-;9685:12;:10;:12::i;:::-;9675:22;;:6;;;;;;;;;;;:22;;;9667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18684:15:::1;;;;;;;;;;;18664:35;;:16;:35;;::::0;18656:88:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18791:1;18763:30;;:16;:30;;::::0;18755:86:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18870:16;18852:15;;:34;;;;;;;;;;;;;;;;;;18902:39;18925:15;;;;;;;;;;;18902:39;;;;;;:::i;:::-;;;;;;;;18569:380:::0;:::o;17372:290::-;9685:12;:10;:12::i;:::-;9675:22;;:6;;;;;;;;;;;:22;;;9667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17498:8:::1;17466:40;;:19;:28;17486:7;17466:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;::::0;17458:94:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17594:8;17563:19;:28;17583:7;17563:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17636:7;17620:34;;;17645:8;17620:34;;;;;;:::i;:::-;;;;;;;;17372:290:::0;;:::o;11334:151::-;11423:7;11450:11;:18;11462:5;11450:18;;;;;;;;;;;;;;;:27;11469:7;11450:27;;;;;;;;;;;;;;;;11443:34;;11334:151;;;;:::o;14852:34::-;;;;:::o;9918:244::-;9685:12;:10;:12::i;:::-;9675:22;;:6;;;;;;;;;;;:22;;;9667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10027:1:::1;10007:22;;:8;:22;;::::0;9999:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10117:8;10088:38;;10109:6;;;;;;;;;;;10088:38;;;;;;;;;;;;10146:8;10137:6;;:17;;;;;;;;;;;;;;;;;;9918:244:::0;:::o;16837:527::-;9685:12;:10;:12::i;:::-;9675:22;;:6;;;;;;;;;;;:22;;;9667:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16933:4:::1;16916:22;;:5;:22;;::::0;16908:90:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17030:3;17013:21;;:5;:21;;::::0;17009:189:::1;;17052:12;17069:10;:15;;17092:21;17069:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17051:67;;;17141:7;17133:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;17180:7;;;17009:189;17208:17;17235:5;17208:33;;17252:15;17270:10;:20;;;17299:4;17270:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17252:53;;17316:10;:19;;;17336:10;17348:7;17316:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16897:467;;9745:1;16837:527:::0;:::o;8871:98::-;8924:7;8951:10;8944:17;;8871:98;:::o;13868:380::-;14021:1;14004:19;;:5;:19;;;13996:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14102:1;14083:21;;:7;:21;;;14075:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14186:6;14156:11;:18;14168:5;14156:18;;;;;;;;;;;;;;;:27;14175:7;14156:27;;;;;;;;;;;;;;;:36;;;;14224:7;14208:32;;14217:5;14208:32;;;14233:6;14208:32;;;;;;:::i;:::-;;;;;;;;13868:380;;;:::o;18961:1585::-;19074:1;19058:18;;:4;:18;;;19050:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19151:1;19137:16;;:2;:16;;;19129:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19210:19;:25;19230:4;19210:25;;;;;;;;;;;;;;;;;;;;;;;;;19209:26;:54;;;;;19240:19;:23;19260:2;19240:23;;;;;;;;;;;;;;;;;;;;;;;;;19239:24;19209:54;19206:134;;;19288:13;;;;;;;;;;;19280:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;19206:134;19366:1;19356:6;:11;19352:93;;19384:28;19400:4;19406:2;19410:1;19384:15;:28::i;:::-;19427:7;;19352:93;19462:19;:25;19482:4;19462:25;;;;;;;;;;;;;;;;;;;;;;;;;19461:26;:55;;;;;19501:15;19511:4;19501:9;:15::i;:::-;19491:6;:25;19461:55;19457:99;;;19543:1;19533:11;;;;;:::i;:::-;;;19457:99;19569:28;19600:24;19618:4;19600:9;:24::i;:::-;19569:55;;19637:12;19676:18;;19652:20;:42;;19637:57;;19711:7;:33;;;;;19736:8;;;;;;;;;;;19735:9;19711:33;:69;;;;;19767:13;;;;;;;;;;;19761:19;;:2;:19;;;19711:69;19707:211;;;19818:4;19807:8;;:15;;;;;;;;;;;;;;;;;;19839:26;19844:20;19839:4;:26::i;:::-;19901:5;19890:8;;:16;;;;;;;;;;;;;;;;;;19707:211;19930:18;19963:19;:25;19983:4;19963:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19992:19;:23;20012:2;19992:23;;;;;;;;;;;;;;;;;;;;;;;;;19963:52;:64;;;;20019:8;;;;;;;;;;;19963:64;19959:339;;;20057:1;20044:14;;19959:339;;;20088:13;;;;;;;;;;;20080:21;;:4;:21;;;20076:222;;20131:6;;20118:19;;20076:222;;;20165:13;;;;;;;;;;;20159:19;;:2;:19;;;20155:143;;20208:7;;20195:20;;20155:143;;;20261:25;;20248:38;;20155:143;20076:222;19959:339;20327:1;20314:10;:14;20310:183;;;20345:12;20384:3;20370:10;20361:6;:19;;;;:::i;:::-;20360:27;;;;:::i;:::-;20345:42;;20420:4;20411:6;:13;;;;:::i;:::-;20402:22;;20439:42;20455:4;20469;20476;20439:15;:42::i;:::-;20330:163;20310:183;20505:33;20521:4;20527:2;20531:6;20505:15;:33::i;:::-;19039:1507;;;18961:1585;;;;:::o;12895:733::-;13053:1;13035:20;;:6;:20;;;13027:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13137:1;13116:23;;:9;:23;;;13108:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13192:47;13213:6;13221:9;13232:6;13192:20;:47::i;:::-;13252:21;13276:9;:17;13286:6;13276:17;;;;;;;;;;;;;;;;13252:41;;13329:6;13312:13;:23;;13304:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;13450:6;13434:13;:22;13414:9;:17;13424:6;13414:17;;;;;;;;;;;;;;;:42;;;;13502:6;13478:9;:20;13488:9;13478:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;13543:9;13526:35;;13535:6;13526:35;;;13554:6;13526:35;;;;;;:::i;:::-;;;;;;;;13574:46;13594:6;13602:9;13613:6;13574:19;:46::i;:::-;13016:612;12895:733;;;:::o;20858:669::-;20912:22;20937:21;20912:46;;20971:21;21009:1;20995:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20971:40;;21040:4;21022;21027:1;21022:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21066:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21056:4;21061:1;21056:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;21101:15;;;;;;;;;;;:66;;;21182:11;21208:1;21224:4;21251;21271:15;21101:186;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21300:18;21345:14;21321:21;:38;;;;:::i;:::-;21300:59;;21372:12;21395:15;;;;;;;;;;;21387:29;;:41;21417:10;21387:41;;;;;;;;;;;;;;;;;;;;;;;21372:56;;21443:7;21439:81;;;21472:36;21484:11;21497:10;21472:36;;;;;;;:::i;:::-;;;;;;;;21439:81;20901:626;;;;20858:669;:::o;14256:125::-;;;;:::o;14389:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:86::-;5766:7;5806:4;5799:5;5795:16;5784:27;;5731:86;;;:::o;5823:112::-;5906:22;5922:5;5906:22;:::i;:::-;5901:3;5894:35;5823:112;;:::o;5941:214::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:67;6145:1;6134:9;6130:17;6121:6;6081:67;:::i;:::-;5941:214;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:329::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:474::-;7651:6;7659;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7834:1;7859:53;7904:7;7895:6;7884:9;7880:22;7859:53;:::i;:::-;7849:63;;7805:117;7961:2;7987:53;8032:7;8023:6;8012:9;8008:22;7987:53;:::i;:::-;7977:63;;7932:118;7583:474;;;;;:::o;8063:180::-;8111:77;8108:1;8101:88;8208:4;8205:1;8198:15;8232:4;8229:1;8222:15;8249:320;8293:6;8330:1;8324:4;8320:12;8310:22;;8377:1;8371:4;8367:12;8398:18;8388:81;;8454:4;8446:6;8442:17;8432:27;;8388:81;8516:2;8508:6;8505:14;8485:18;8482:38;8479:84;;8535:18;;:::i;:::-;8479:84;8300:269;8249:320;;;:::o;8575:182::-;8715:34;8711:1;8703:6;8699:14;8692:58;8575:182;:::o;8763:366::-;8905:3;8926:67;8990:2;8985:3;8926:67;:::i;:::-;8919:74;;9002:93;9091:3;9002:93;:::i;:::-;9120:2;9115:3;9111:12;9104:19;;8763:366;;;:::o;9135:419::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9388:9;9382:4;9378:20;9374:1;9363:9;9359:17;9352:47;9416:131;9542:4;9416:131;:::i;:::-;9408:139;;9135:419;;;:::o;9560:180::-;9700:32;9696:1;9688:6;9684:14;9677:56;9560:180;:::o;9746:366::-;9888:3;9909:67;9973:2;9968:3;9909:67;:::i;:::-;9902:74;;9985:93;10074:3;9985:93;:::i;:::-;10103:2;10098:3;10094:12;10087:19;;9746:366;;;:::o;10118:419::-;10284:4;10322:2;10311:9;10307:18;10299:26;;10371:9;10365:4;10361:20;10357:1;10346:9;10342:17;10335:47;10399:131;10525:4;10399:131;:::i;:::-;10391:139;;10118:419;;;:::o;10543:227::-;10683:34;10679:1;10671:6;10667:14;10660:58;10752:10;10747:2;10739:6;10735:15;10728:35;10543:227;:::o;10776:366::-;10918:3;10939:67;11003:2;10998:3;10939:67;:::i;:::-;10932:74;;11015:93;11104:3;11015:93;:::i;:::-;11133:2;11128:3;11124:12;11117:19;;10776:366;;;:::o;11148:419::-;11314:4;11352:2;11341:9;11337:18;11329:26;;11401:9;11395:4;11391:20;11387:1;11376:9;11372:17;11365:47;11429:131;11555:4;11429:131;:::i;:::-;11421:139;;11148:419;;;:::o;11573:180::-;11621:77;11618:1;11611:88;11718:4;11715:1;11708:15;11742:4;11739:1;11732:15;11759:191;11799:3;11818:20;11836:1;11818:20;:::i;:::-;11813:25;;11852:20;11870:1;11852:20;:::i;:::-;11847:25;;11895:1;11892;11888:9;11881:16;;11916:3;11913:1;11910:10;11907:36;;;11923:18;;:::i;:::-;11907:36;11759:191;;;;:::o;11956:176::-;12096:28;12092:1;12084:6;12080:14;12073:52;11956:176;:::o;12138:366::-;12280:3;12301:67;12365:2;12360:3;12301:67;:::i;:::-;12294:74;;12377:93;12466:3;12377:93;:::i;:::-;12495:2;12490:3;12486:12;12479:19;;12138:366;;;:::o;12510:419::-;12676:4;12714:2;12703:9;12699:18;12691:26;;12763:9;12757:4;12753:20;12749:1;12738:9;12734:17;12727:47;12791:131;12917:4;12791:131;:::i;:::-;12783:139;;12510:419;;;:::o;12935:181::-;13075:33;13071:1;13063:6;13059:14;13052:57;12935:181;:::o;13122:366::-;13264:3;13285:67;13349:2;13344:3;13285:67;:::i;:::-;13278:74;;13361:93;13450:3;13361:93;:::i;:::-;13479:2;13474:3;13470:12;13463:19;;13122:366;;;:::o;13494:419::-;13660:4;13698:2;13687:9;13683:18;13675:26;;13747:9;13741:4;13737:20;13733:1;13722:9;13718:17;13711:47;13775:131;13901:4;13775:131;:::i;:::-;13767:139;;13494:419;;;:::o;13919:224::-;14059:34;14055:1;14047:6;14043:14;14036:58;14128:7;14123:2;14115:6;14111:15;14104:32;13919:224;:::o;14149:366::-;14291:3;14312:67;14376:2;14371:3;14312:67;:::i;:::-;14305:74;;14388:93;14477:3;14388:93;:::i;:::-;14506:2;14501:3;14497:12;14490:19;;14149:366;;;:::o;14521:419::-;14687:4;14725:2;14714:9;14710:18;14702:26;;14774:9;14768:4;14764:20;14760:1;14749:9;14745:17;14738:47;14802:131;14928:4;14802:131;:::i;:::-;14794:139;;14521:419;;;:::o;14946:239::-;15086:34;15082:1;15074:6;15070:14;15063:58;15155:22;15150:2;15142:6;15138:15;15131:47;14946:239;:::o;15191:366::-;15333:3;15354:67;15418:2;15413:3;15354:67;:::i;:::-;15347:74;;15430:93;15519:3;15430:93;:::i;:::-;15548:2;15543:3;15539:12;15532:19;;15191:366;;;:::o;15563:419::-;15729:4;15767:2;15756:9;15752:18;15744:26;;15816:9;15810:4;15806:20;15802:1;15791:9;15787:17;15780:47;15844:131;15970:4;15844:131;:::i;:::-;15836:139;;15563:419;;;:::o;15988:180::-;16036:77;16033:1;16026:88;16133:4;16130:1;16123:15;16157:4;16154:1;16147:15;16174:185;16214:1;16231:20;16249:1;16231:20;:::i;:::-;16226:25;;16265:20;16283:1;16265:20;:::i;:::-;16260:25;;16304:1;16294:35;;16309:18;;:::i;:::-;16294:35;16351:1;16348;16344:9;16339:14;;16174:185;;;;:::o;16365:250::-;16505:34;16501:1;16493:6;16489:14;16482:58;16574:33;16569:2;16561:6;16557:15;16550:58;16365:250;:::o;16621:366::-;16763:3;16784:67;16848:2;16843:3;16784:67;:::i;:::-;16777:74;;16860:93;16949:3;16860:93;:::i;:::-;16978:2;16973:3;16969:12;16962:19;;16621:366;;;:::o;16993:419::-;17159:4;17197:2;17186:9;17182:18;17174:26;;17246:9;17240:4;17236:20;17232:1;17221:9;17217:17;17210:47;17274:131;17400:4;17274:131;:::i;:::-;17266:139;;16993:419;;;:::o;17418:227::-;17558:34;17554:1;17546:6;17542:14;17535:58;17627:10;17622:2;17614:6;17610:15;17603:35;17418:227;:::o;17651:366::-;17793:3;17814:67;17878:2;17873:3;17814:67;:::i;:::-;17807:74;;17890:93;17979:3;17890:93;:::i;:::-;18008:2;18003:3;17999:12;17992:19;;17651:366;;;:::o;18023:419::-;18189:4;18227:2;18216:9;18212:18;18204:26;;18276:9;18270:4;18266:20;18262:1;18251:9;18247:17;18240:47;18304:131;18430:4;18304:131;:::i;:::-;18296:139;;18023:419;;;:::o;18448:230::-;18588:34;18584:1;18576:6;18572:14;18565:58;18657:13;18652:2;18644:6;18640:15;18633:38;18448:230;:::o;18684:366::-;18826:3;18847:67;18911:2;18906:3;18847:67;:::i;:::-;18840:74;;18923:93;19012:3;18923:93;:::i;:::-;19041:2;19036:3;19032:12;19025:19;;18684:366;;;:::o;19056:419::-;19222:4;19260:2;19249:9;19245:18;19237:26;;19309:9;19303:4;19299:20;19295:1;19284:9;19280:17;19273:47;19337:131;19463:4;19337:131;:::i;:::-;19329:139;;19056:419;;;:::o;19481:229::-;19621:34;19617:1;19609:6;19605:14;19598:58;19690:12;19685:2;19677:6;19673:15;19666:37;19481:229;:::o;19716:366::-;19858:3;19879:67;19943:2;19938:3;19879:67;:::i;:::-;19872:74;;19955:93;20044:3;19955:93;:::i;:::-;20073:2;20068:3;20064:12;20057:19;;19716:366;;;:::o;20088:419::-;20254:4;20292:2;20281:9;20277:18;20269:26;;20341:9;20335:4;20331:20;20327:1;20316:9;20312:17;20305:47;20369:131;20495:4;20369:131;:::i;:::-;20361:139;;20088:419;;;:::o;20513:225::-;20653:34;20649:1;20641:6;20637:14;20630:58;20722:8;20717:2;20709:6;20705:15;20698:33;20513:225;:::o;20744:366::-;20886:3;20907:67;20971:2;20966:3;20907:67;:::i;:::-;20900:74;;20983:93;21072:3;20983:93;:::i;:::-;21101:2;21096:3;21092:12;21085:19;;20744:366;;;:::o;21116:419::-;21282:4;21320:2;21309:9;21305:18;21297:26;;21369:9;21363:4;21359:20;21355:1;21344:9;21340:17;21333:47;21397:131;21523:4;21397:131;:::i;:::-;21389:139;;21116:419;;;:::o;21541:242::-;21681:34;21677:1;21669:6;21665:14;21658:58;21750:25;21745:2;21737:6;21733:15;21726:50;21541:242;:::o;21789:366::-;21931:3;21952:67;22016:2;22011:3;21952:67;:::i;:::-;21945:74;;22028:93;22117:3;22028:93;:::i;:::-;22146:2;22141:3;22137:12;22130:19;;21789:366;;;:::o;22161:419::-;22327:4;22365:2;22354:9;22350:18;22342:26;;22414:9;22408:4;22404:20;22400:1;22389:9;22385:17;22378:47;22442:131;22568:4;22442:131;:::i;:::-;22434:139;;22161:419;;;:::o;22586:147::-;22687:11;22724:3;22709:18;;22586:147;;;;:::o;22739:114::-;;:::o;22859:398::-;23018:3;23039:83;23120:1;23115:3;23039:83;:::i;:::-;23032:90;;23131:93;23220:3;23131:93;:::i;:::-;23249:1;23244:3;23240:11;23233:18;;22859:398;;;:::o;23263:379::-;23447:3;23469:147;23612:3;23469:147;:::i;:::-;23462:154;;23633:3;23626:10;;23263:379;;;:::o;23648:162::-;23788:14;23784:1;23776:6;23772:14;23765:38;23648:162;:::o;23816:366::-;23958:3;23979:67;24043:2;24038:3;23979:67;:::i;:::-;23972:74;;24055:93;24144:3;24055:93;:::i;:::-;24173:2;24168:3;24164:12;24157:19;;23816:366;;;:::o;24188:419::-;24354:4;24392:2;24381:9;24377:18;24369:26;;24441:9;24435:4;24431:20;24427:1;24416:9;24412:17;24405:47;24469:131;24595:4;24469:131;:::i;:::-;24461:139;;24188:419;;;:::o;24613:143::-;24670:5;24701:6;24695:13;24686:22;;24717:33;24744:5;24717:33;:::i;:::-;24613:143;;;;:::o;24762:351::-;24832:6;24881:2;24869:9;24860:7;24856:23;24852:32;24849:119;;;24887:79;;:::i;:::-;24849:119;25007:1;25032:64;25088:7;25079:6;25068:9;25064:22;25032:64;:::i;:::-;25022:74;;24978:128;24762:351;;;;:::o;25119:332::-;25240:4;25278:2;25267:9;25263:18;25255:26;;25291:71;25359:1;25348:9;25344:17;25335:6;25291:71;:::i;:::-;25372:72;25440:2;25429:9;25425:18;25416:6;25372:72;:::i;:::-;25119:332;;;;;:::o;25457:137::-;25511:5;25542:6;25536:13;25527:22;;25558:30;25582:5;25558:30;:::i;:::-;25457:137;;;;:::o;25600:345::-;25667:6;25716:2;25704:9;25695:7;25691:23;25687:32;25684:119;;;25722:79;;:::i;:::-;25684:119;25842:1;25867:61;25920:7;25911:6;25900:9;25896:22;25867:61;:::i;:::-;25857:71;;25813:125;25600:345;;;;:::o;25951:223::-;26091:34;26087:1;26079:6;26075:14;26068:58;26160:6;26155:2;26147:6;26143:15;26136:31;25951:223;:::o;26180:366::-;26322:3;26343:67;26407:2;26402:3;26343:67;:::i;:::-;26336:74;;26419:93;26508:3;26419:93;:::i;:::-;26537:2;26532:3;26528:12;26521:19;;26180:366;;;:::o;26552:419::-;26718:4;26756:2;26745:9;26741:18;26733:26;;26805:9;26799:4;26795:20;26791:1;26780:9;26776:17;26769:47;26833:131;26959:4;26833:131;:::i;:::-;26825:139;;26552:419;;;:::o;26977:221::-;27117:34;27113:1;27105:6;27101:14;27094:58;27186:4;27181:2;27173:6;27169:15;27162:29;26977:221;:::o;27204:366::-;27346:3;27367:67;27431:2;27426:3;27367:67;:::i;:::-;27360:74;;27443:93;27532:3;27443:93;:::i;:::-;27561:2;27556:3;27552:12;27545:19;;27204:366;;;:::o;27576:419::-;27742:4;27780:2;27769:9;27765:18;27757:26;;27829:9;27823:4;27819:20;27815:1;27804:9;27800:17;27793:47;27857:131;27983:4;27857:131;:::i;:::-;27849:139;;27576:419;;;:::o;28001:224::-;28141:34;28137:1;28129:6;28125:14;28118:58;28210:7;28205:2;28197:6;28193:15;28186:32;28001:224;:::o;28231:366::-;28373:3;28394:67;28458:2;28453:3;28394:67;:::i;:::-;28387:74;;28470:93;28559:3;28470:93;:::i;:::-;28588:2;28583:3;28579:12;28572:19;;28231:366;;;:::o;28603:419::-;28769:4;28807:2;28796:9;28792:18;28784:26;;28856:9;28850:4;28846:20;28842:1;28831:9;28827:17;28820:47;28884:131;29010:4;28884:131;:::i;:::-;28876:139;;28603:419;;;:::o;29028:222::-;29168:34;29164:1;29156:6;29152:14;29145:58;29237:5;29232:2;29224:6;29220:15;29213:30;29028:222;:::o;29256:366::-;29398:3;29419:67;29483:2;29478:3;29419:67;:::i;:::-;29412:74;;29495:93;29584:3;29495:93;:::i;:::-;29613:2;29608:3;29604:12;29597:19;;29256:366;;;:::o;29628:419::-;29794:4;29832:2;29821:9;29817:18;29809:26;;29881:9;29875:4;29871:20;29867:1;29856:9;29852:17;29845:47;29909:131;30035:4;29909:131;:::i;:::-;29901:139;;29628:419;;;:::o;30053:172::-;30193:24;30189:1;30181:6;30177:14;30170:48;30053:172;:::o;30231:366::-;30373:3;30394:67;30458:2;30453:3;30394:67;:::i;:::-;30387:74;;30470:93;30559:3;30470:93;:::i;:::-;30588:2;30583:3;30579:12;30572:19;;30231:366;;;:::o;30603:419::-;30769:4;30807:2;30796:9;30792:18;30784:26;;30856:9;30850:4;30846:20;30842:1;30831:9;30827:17;30820:47;30884:131;31010:4;30884:131;:::i;:::-;30876:139;;30603:419;;;:::o;31028:194::-;31068:4;31088:20;31106:1;31088:20;:::i;:::-;31083:25;;31122:20;31140:1;31122:20;:::i;:::-;31117:25;;31166:1;31163;31159:9;31151:17;;31190:1;31184:4;31181:11;31178:37;;;31195:18;;:::i;:::-;31178:37;31028:194;;;;:::o;31228:410::-;31268:7;31291:20;31309:1;31291:20;:::i;:::-;31286:25;;31325:20;31343:1;31325:20;:::i;:::-;31320:25;;31380:1;31377;31373:9;31402:30;31420:11;31402:30;:::i;:::-;31391:41;;31581:1;31572:7;31568:15;31565:1;31562:22;31542:1;31535:9;31515:83;31492:139;;31611:18;;:::i;:::-;31492:139;31276:362;31228:410;;;;:::o;31644:225::-;31784:34;31780:1;31772:6;31768:14;31761:58;31853:8;31848:2;31840:6;31836:15;31829:33;31644:225;:::o;31875:366::-;32017:3;32038:67;32102:2;32097:3;32038:67;:::i;:::-;32031:74;;32114:93;32203:3;32114:93;:::i;:::-;32232:2;32227:3;32223:12;32216:19;;31875:366;;;:::o;32247:419::-;32413:4;32451:2;32440:9;32436:18;32428:26;;32500:9;32494:4;32490:20;32486:1;32475:9;32471:17;32464:47;32528:131;32654:4;32528:131;:::i;:::-;32520:139;;32247:419;;;:::o;32672:180::-;32720:77;32717:1;32710:88;32817:4;32814:1;32807:15;32841:4;32838:1;32831:15;32858:180;32906:77;32903:1;32896:88;33003:4;33000:1;32993:15;33027:4;33024:1;33017:15;33044:143;33101:5;33132:6;33126:13;33117:22;;33148:33;33175:5;33148:33;:::i;:::-;33044:143;;;;:::o;33193:351::-;33263:6;33312:2;33300:9;33291:7;33287:23;33283:32;33280:119;;;33318:79;;:::i;:::-;33280:119;33438:1;33463:64;33519:7;33510:6;33499:9;33495:22;33463:64;:::i;:::-;33453:74;;33409:128;33193:351;;;;:::o;33550:85::-;33595:7;33624:5;33613:16;;33550:85;;;:::o;33641:158::-;33699:9;33732:61;33750:42;33759:32;33785:5;33759:32;:::i;:::-;33750:42;:::i;:::-;33732:61;:::i;:::-;33719:74;;33641:158;;;:::o;33805:147::-;33900:45;33939:5;33900:45;:::i;:::-;33895:3;33888:58;33805:147;;:::o;33958:114::-;34025:6;34059:5;34053:12;34043:22;;33958:114;;;:::o;34078:184::-;34177:11;34211:6;34206:3;34199:19;34251:4;34246:3;34242:14;34227:29;;34078:184;;;;:::o;34268:132::-;34335:4;34358:3;34350:11;;34388:4;34383:3;34379:14;34371:22;;34268:132;;;:::o;34406:108::-;34483:24;34501:5;34483:24;:::i;:::-;34478:3;34471:37;34406:108;;:::o;34520:179::-;34589:10;34610:46;34652:3;34644:6;34610:46;:::i;:::-;34688:4;34683:3;34679:14;34665:28;;34520:179;;;;:::o;34705:113::-;34775:4;34807;34802:3;34798:14;34790:22;;34705:113;;;:::o;34854:732::-;34973:3;35002:54;35050:5;35002:54;:::i;:::-;35072:86;35151:6;35146:3;35072:86;:::i;:::-;35065:93;;35182:56;35232:5;35182:56;:::i;:::-;35261:7;35292:1;35277:284;35302:6;35299:1;35296:13;35277:284;;;35378:6;35372:13;35405:63;35464:3;35449:13;35405:63;:::i;:::-;35398:70;;35491:60;35544:6;35491:60;:::i;:::-;35481:70;;35337:224;35324:1;35321;35317:9;35312:14;;35277:284;;;35281:14;35577:3;35570:10;;34978:608;;;34854:732;;;;:::o;35592:831::-;35855:4;35893:3;35882:9;35878:19;35870:27;;35907:71;35975:1;35964:9;35960:17;35951:6;35907:71;:::i;:::-;35988:80;36064:2;36053:9;36049:18;36040:6;35988:80;:::i;:::-;36115:9;36109:4;36105:20;36100:2;36089:9;36085:18;36078:48;36143:108;36246:4;36237:6;36143:108;:::i;:::-;36135:116;;36261:72;36329:2;36318:9;36314:18;36305:6;36261:72;:::i;:::-;36343:73;36411:3;36400:9;36396:19;36387:6;36343:73;:::i;:::-;35592:831;;;;;;;;:::o;36429:332::-;36550:4;36588:2;36577:9;36573:18;36565:26;;36601:71;36669:1;36658:9;36654:17;36645:6;36601:71;:::i;:::-;36682:72;36750:2;36739:9;36735:18;36726:6;36682:72;:::i;:::-;36429:332;;;;;:::o

Swarm Source

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