ETH Price: $2,919.89 (-2.82%)
Gas: 1 Gwei

Token

Roaring Kitty (KITTY)
 

Overview

Max Total Supply

1,000,000,000 KITTY

Holders

42 (0.00%)

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$23,769.60

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000005087062245 KITTY

Value
$0.00 ( ~0 Eth) [0.0000%]
0xb9541b824a983a1dd80d1a3553a353006c89f6e9
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Roaring Kitty is the superhero of the trading world. Imagine this feline phenom hopping onto ETH, the mightiest blockchain, like its the coolest new cat tree.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
RoaringKitty

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-22
*/

/*

██╗░░██╗██╗████████╗████████╗██╗░░░██╗  ░█████╗░███╗░░██╗  ███████╗████████╗██╗░░██╗
██║░██╔╝██║╚══██╔══╝╚══██╔══╝╚██╗░██╔╝  ██╔══██╗████╗░██║  ██╔════╝╚══██╔══╝██║░░██║
█████═╝░██║░░░██║░░░░░░██║░░░░╚████╔╝░  ██║░░██║██╔██╗██║  █████╗░░░░░██║░░░███████║
██╔═██╗░██║░░░██║░░░░░░██║░░░░░╚██╔╝░░  ██║░░██║██║╚████║  ██╔══╝░░░░░██║░░░██╔══██║
██║░╚██╗██║░░░██║░░░░░░██║░░░░░░██║░░░  ╚█████╔╝██║░╚███║  ███████╗░░░██║░░░██║░░██║
╚═╝░░╚═╝╚═╝░░░╚═╝░░░░░░╚═╝░░░░░░╚═╝░░░  ░╚════╝░╚═╝░░╚══╝  ╚══════╝░░░╚═╝░░░╚═╝░░╚═╝

WEB: roaringkittyoneth.com
TG: t.me/RoaringKittyLFG
X: x.com/RoaringKittyLFG

*/

// SPDX-License-Identifier:MIT

pragma solidity ^0.8.10;

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

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address _account) external view returns (uint256);
    function transfer(address recipient, uint256 amount)
        external
        returns (bool);
    function allowance(address owner, address spender)
        external
        view
        returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

interface IDexSwapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDexSwapPair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

interface IDexSwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

}

contract RoaringKitty is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "Roaring Kitty";
    string private _symbol = "KITTY";
    uint8 private _decimals = 18; 

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public immutable zeroAddress = 0x0000000000000000000000000000000000000000;

    uint256 public _buyTaxFee = 0;
    uint256 public _sellTaxFee = 0;

    address public FeeWallet = address(0xA9802309ffCe76bD308Fe2E0BC117803F540926c);
    
    uint256 feedenominator = 100;


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

    mapping (address => bool) public isExcludedFromFee;
    mapping (address => bool) public isMarketPair;
    mapping (address => bool) public isWalletLimitExempt;
    mapping (address => bool) public isTxLimitExempt;

    uint256 private _totalSupply = 1_000_000_000 * 10**_decimals;

    uint256 public swapThreshold = _totalSupply.mul(5).div(10000);     //0.05%
    
    uint256 public _maxTxAmount =  _totalSupply.mul(10).div(1000);     // 1%
    uint256 public _walletMax = _totalSupply.mul(20).div(1000);        // 2%

    bool public swapEnabled = true;
    bool public swapbylimit = false;
    bool public EnableTxLimit = true;
    bool public checkWalletLimit = true;

    bool public activeTrade;

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

    modifier swapping() {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );

    constructor() {

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        dexPair = IDexSwapFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );

        dexRouter = _dexRouter;

        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(dexPair)] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;

        _allowances[address(this)][address(dexRouter)] = ~uint256(0);
        _allowances[address(this)][address(dexPair)] = ~uint256(0);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }

     //to recieve ETH from Router when swaping
    receive() external payable {}

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

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

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if(!activeTrade) {
            require(isExcludedFromFee[sender] || isExcludedFromFee[recipient],"Trading is not enable yet!");
        }
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapThreshold;

            if (overMinimumTokenBalance && !inSwap && !isMarketPair[sender] && swapEnabled) {
                swapBack(contractTokenBalance);
            }

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            } 
            
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

            uint256 finalAmount = shouldNotTakeFee(sender,recipient) ? amount : takeFee(sender, recipient, amount);

            if(checkWalletLimit && !isWalletLimitExempt[recipient]) {
                require(balanceOf(recipient).add(finalAmount) <= _walletMax,"Max Wallet Limit Exceeded!!");
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

            emit Transfer(sender, recipient, finalAmount);
            return true;

        }

    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function shouldNotTakeFee(address sender, address recipient) internal view returns (bool) {
        if(isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
            return true;
        }
        else if (isMarketPair[sender] || isMarketPair[recipient]) {
            return false;
        }
        else {
            return false;
        }
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint feeAmount;

        unchecked {

            if(isMarketPair[sender]) { 
                feeAmount = amount.mul(_buyTaxFee).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_sellTaxFee).div(feedenominator);
            }

            if(feeAmount > 0) {
                _balances[address(this)] = _balances[address(this)].add(feeAmount);
                emit Transfer(sender, address(this), feeAmount);
            }

            return amount.sub(feeAmount);
        }
        
    }

    function openTrade() external onlyOwner {
        require(!activeTrade,"Trade Already Active!");
        activeTrade = true;
        _buyTaxFee = 90;
        _sellTaxFee = 90;
    }

    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

        uint256 initialBalance = address(this).balance;
        swapTokensForEth(contractBalance);
        uint256 amountReceived = address(this).balance.sub(initialBalance);

        if(amountReceived > 0) payable(FeeWallet).transfer(amountReceived);

    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function rescueFunds() external onlyOwner { 
        (bool os,) = payable(msg.sender).call{value: address(this).balance}("");
        require(os,"Transaction Failed!!");
    }

    function rescueTokens(address _token,address recipient,uint _amount) external onlyOwner {
        (bool success, ) = address(_token).call(abi.encodeWithSignature('transfer(address,uint256)',  recipient, _amount));
        require(success, 'Token payment failed');
    }

    function setFee(uint _BuySide, uint _SellSide) external onlyOwner {    
        _buyTaxFee = _BuySide;
        _sellTaxFee = _SellSide;
    }

    function enableTxLimit(bool _status) external onlyOwner {
        EnableTxLimit = _status;
    }

    function enableWalletLimit(bool _status) external onlyOwner {
        checkWalletLimit = _status;
    }

    function excludeFromFee(address _adr,bool _status) external onlyOwner {
        isExcludedFromFee[_adr] = _status;
    }

    function excludeWalletLimit(address _adr,bool _status) external onlyOwner {
        isWalletLimitExempt[_adr] = _status;
    }

    function excludeTxLimit(address _adr,bool _status) external onlyOwner {
        isTxLimitExempt[_adr] = _status;
    }

    function setMaxWalletLimit(uint256 newLimit) external onlyOwner() {
        _walletMax = newLimit;
    }

    function setTxLimit(uint256 newLimit) external onlyOwner() {
        _maxTxAmount = newLimit;
    }

    function setFeeWallet(address _newWallet) external onlyOwner {
        FeeWallet = _newWallet;
    }

    function setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

    function setSwapBackSettings(bool _enabled, bool _limited)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
    }

    function setSwapthreshold(uint _threshold) external onlyOwner {
        swapThreshold = _threshold;
    }

    function setManualRouter(address _router) external onlyOwner {
        dexRouter = IDexSwapRouter(_router);
    }

    function setManualPair(address _pair) external onlyOwner {
        dexPair = _pair;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FeeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","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":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_BuySide","type":"uint256"},{"internalType":"uint256","name":"_SellSide","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWallet","type":"address"}],"name":"setFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setManualPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setManualRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapthreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapbylimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526040518060400160405280600d81526020017f526f6172696e67204b6974747900000000000000000000000000000000000000815250600190816200004a9190620010bd565b506040518060400160405280600581526020017f4b4954545900000000000000000000000000000000000000000000000000000081525060029081620000919190620010bd565b506012600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff16815250600073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152506000600455600060055573a9802309ffce76bd308fe2e0bc117803f540926c600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600755600360009054906101000a900460ff16600a62000199919062001334565b633b9aca00620001aa919062001385565b600e55620001db612710620001cc6005600e5462000c3a60201b90919060201c565b62000cbd60201b90919060201c565b600f556200020c6103e8620001fd600a600e5462000c3a60201b90919060201c565b62000cbd60201b90919060201c565b6010556200023d6103e86200022e6014600e5462000c3a60201b90919060201c565b62000cbd60201b90919060201c565b6011556001601260006101000a81548160ff0219169083151502179055506000601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506001601260036101000a81548160ff021916908315150217905550348015620002b957600080fd5b50620002da620002ce62000d0f60201b60201c565b62000d1760201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036591906200143a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f391906200143a565b6040518363ffffffff1660e01b8152600401620004129291906200147d565b6020604051808303816000875af115801562000432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045891906200143a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600019600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600e54600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405162000c2b9190620014bb565b60405180910390a3506200168a565b600080830362000c4e576000905062000cb7565b6000828462000c5e919062001385565b905082848262000c6f919062001507565b1462000cb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ca990620015c6565b60405180910390fd5b809150505b92915050565b600062000d0783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000ddb60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808311829062000e25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e1c919062001666565b60405180910390fd5b506000838562000e36919062001507565b9050809150509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ec557607f821691505b60208210810362000edb5762000eda62000e7d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000f457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f06565b62000f51868362000f06565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000f9e62000f9862000f928462000f69565b62000f73565b62000f69565b9050919050565b6000819050919050565b62000fba8362000f7d565b62000fd262000fc98262000fa5565b84845462000f13565b825550505050565b600090565b62000fe962000fda565b62000ff681848462000faf565b505050565b5b818110156200101e576200101260008262000fdf565b60018101905062000ffc565b5050565b601f8211156200106d57620010378162000ee1565b620010428462000ef6565b8101602085101562001052578190505b6200106a620010618562000ef6565b83018262000ffb565b50505b505050565b600082821c905092915050565b6000620010926000198460080262001072565b1980831691505092915050565b6000620010ad83836200107f565b9150826002028217905092915050565b620010c88262000e43565b67ffffffffffffffff811115620010e457620010e362000e4e565b5b620010f0825462000eac565b620010fd82828562001022565b600060209050601f83116001811462001135576000841562001120578287015190505b6200112c85826200109f565b8655506200119c565b601f198416620011458662000ee1565b60005b828110156200116f5784890151825560018201915060208501945060208101905062001148565b868310156200118f57848901516200118b601f8916826200107f565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562001232578086048111156200120a5762001209620011a4565b5b60018516156200121a5780820291505b80810290506200122a85620011d3565b9450620011ea565b94509492505050565b6000826200124d576001905062001320565b816200125d576000905062001320565b81600181146200127657600281146200128157620012b7565b600191505062001320565b60ff841115620012965762001295620011a4565b5b8360020a915084821115620012b057620012af620011a4565b5b5062001320565b5060208310610133831016604e8410600b8410161715620012f15782820a905083811115620012eb57620012ea620011a4565b5b62001320565b620013008484846001620011e0565b925090508184048111156200131a5762001319620011a4565b5b81810290505b9392505050565b600060ff82169050919050565b6000620013418262000f69565b91506200134e8362001327565b92506200137d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200123b565b905092915050565b6000620013928262000f69565b91506200139f8362000f69565b9250828202620013af8162000f69565b91508282048414831517620013c957620013c8620011a4565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200140282620013d5565b9050919050565b6200141481620013f5565b81146200142057600080fd5b50565b600081519050620014348162001409565b92915050565b600060208284031215620014535762001452620013d0565b5b6000620014638482850162001423565b91505092915050565b6200147781620013f5565b82525050565b60006040820190506200149460008301856200146c565b620014a360208301846200146c565b9392505050565b620014b58162000f69565b82525050565b6000602082019050620014d26000830184620014aa565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620015148262000f69565b9150620015218362000f69565b925082620015345762001533620014d8565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620015ae6021836200153f565b9150620015bb8262001550565b604082019050919050565b60006020820190508181036000830152620015e1816200159f565b9050919050565b60005b8381101562001608578082015181840152602081019050620015eb565b60008484015250505050565b6000601f19601f8301169050919050565b6000620016328262000e43565b6200163e81856200153f565b935062001650818560208601620015e8565b6200165b8162001614565b840191505092915050565b6000602082019050818103600083015262001682818462001625565b905092915050565b60805160a0516147f7620016be60003960008181610caf0152610e07015260008181610ddb0152610e3301526147f76000f3fe6080604052600436106102e85760003560e01c8063728d41c911610190578063cea9d26f116100dc578063ee828db311610095578063f2fde38b1161006f578063f2fde38b14610b5b578063f71b9bbf14610b84578063f872858a14610bad578063fb201b1d14610bd8576102ef565b8063ee828db314610adc578063efcc52de14610b05578063f242ab4114610b30576102ef565b8063cea9d26f146109e2578063d4e43fb314610a0b578063dd62ed3e14610a34578063df8408fe14610a71578063e6b2603b14610a9a578063e9fd339414610ab1576102ef565b806395d89b4111610149578063adc0d09211610123578063adc0d0921461092a578063ae85ade614610953578063c16dd4a41461097c578063c867d60b146109a5576102ef565b806395d89b4114610885578063a457c2d7146108b0578063a9059cbb146108ed576102ef565b8063728d41c9146107755780637d1db4a51461079e578063807c2d9c146107c95780638b42507f146107f45780638da5cb5b1461083157806390d49b9d1461085c576102ef565b8063395093511161024f5780635c85974f11610208578063651a8987116101e2578063651a8987146106cd5780636ddd1713146106f657806370a0823114610721578063715018a61461075e576102ef565b80635c85974f1461064e5780635ca6de3c146106775780635e42358c146106a2576102ef565b8063395093511461051c5780633ecad271146105595780634974d88f1461059657806352f7c988146105bf5780635342acb4146105e857806359fac51714610625576102ef565b8063200a692d116102a1578063200a692d1461040857806323b872dd1461043357806327c8f835146104705780632b112e491461049b5780632ebd161c146104c6578063313ce567146104f1576102ef565b80630445b667146102f457806306fdde031461031f5780630758d9241461034a5780630930907b14610375578063095ea7b3146103a057806318160ddd146103dd576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610bef565b60405161031691906136bf565b60405180910390f35b34801561032b57600080fd5b50610334610bf5565b604051610341919061376a565b60405180910390f35b34801561035657600080fd5b5061035f610c87565b60405161036c919061380b565b60405180910390f35b34801561038157600080fd5b5061038a610cad565b6040516103979190613847565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906138bf565b610cd1565b6040516103d4919061391a565b60405180910390f35b3480156103e957600080fd5b506103f2610cef565b6040516103ff91906136bf565b60405180910390f35b34801561041457600080fd5b5061041d610cf9565b60405161042a91906136bf565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613935565b610cff565b604051610467919061391a565b60405180910390f35b34801561047c57600080fd5b50610485610dd9565b6040516104929190613847565b60405180910390f35b3480156104a757600080fd5b506104b0610dfd565b6040516104bd91906136bf565b60405180910390f35b3480156104d257600080fd5b506104db610e7b565b6040516104e89190613847565b60405180910390f35b3480156104fd57600080fd5b50610506610ea1565b60405161051391906139a4565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e91906138bf565b610eb8565b604051610550919061391a565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b91906139bf565b610f6b565b60405161058d919061391a565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190613a18565b610f8b565b005b3480156105cb57600080fd5b506105e660048036038101906105e19190613a45565b611024565b005b3480156105f457600080fd5b5061060f600480360381019061060a91906139bf565b6110b2565b60405161061c919061391a565b60405180910390f35b34801561063157600080fd5b5061064c600480360381019061064791906139bf565b6110d2565b005b34801561065a57600080fd5b5061067560048036038101906106709190613a85565b611192565b005b34801561068357600080fd5b5061068c611218565b604051610699919061391a565b60405180910390f35b3480156106ae57600080fd5b506106b761122b565b6040516106c4919061391a565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef9190613ab2565b61123e565b005b34801561070257600080fd5b5061070b611315565b604051610718919061391a565b60405180910390f35b34801561072d57600080fd5b50610748600480360381019061074391906139bf565b611328565b60405161075591906136bf565b60405180910390f35b34801561076a57600080fd5b50610773611371565b005b34801561078157600080fd5b5061079c60048036038101906107979190613a85565b6113f9565b005b3480156107aa57600080fd5b506107b361147f565b6040516107c091906136bf565b60405180910390f35b3480156107d557600080fd5b506107de611485565b6040516107eb91906136bf565b60405180910390f35b34801561080057600080fd5b5061081b600480360381019061081691906139bf565b61148b565b604051610828919061391a565b60405180910390f35b34801561083d57600080fd5b506108466114ab565b6040516108539190613847565b60405180910390f35b34801561086857600080fd5b50610883600480360381019061087e91906139bf565b6114d4565b005b34801561089157600080fd5b5061089a611594565b6040516108a7919061376a565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d291906138bf565b611626565b6040516108e4919061391a565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f91906138bf565b6116f3565b604051610921919061391a565b60405180910390f35b34801561093657600080fd5b50610951600480360381019061094c9190613a85565b611712565b005b34801561095f57600080fd5b5061097a60048036038101906109759190613ab2565b611798565b005b34801561098857600080fd5b506109a3600480360381019061099e9190613ab2565b61186f565b005b3480156109b157600080fd5b506109cc60048036038101906109c791906139bf565b6119a4565b6040516109d9919061391a565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613935565b6119c4565b005b348015610a1757600080fd5b50610a326004803603810190610a2d9190613af2565b611b82565b005b348015610a4057600080fd5b50610a5b6004803603810190610a569190613b32565b611c36565b604051610a6891906136bf565b60405180910390f35b348015610a7d57600080fd5b50610a986004803603810190610a939190613ab2565b611cbd565b005b348015610aa657600080fd5b50610aaf611d94565b005b348015610abd57600080fd5b50610ac6611ebf565b604051610ad3919061391a565b60405180910390f35b348015610ae857600080fd5b50610b036004803603810190610afe9190613a18565b611ed2565b005b348015610b1157600080fd5b50610b1a611f6b565b604051610b2791906136bf565b60405180910390f35b348015610b3c57600080fd5b50610b45611f71565b604051610b529190613847565b60405180910390f35b348015610b6757600080fd5b50610b826004803603810190610b7d91906139bf565b611f97565b005b348015610b9057600080fd5b50610bab6004803603810190610ba691906139bf565b61208e565b005b348015610bb957600080fd5b50610bc261214e565b604051610bcf919061391a565b60405180910390f35b348015610be457600080fd5b50610bed612161565b005b600f5481565b606060018054610c0490613ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3090613ba1565b8015610c7d5780601f10610c5257610100808354040283529160200191610c7d565b820191906000526020600020905b815481529060010190602001808311610c6057829003601f168201915b5050505050905090565b601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610ce5610cde61225a565b8484612262565b6001905092915050565b6000600e54905090565b60055481565b6000610d0c84848461242b565b50610dce84610d1961225a565b610dc98560405180606001604052806028815260200161477560289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d7f61225a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae29092919063ffffffff16565b612262565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610e76610e2b7f0000000000000000000000000000000000000000000000000000000000000000611328565b610e68610e577f0000000000000000000000000000000000000000000000000000000000000000611328565b600e54612b4690919063ffffffff16565b612b4690919063ffffffff16565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b6000610f61610ec561225a565b84610f5c8560096000610ed661225a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9090919063ffffffff16565b612262565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b610f9361225a565b73ffffffffffffffffffffffffffffffffffffffff16610fb16114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90613c1e565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b61102c61225a565b73ffffffffffffffffffffffffffffffffffffffff1661104a6114ab565b73ffffffffffffffffffffffffffffffffffffffff16146110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109790613c1e565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6110da61225a565b73ffffffffffffffffffffffffffffffffffffffff166110f86114ab565b73ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590613c1e565b60405180910390fd5b80601260056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61119a61225a565b73ffffffffffffffffffffffffffffffffffffffff166111b86114ab565b73ffffffffffffffffffffffffffffffffffffffff161461120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590613c1e565b60405180910390fd5b8060108190555050565b601260049054906101000a900460ff1681565b601260029054906101000a900460ff1681565b61124661225a565b73ffffffffffffffffffffffffffffffffffffffff166112646114ab565b73ffffffffffffffffffffffffffffffffffffffff16146112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b190613c1e565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61137961225a565b73ffffffffffffffffffffffffffffffffffffffff166113976114ab565b73ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490613c1e565b60405180910390fd5b6113f76000612bee565b565b61140161225a565b73ffffffffffffffffffffffffffffffffffffffff1661141f6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90613c1e565b60405180910390fd5b8060118190555050565b60105481565b60115481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114dc61225a565b73ffffffffffffffffffffffffffffffffffffffff166114fa6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154790613c1e565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600280546115a390613ba1565b80601f01602080910402602001604051908101604052809291908181526020018280546115cf90613ba1565b801561161c5780601f106115f15761010080835404028352916020019161161c565b820191906000526020600020905b8154815290600101906020018083116115ff57829003601f168201915b5050505050905090565b60006116e961163361225a565b846116e48560405180606001604052806025815260200161479d602591396009600061165d61225a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae29092919063ffffffff16565b612262565b6001905092915050565b600061170761170061225a565b848461242b565b506001905092915050565b61171a61225a565b73ffffffffffffffffffffffffffffffffffffffff166117386114ab565b73ffffffffffffffffffffffffffffffffffffffff161461178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613c1e565b60405180910390fd5b80600f8190555050565b6117a061225a565b73ffffffffffffffffffffffffffffffffffffffff166117be6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90613c1e565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61187761225a565b73ffffffffffffffffffffffffffffffffffffffff166118956114ab565b73ffffffffffffffffffffffffffffffffffffffff16146118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e290613c1e565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156119a05780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6119cc61225a565b73ffffffffffffffffffffffffffffffffffffffff166119ea6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790613c1e565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168383604051602401611a6c929190613c3e565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611af69190613cae565b6000604051808303816000865af19150503d8060008114611b33576040519150601f19603f3d011682016040523d82523d6000602084013e611b38565b606091505b5050905080611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390613d11565b60405180910390fd5b50505050565b611b8a61225a565b73ffffffffffffffffffffffffffffffffffffffff16611ba86114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf590613c1e565b60405180910390fd5b81601260006101000a81548160ff02191690831515021790555080601260016101000a81548160ff0219169083151502179055505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cc561225a565b73ffffffffffffffffffffffffffffffffffffffff16611ce36114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090613c1e565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d9c61225a565b73ffffffffffffffffffffffffffffffffffffffff16611dba6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790613c1e565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611e3690613d57565b60006040518083038185875af1925050503d8060008114611e73576040519150601f19603f3d011682016040523d82523d6000602084013e611e78565b606091505b5050905080611ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb390613db8565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611eda61225a565b73ffffffffffffffffffffffffffffffffffffffff16611ef86114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4590613c1e565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b60045481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f9f61225a565b73ffffffffffffffffffffffffffffffffffffffff16611fbd6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a90613c1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207990613e4a565b60405180910390fd5b61208b81612bee565b50565b61209661225a565b73ffffffffffffffffffffffffffffffffffffffff166120b46114ab565b73ffffffffffffffffffffffffffffffffffffffff161461210a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210190613c1e565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b61216961225a565b73ffffffffffffffffffffffffffffffffffffffff166121876114ab565b73ffffffffffffffffffffffffffffffffffffffff16146121dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d490613c1e565b60405180910390fd5b601260049054906101000a900460ff161561222d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222490613eb6565b60405180910390fd5b6001601260046101000a81548160ff021916908315150217905550605a600481905550605a600581905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c890613f48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790613fda565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161241e91906136bf565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361249b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124929061406c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361250a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612501906140fe565b60405180910390fd5b6000821161254d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254490614190565b60405180910390fd5b601260049054906101000a900460ff1661264257600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126025750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612641576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612638906141fc565b60405180910390fd5b5b601360149054906101000a900460ff161561266957612662848484612cb2565b9050612adb565b600061267430611328565b90506000600f54821015905080801561269a5750601360149054906101000a900460ff16155b80156126f05750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127085750601260009054906101000a900460ff165b156127175761271682612e85565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127bb5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127d35750601260029054906101000a900460ff165b1561281e5760105484111561281d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128149061428e565b60405180910390fd5b5b6128a7846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae29092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006128f68787612f73565b61290a576129058787876130de565b61290c565b845b9050601260039054906101000a900460ff1680156129745750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129d9576011546129978261298989611328565b612b9090919063ffffffff16565b11156129d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cf906142fa565b60405180910390fd5b5b612a2b81600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9090919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612acb91906136bf565b60405180910390a3600193505050505b9392505050565b6000838311158290612b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b21919061376a565b60405180910390fd5b5060008385612b399190614349565b9050809150509392505050565b6000612b8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ae2565b905092915050565b6000808284612b9f919061437d565b905083811015612be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdb906143fd565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612d3d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae29092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dd282600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9090919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e7291906136bf565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612ebb57600f5490505b6000479050612ec982613303565b6000612ede8247612b4690919063ffffffff16565b90506000811115612f5357600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f51573d6000803e3d6000fd5b505b50506000601360146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130165750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561302457600190506130d8565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130c55750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130d357600090506130d8565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156131635761315c60075461314e6004548661357f90919063ffffffff16565b6135f990919063ffffffff16565b90506131e2565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156131e1576131de6007546131d06005548661357f90919063ffffffff16565b6135f990919063ffffffff16565b90505b5b60008111156132e65761323d81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9090919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132dd91906136bf565b60405180910390a35b6132f98184612b4690919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156133205761331f61441d565b5b60405190808252806020026020018201604052801561334e5781602001602082028036833780820191505090505b50905030816000815181106133665761336561444c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561340d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134319190614490565b816001815181106134455761344461444c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134ac30601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612262565b601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016135109594939291906145b6565b600060405180830381600087803b15801561352a57600080fd5b505af115801561353e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613573929190614610565b60405180910390a15050565b600080830361359157600090506135f3565b6000828461359f9190614640565b90508284826135ae91906146b1565b146135ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135e590614754565b60405180910390fd5b809150505b92915050565b600061363b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613643565b905092915050565b6000808311829061368a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613681919061376a565b60405180910390fd5b506000838561369991906146b1565b9050809150509392505050565b6000819050919050565b6136b9816136a6565b82525050565b60006020820190506136d460008301846136b0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137145780820151818401526020810190506136f9565b60008484015250505050565b6000601f19601f8301169050919050565b600061373c826136da565b61374681856136e5565b93506137568185602086016136f6565b61375f81613720565b840191505092915050565b600060208201905081810360008301526137848184613731565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006137d16137cc6137c78461378c565b6137ac565b61378c565b9050919050565b60006137e3826137b6565b9050919050565b60006137f5826137d8565b9050919050565b613805816137ea565b82525050565b600060208201905061382060008301846137fc565b92915050565b60006138318261378c565b9050919050565b61384181613826565b82525050565b600060208201905061385c6000830184613838565b92915050565b600080fd5b61387081613826565b811461387b57600080fd5b50565b60008135905061388d81613867565b92915050565b61389c816136a6565b81146138a757600080fd5b50565b6000813590506138b981613893565b92915050565b600080604083850312156138d6576138d5613862565b5b60006138e48582860161387e565b92505060206138f5858286016138aa565b9150509250929050565b60008115159050919050565b613914816138ff565b82525050565b600060208201905061392f600083018461390b565b92915050565b60008060006060848603121561394e5761394d613862565b5b600061395c8682870161387e565b935050602061396d8682870161387e565b925050604061397e868287016138aa565b9150509250925092565b600060ff82169050919050565b61399e81613988565b82525050565b60006020820190506139b96000830184613995565b92915050565b6000602082840312156139d5576139d4613862565b5b60006139e38482850161387e565b91505092915050565b6139f5816138ff565b8114613a0057600080fd5b50565b600081359050613a12816139ec565b92915050565b600060208284031215613a2e57613a2d613862565b5b6000613a3c84828501613a03565b91505092915050565b60008060408385031215613a5c57613a5b613862565b5b6000613a6a858286016138aa565b9250506020613a7b858286016138aa565b9150509250929050565b600060208284031215613a9b57613a9a613862565b5b6000613aa9848285016138aa565b91505092915050565b60008060408385031215613ac957613ac8613862565b5b6000613ad78582860161387e565b9250506020613ae885828601613a03565b9150509250929050565b60008060408385031215613b0957613b08613862565b5b6000613b1785828601613a03565b9250506020613b2885828601613a03565b9150509250929050565b60008060408385031215613b4957613b48613862565b5b6000613b578582860161387e565b9250506020613b688582860161387e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bb957607f821691505b602082108103613bcc57613bcb613b72565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c086020836136e5565b9150613c1382613bd2565b602082019050919050565b60006020820190508181036000830152613c3781613bfb565b9050919050565b6000604082019050613c536000830185613838565b613c6060208301846136b0565b9392505050565b600081519050919050565b600081905092915050565b6000613c8882613c67565b613c928185613c72565b9350613ca28185602086016136f6565b80840191505092915050565b6000613cba8284613c7d565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000613cfb6014836136e5565b9150613d0682613cc5565b602082019050919050565b60006020820190508181036000830152613d2a81613cee565b9050919050565b50565b6000613d41600083613c72565b9150613d4c82613d31565b600082019050919050565b6000613d6282613d34565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613da26014836136e5565b9150613dad82613d6c565b602082019050919050565b60006020820190508181036000830152613dd181613d95565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e346026836136e5565b9150613e3f82613dd8565b604082019050919050565b60006020820190508181036000830152613e6381613e27565b9050919050565b7f547261646520416c726561647920416374697665210000000000000000000000600082015250565b6000613ea06015836136e5565b9150613eab82613e6a565b602082019050919050565b60006020820190508181036000830152613ecf81613e93565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f326024836136e5565b9150613f3d82613ed6565b604082019050919050565b60006020820190508181036000830152613f6181613f25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fc46022836136e5565b9150613fcf82613f68565b604082019050919050565b60006020820190508181036000830152613ff381613fb7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140566025836136e5565b915061406182613ffa565b604082019050919050565b6000602082019050818103600083015261408581614049565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006140e86023836136e5565b91506140f38261408c565b604082019050919050565b60006020820190508181036000830152614117816140db565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061417a6029836136e5565b91506141858261411e565b604082019050919050565b600060208201905081810360008301526141a98161416d565b9050919050565b7f54726164696e67206973206e6f7420656e61626c652079657421000000000000600082015250565b60006141e6601a836136e5565b91506141f1826141b0565b602082019050919050565b60006020820190508181036000830152614215816141d9565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006142786028836136e5565b91506142838261421c565b604082019050919050565b600060208201905081810360008301526142a78161426b565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b60006142e4601b836136e5565b91506142ef826142ae565b602082019050919050565b60006020820190508181036000830152614313816142d7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614354826136a6565b915061435f836136a6565b92508282039050818111156143775761437661431a565b5b92915050565b6000614388826136a6565b9150614393836136a6565b92508282019050808211156143ab576143aa61431a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143e7601b836136e5565b91506143f2826143b1565b602082019050919050565b60006020820190508181036000830152614416816143da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061448a81613867565b92915050565b6000602082840312156144a6576144a5613862565b5b60006144b48482850161447b565b91505092915050565b6000819050919050565b60006144e26144dd6144d8846144bd565b6137ac565b6136a6565b9050919050565b6144f2816144c7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61452d81613826565b82525050565b600061453f8383614524565b60208301905092915050565b6000602082019050919050565b6000614563826144f8565b61456d8185614503565b935061457883614514565b8060005b838110156145a95781516145908882614533565b975061459b8361454b565b92505060018101905061457c565b5085935050505092915050565b600060a0820190506145cb60008301886136b0565b6145d860208301876144e9565b81810360408301526145ea8186614558565b90506145f96060830185613838565b61460660808301846136b0565b9695505050505050565b600060408201905061462560008301856136b0565b81810360208301526146378184614558565b90509392505050565b600061464b826136a6565b9150614656836136a6565b9250828202614664816136a6565b9150828204841483151761467b5761467a61431a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006146bc826136a6565b91506146c7836136a6565b9250826146d7576146d6614682565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061473e6021836136e5565b9150614749826146e2565b604082019050919050565b6000602082019050818103600083015261476d81614731565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d7e34a5c48b8255383648a63739fd0827427f434a81a3aaca4d00c06232e9a7c64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102e85760003560e01c8063728d41c911610190578063cea9d26f116100dc578063ee828db311610095578063f2fde38b1161006f578063f2fde38b14610b5b578063f71b9bbf14610b84578063f872858a14610bad578063fb201b1d14610bd8576102ef565b8063ee828db314610adc578063efcc52de14610b05578063f242ab4114610b30576102ef565b8063cea9d26f146109e2578063d4e43fb314610a0b578063dd62ed3e14610a34578063df8408fe14610a71578063e6b2603b14610a9a578063e9fd339414610ab1576102ef565b806395d89b4111610149578063adc0d09211610123578063adc0d0921461092a578063ae85ade614610953578063c16dd4a41461097c578063c867d60b146109a5576102ef565b806395d89b4114610885578063a457c2d7146108b0578063a9059cbb146108ed576102ef565b8063728d41c9146107755780637d1db4a51461079e578063807c2d9c146107c95780638b42507f146107f45780638da5cb5b1461083157806390d49b9d1461085c576102ef565b8063395093511161024f5780635c85974f11610208578063651a8987116101e2578063651a8987146106cd5780636ddd1713146106f657806370a0823114610721578063715018a61461075e576102ef565b80635c85974f1461064e5780635ca6de3c146106775780635e42358c146106a2576102ef565b8063395093511461051c5780633ecad271146105595780634974d88f1461059657806352f7c988146105bf5780635342acb4146105e857806359fac51714610625576102ef565b8063200a692d116102a1578063200a692d1461040857806323b872dd1461043357806327c8f835146104705780632b112e491461049b5780632ebd161c146104c6578063313ce567146104f1576102ef565b80630445b667146102f457806306fdde031461031f5780630758d9241461034a5780630930907b14610375578063095ea7b3146103a057806318160ddd146103dd576102ef565b366102ef57005b600080fd5b34801561030057600080fd5b50610309610bef565b60405161031691906136bf565b60405180910390f35b34801561032b57600080fd5b50610334610bf5565b604051610341919061376a565b60405180910390f35b34801561035657600080fd5b5061035f610c87565b60405161036c919061380b565b60405180910390f35b34801561038157600080fd5b5061038a610cad565b6040516103979190613847565b60405180910390f35b3480156103ac57600080fd5b506103c760048036038101906103c291906138bf565b610cd1565b6040516103d4919061391a565b60405180910390f35b3480156103e957600080fd5b506103f2610cef565b6040516103ff91906136bf565b60405180910390f35b34801561041457600080fd5b5061041d610cf9565b60405161042a91906136bf565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190613935565b610cff565b604051610467919061391a565b60405180910390f35b34801561047c57600080fd5b50610485610dd9565b6040516104929190613847565b60405180910390f35b3480156104a757600080fd5b506104b0610dfd565b6040516104bd91906136bf565b60405180910390f35b3480156104d257600080fd5b506104db610e7b565b6040516104e89190613847565b60405180910390f35b3480156104fd57600080fd5b50610506610ea1565b60405161051391906139a4565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e91906138bf565b610eb8565b604051610550919061391a565b60405180910390f35b34801561056557600080fd5b50610580600480360381019061057b91906139bf565b610f6b565b60405161058d919061391a565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190613a18565b610f8b565b005b3480156105cb57600080fd5b506105e660048036038101906105e19190613a45565b611024565b005b3480156105f457600080fd5b5061060f600480360381019061060a91906139bf565b6110b2565b60405161061c919061391a565b60405180910390f35b34801561063157600080fd5b5061064c600480360381019061064791906139bf565b6110d2565b005b34801561065a57600080fd5b5061067560048036038101906106709190613a85565b611192565b005b34801561068357600080fd5b5061068c611218565b604051610699919061391a565b60405180910390f35b3480156106ae57600080fd5b506106b761122b565b6040516106c4919061391a565b60405180910390f35b3480156106d957600080fd5b506106f460048036038101906106ef9190613ab2565b61123e565b005b34801561070257600080fd5b5061070b611315565b604051610718919061391a565b60405180910390f35b34801561072d57600080fd5b50610748600480360381019061074391906139bf565b611328565b60405161075591906136bf565b60405180910390f35b34801561076a57600080fd5b50610773611371565b005b34801561078157600080fd5b5061079c60048036038101906107979190613a85565b6113f9565b005b3480156107aa57600080fd5b506107b361147f565b6040516107c091906136bf565b60405180910390f35b3480156107d557600080fd5b506107de611485565b6040516107eb91906136bf565b60405180910390f35b34801561080057600080fd5b5061081b600480360381019061081691906139bf565b61148b565b604051610828919061391a565b60405180910390f35b34801561083d57600080fd5b506108466114ab565b6040516108539190613847565b60405180910390f35b34801561086857600080fd5b50610883600480360381019061087e91906139bf565b6114d4565b005b34801561089157600080fd5b5061089a611594565b6040516108a7919061376a565b60405180910390f35b3480156108bc57600080fd5b506108d760048036038101906108d291906138bf565b611626565b6040516108e4919061391a565b60405180910390f35b3480156108f957600080fd5b50610914600480360381019061090f91906138bf565b6116f3565b604051610921919061391a565b60405180910390f35b34801561093657600080fd5b50610951600480360381019061094c9190613a85565b611712565b005b34801561095f57600080fd5b5061097a60048036038101906109759190613ab2565b611798565b005b34801561098857600080fd5b506109a3600480360381019061099e9190613ab2565b61186f565b005b3480156109b157600080fd5b506109cc60048036038101906109c791906139bf565b6119a4565b6040516109d9919061391a565b60405180910390f35b3480156109ee57600080fd5b50610a096004803603810190610a049190613935565b6119c4565b005b348015610a1757600080fd5b50610a326004803603810190610a2d9190613af2565b611b82565b005b348015610a4057600080fd5b50610a5b6004803603810190610a569190613b32565b611c36565b604051610a6891906136bf565b60405180910390f35b348015610a7d57600080fd5b50610a986004803603810190610a939190613ab2565b611cbd565b005b348015610aa657600080fd5b50610aaf611d94565b005b348015610abd57600080fd5b50610ac6611ebf565b604051610ad3919061391a565b60405180910390f35b348015610ae857600080fd5b50610b036004803603810190610afe9190613a18565b611ed2565b005b348015610b1157600080fd5b50610b1a611f6b565b604051610b2791906136bf565b60405180910390f35b348015610b3c57600080fd5b50610b45611f71565b604051610b529190613847565b60405180910390f35b348015610b6757600080fd5b50610b826004803603810190610b7d91906139bf565b611f97565b005b348015610b9057600080fd5b50610bab6004803603810190610ba691906139bf565b61208e565b005b348015610bb957600080fd5b50610bc261214e565b604051610bcf919061391a565b60405180910390f35b348015610be457600080fd5b50610bed612161565b005b600f5481565b606060018054610c0490613ba1565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3090613ba1565b8015610c7d5780601f10610c5257610100808354040283529160200191610c7d565b820191906000526020600020905b815481529060010190602001808311610c6057829003601f168201915b5050505050905090565b601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610ce5610cde61225a565b8484612262565b6001905092915050565b6000600e54905090565b60055481565b6000610d0c84848461242b565b50610dce84610d1961225a565b610dc98560405180606001604052806028815260200161477560289139600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d7f61225a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae29092919063ffffffff16565b612262565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000610e76610e2b7f0000000000000000000000000000000000000000000000000000000000000000611328565b610e68610e577f000000000000000000000000000000000000000000000000000000000000dead611328565b600e54612b4690919063ffffffff16565b612b4690919063ffffffff16565b905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900460ff16905090565b6000610f61610ec561225a565b84610f5c8560096000610ed661225a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9090919063ffffffff16565b612262565b6001905092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b610f9361225a565b73ffffffffffffffffffffffffffffffffffffffff16610fb16114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611007576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffe90613c1e565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b61102c61225a565b73ffffffffffffffffffffffffffffffffffffffff1661104a6114ab565b73ffffffffffffffffffffffffffffffffffffffff16146110a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109790613c1e565b60405180910390fd5b81600481905550806005819055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6110da61225a565b73ffffffffffffffffffffffffffffffffffffffff166110f86114ab565b73ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114590613c1e565b60405180910390fd5b80601260056101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61119a61225a565b73ffffffffffffffffffffffffffffffffffffffff166111b86114ab565b73ffffffffffffffffffffffffffffffffffffffff161461120e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120590613c1e565b60405180910390fd5b8060108190555050565b601260049054906101000a900460ff1681565b601260029054906101000a900460ff1681565b61124661225a565b73ffffffffffffffffffffffffffffffffffffffff166112646114ab565b73ffffffffffffffffffffffffffffffffffffffff16146112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b190613c1e565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601260009054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61137961225a565b73ffffffffffffffffffffffffffffffffffffffff166113976114ab565b73ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490613c1e565b60405180910390fd5b6113f76000612bee565b565b61140161225a565b73ffffffffffffffffffffffffffffffffffffffff1661141f6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90613c1e565b60405180910390fd5b8060118190555050565b60105481565b60115481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114dc61225a565b73ffffffffffffffffffffffffffffffffffffffff166114fa6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154790613c1e565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600280546115a390613ba1565b80601f01602080910402602001604051908101604052809291908181526020018280546115cf90613ba1565b801561161c5780601f106115f15761010080835404028352916020019161161c565b820191906000526020600020905b8154815290600101906020018083116115ff57829003601f168201915b5050505050905090565b60006116e961163361225a565b846116e48560405180606001604052806025815260200161479d602591396009600061165d61225a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae29092919063ffffffff16565b612262565b6001905092915050565b600061170761170061225a565b848461242b565b506001905092915050565b61171a61225a565b73ffffffffffffffffffffffffffffffffffffffff166117386114ab565b73ffffffffffffffffffffffffffffffffffffffff161461178e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178590613c1e565b60405180910390fd5b80600f8190555050565b6117a061225a565b73ffffffffffffffffffffffffffffffffffffffff166117be6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180b90613c1e565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61187761225a565b73ffffffffffffffffffffffffffffffffffffffff166118956114ab565b73ffffffffffffffffffffffffffffffffffffffff16146118eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e290613c1e565b60405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156119a05780600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6119cc61225a565b73ffffffffffffffffffffffffffffffffffffffff166119ea6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3790613c1e565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168383604051602401611a6c929190613c3e565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611af69190613cae565b6000604051808303816000865af19150503d8060008114611b33576040519150601f19603f3d011682016040523d82523d6000602084013e611b38565b606091505b5050905080611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390613d11565b60405180910390fd5b50505050565b611b8a61225a565b73ffffffffffffffffffffffffffffffffffffffff16611ba86114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf590613c1e565b60405180910390fd5b81601260006101000a81548160ff02191690831515021790555080601260016101000a81548160ff0219169083151502179055505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611cc561225a565b73ffffffffffffffffffffffffffffffffffffffff16611ce36114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3090613c1e565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611d9c61225a565b73ffffffffffffffffffffffffffffffffffffffff16611dba6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0790613c1e565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051611e3690613d57565b60006040518083038185875af1925050503d8060008114611e73576040519150601f19603f3d011682016040523d82523d6000602084013e611e78565b606091505b5050905080611ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb390613db8565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611eda61225a565b73ffffffffffffffffffffffffffffffffffffffff16611ef86114ab565b73ffffffffffffffffffffffffffffffffffffffff1614611f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4590613c1e565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b60045481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611f9f61225a565b73ffffffffffffffffffffffffffffffffffffffff16611fbd6114ab565b73ffffffffffffffffffffffffffffffffffffffff1614612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a90613c1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207990613e4a565b60405180910390fd5b61208b81612bee565b50565b61209661225a565b73ffffffffffffffffffffffffffffffffffffffff166120b46114ab565b73ffffffffffffffffffffffffffffffffffffffff161461210a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210190613c1e565b60405180910390fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b61216961225a565b73ffffffffffffffffffffffffffffffffffffffff166121876114ab565b73ffffffffffffffffffffffffffffffffffffffff16146121dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d490613c1e565b60405180910390fd5b601260049054906101000a900460ff161561222d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222490613eb6565b60405180910390fd5b6001601260046101000a81548160ff021916908315150217905550605a600481905550605a600581905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c890613f48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612340576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233790613fda565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161241e91906136bf565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361249b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124929061406c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361250a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612501906140fe565b60405180910390fd5b6000821161254d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254490614190565b60405180910390fd5b601260049054906101000a900460ff1661264257600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126025750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612641576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612638906141fc565b60405180910390fd5b5b601360149054906101000a900460ff161561266957612662848484612cb2565b9050612adb565b600061267430611328565b90506000600f54821015905080801561269a5750601360149054906101000a900460ff16155b80156126f05750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127085750601260009054906101000a900460ff165b156127175761271682612e85565b5b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156127bb5750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156127d35750601260029054906101000a900460ff165b1561281e5760105484111561281d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128149061428e565b60405180910390fd5b5b6128a7846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae29092919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006128f68787612f73565b61290a576129058787876130de565b61290c565b845b9050601260039054906101000a900460ff1680156129745750600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129d9576011546129978261298989611328565b612b9090919063ffffffff16565b11156129d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129cf906142fa565b60405180910390fd5b5b612a2b81600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9090919063ffffffff16565b600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612acb91906136bf565b60405180910390a3600193505050505b9392505050565b6000838311158290612b2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b21919061376a565b60405180910390fd5b5060008385612b399190614349565b9050809150509392505050565b6000612b8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ae2565b905092915050565b6000808284612b9f919061437d565b905083811015612be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdb906143fd565b60405180910390fd5b8091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612d3d826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae29092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dd282600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9090919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612e7291906136bf565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612ebb57600f5490505b6000479050612ec982613303565b6000612ede8247612b4690919063ffffffff16565b90506000811115612f5357600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f51573d6000803e3d6000fd5b505b50506000601360146101000a81548160ff02191690831515021790555050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130165750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561302457600190506130d8565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806130c55750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156130d357600090506130d8565b600090505b92915050565b600080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156131635761315c60075461314e6004548661357f90919063ffffffff16565b6135f990919063ffffffff16565b90506131e2565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156131e1576131de6007546131d06005548661357f90919063ffffffff16565b6135f990919063ffffffff16565b90505b5b60008111156132e65761323d81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b9090919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132dd91906136bf565b60405180910390a35b6132f98184612b4690919063ffffffff16565b9150509392505050565b6000600267ffffffffffffffff8111156133205761331f61441d565b5b60405190808252806020026020018201604052801561334e5781602001602082028036833780820191505090505b50905030816000815181106133665761336561444c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561340d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134319190614490565b816001815181106134455761344461444c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506134ac30601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612262565b601260059054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016135109594939291906145b6565b600060405180830381600087803b15801561352a57600080fd5b505af115801561353e573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051613573929190614610565b60405180910390a15050565b600080830361359157600090506135f3565b6000828461359f9190614640565b90508284826135ae91906146b1565b146135ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135e590614754565b60405180910390fd5b809150505b92915050565b600061363b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613643565b905092915050565b6000808311829061368a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613681919061376a565b60405180910390fd5b506000838561369991906146b1565b9050809150509392505050565b6000819050919050565b6136b9816136a6565b82525050565b60006020820190506136d460008301846136b0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156137145780820151818401526020810190506136f9565b60008484015250505050565b6000601f19601f8301169050919050565b600061373c826136da565b61374681856136e5565b93506137568185602086016136f6565b61375f81613720565b840191505092915050565b600060208201905081810360008301526137848184613731565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006137d16137cc6137c78461378c565b6137ac565b61378c565b9050919050565b60006137e3826137b6565b9050919050565b60006137f5826137d8565b9050919050565b613805816137ea565b82525050565b600060208201905061382060008301846137fc565b92915050565b60006138318261378c565b9050919050565b61384181613826565b82525050565b600060208201905061385c6000830184613838565b92915050565b600080fd5b61387081613826565b811461387b57600080fd5b50565b60008135905061388d81613867565b92915050565b61389c816136a6565b81146138a757600080fd5b50565b6000813590506138b981613893565b92915050565b600080604083850312156138d6576138d5613862565b5b60006138e48582860161387e565b92505060206138f5858286016138aa565b9150509250929050565b60008115159050919050565b613914816138ff565b82525050565b600060208201905061392f600083018461390b565b92915050565b60008060006060848603121561394e5761394d613862565b5b600061395c8682870161387e565b935050602061396d8682870161387e565b925050604061397e868287016138aa565b9150509250925092565b600060ff82169050919050565b61399e81613988565b82525050565b60006020820190506139b96000830184613995565b92915050565b6000602082840312156139d5576139d4613862565b5b60006139e38482850161387e565b91505092915050565b6139f5816138ff565b8114613a0057600080fd5b50565b600081359050613a12816139ec565b92915050565b600060208284031215613a2e57613a2d613862565b5b6000613a3c84828501613a03565b91505092915050565b60008060408385031215613a5c57613a5b613862565b5b6000613a6a858286016138aa565b9250506020613a7b858286016138aa565b9150509250929050565b600060208284031215613a9b57613a9a613862565b5b6000613aa9848285016138aa565b91505092915050565b60008060408385031215613ac957613ac8613862565b5b6000613ad78582860161387e565b9250506020613ae885828601613a03565b9150509250929050565b60008060408385031215613b0957613b08613862565b5b6000613b1785828601613a03565b9250506020613b2885828601613a03565b9150509250929050565b60008060408385031215613b4957613b48613862565b5b6000613b578582860161387e565b9250506020613b688582860161387e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613bb957607f821691505b602082108103613bcc57613bcb613b72565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613c086020836136e5565b9150613c1382613bd2565b602082019050919050565b60006020820190508181036000830152613c3781613bfb565b9050919050565b6000604082019050613c536000830185613838565b613c6060208301846136b0565b9392505050565b600081519050919050565b600081905092915050565b6000613c8882613c67565b613c928185613c72565b9350613ca28185602086016136f6565b80840191505092915050565b6000613cba8284613c7d565b915081905092915050565b7f546f6b656e207061796d656e74206661696c6564000000000000000000000000600082015250565b6000613cfb6014836136e5565b9150613d0682613cc5565b602082019050919050565b60006020820190508181036000830152613d2a81613cee565b9050919050565b50565b6000613d41600083613c72565b9150613d4c82613d31565b600082019050919050565b6000613d6282613d34565b9150819050919050565b7f5472616e73616374696f6e204661696c65642121000000000000000000000000600082015250565b6000613da26014836136e5565b9150613dad82613d6c565b602082019050919050565b60006020820190508181036000830152613dd181613d95565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613e346026836136e5565b9150613e3f82613dd8565b604082019050919050565b60006020820190508181036000830152613e6381613e27565b9050919050565b7f547261646520416c726561647920416374697665210000000000000000000000600082015250565b6000613ea06015836136e5565b9150613eab82613e6a565b602082019050919050565b60006020820190508181036000830152613ecf81613e93565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f326024836136e5565b9150613f3d82613ed6565b604082019050919050565b60006020820190508181036000830152613f6181613f25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fc46022836136e5565b9150613fcf82613f68565b604082019050919050565b60006020820190508181036000830152613ff381613fb7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006140566025836136e5565b915061406182613ffa565b604082019050919050565b6000602082019050818103600083015261408581614049565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006140e86023836136e5565b91506140f38261408c565b604082019050919050565b60006020820190508181036000830152614117816140db565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061417a6029836136e5565b91506141858261411e565b604082019050919050565b600060208201905081810360008301526141a98161416d565b9050919050565b7f54726164696e67206973206e6f7420656e61626c652079657421000000000000600082015250565b60006141e6601a836136e5565b91506141f1826141b0565b602082019050919050565b60006020820190508181036000830152614215816141d9565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006142786028836136e5565b91506142838261421c565b604082019050919050565b600060208201905081810360008301526142a78161426b565b9050919050565b7f4d61782057616c6c6574204c696d697420457863656564656421210000000000600082015250565b60006142e4601b836136e5565b91506142ef826142ae565b602082019050919050565b60006020820190508181036000830152614313816142d7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614354826136a6565b915061435f836136a6565b92508282039050818111156143775761437661431a565b5b92915050565b6000614388826136a6565b9150614393836136a6565b92508282019050808211156143ab576143aa61431a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006143e7601b836136e5565b91506143f2826143b1565b602082019050919050565b60006020820190508181036000830152614416816143da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061448a81613867565b92915050565b6000602082840312156144a6576144a5613862565b5b60006144b48482850161447b565b91505092915050565b6000819050919050565b60006144e26144dd6144d8846144bd565b6137ac565b6136a6565b9050919050565b6144f2816144c7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61452d81613826565b82525050565b600061453f8383614524565b60208301905092915050565b6000602082019050919050565b6000614563826144f8565b61456d8185614503565b935061457883614514565b8060005b838110156145a95781516145908882614533565b975061459b8361454b565b92505060018101905061457c565b5085935050505092915050565b600060a0820190506145cb60008301886136b0565b6145d860208301876144e9565b81810360408301526145ea8186614558565b90506145f96060830185613838565b61460660808301846136b0565b9695505050505050565b600060408201905061462560008301856136b0565b81810360208301526146378184614558565b90509392505050565b600061464b826136a6565b9150614656836136a6565b9250828202614664816136a6565b9150828204841483151761467b5761467a61431a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006146bc826136a6565b91506146c7836136a6565b9250826146d7576146d6614682565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061473e6021836136e5565b9150614749826146e2565b604082019050919050565b6000602082019050818103600083015261476d81614731565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d7e34a5c48b8255383648a63739fd0827427f434a81a3aaca4d00c06232e9a7c64736f6c63430008130033

Deployed Bytecode Sourcemap

8697:12160:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9713:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11722:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10147:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9001:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13060:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11999:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9127:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13834:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8913:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12393:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9166:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11908:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12557:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9476:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19286:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19028:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9419:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20636:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19907:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10115:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10032:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19529:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9957:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12107:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3457:94;;;;;;;;;;;;;:::i;:::-;;19793:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9799:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9877:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9587:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3148:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20016:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11813:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12783:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13659:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20521:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19665:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20126:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9528:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18748:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20338:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12238:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19399:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18562:178;;;;;;;;;;;;;:::i;:::-;;9994:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19180:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9091:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10185:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3559:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20759:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10071:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17317:186;;;;;;;;;;;;;:::i;:::-;;9713:61;;;;:::o;11722:83::-;11759:13;11792:5;11785:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11722:83;:::o;10147:31::-;;;;;;;;;;;;;:::o;9001:81::-;;;:::o;13060:161::-;13135:4;13152:39;13161:12;:10;:12::i;:::-;13175:7;13184:6;13152:8;:39::i;:::-;13209:4;13202:11;;13060:161;;;;:::o;11999:100::-;12052:7;12079:12;;12072:19;;11999:100;:::o;9127:30::-;;;;:::o;13834:313::-;13932:4;13949:36;13959:6;13967:9;13978:6;13949:9;:36::i;:::-;;13996:121;14005:6;14013:12;:10;:12::i;:::-;14027:89;14065:6;14027:89;;;;;;;;;;;;;;;;;:11;:19;14039:6;14027:19;;;;;;;;;;;;;;;:33;14047:12;:10;:12::i;:::-;14027:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;13996:8;:121::i;:::-;14135:4;14128:11;;13834:313;;;;;:::o;8913:81::-;;;:::o;12393:156::-;12446:7;12473:68;12518:22;12528:11;12518:9;:22::i;:::-;12473:40;12490:22;12500:11;12490:9;:22::i;:::-;12473:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;12466:75;;12393:156;:::o;9166:78::-;;;;;;;;;;;;;:::o;11908:83::-;11949:5;11974:9;;;;;;;;;;;11967:16;;11908:83;:::o;12557:218::-;12645:4;12662:83;12671:12;:10;:12::i;:::-;12685:7;12694:50;12733:10;12694:11;:25;12706:12;:10;:12::i;:::-;12694:25;;;;;;;;;;;;;;;:34;12720:7;12694:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;12662:8;:83::i;:::-;12763:4;12756:11;;12557:218;;;;:::o;9476:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;19286:105::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19376:7:::1;19357:16;;:26;;;;;;;;;;;;;;;;;;19286:105:::0;:::o;19028:144::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19122:8:::1;19109:10;:21;;;;19155:9;19141:11;:23;;;;19028:144:::0;;:::o;9419:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;20636:115::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20735:7:::1;20708:9;;:35;;;;;;;;;;;;;;;;;;20636:115:::0;:::o;19907:101::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19992:8:::1;19977:12;:23;;;;19907:101:::0;:::o;10115:23::-;;;;;;;;;;;;;:::o;10032:32::-;;;;;;;;;;;;;:::o;19529:128::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19642:7:::1;19614:19;:25;19634:4;19614:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19529:128:::0;;:::o;9957:30::-;;;;;;;;;;;;;:::o;12107:123::-;12173:7;12199:9;:18;12209:7;12199:18;;;;;;;;;;;;;;;;12192:25;;12107:123;;;:::o;3457:94::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3522:21:::1;3540:1;3522:9;:21::i;:::-;3457:94::o:0;19793:106::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19883:8:::1;19870:10;:21;;;;19793:106:::0;:::o;9799:61::-;;;;:::o;9877:58::-;;;;:::o;9587:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;3148:87::-;3194:7;3221:6;;;;;;;;;;;3214:13;;3148:87;:::o;20016:102::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20100:10:::1;20088:9;;:22;;;;;;;;;;;;;;;;;;20016:102:::0;:::o;11813:87::-;11852:13;11885:7;11878:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11813:87;:::o;12783:269::-;12876:4;12893:129;12902:12;:10;:12::i;:::-;12916:7;12925:96;12964:15;12925:96;;;;;;;;;;;;;;;;;:11;:25;12937:12;:10;:12::i;:::-;12925:25;;;;;;;;;;;;;;;:34;12951:7;12925:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;12893:8;:129::i;:::-;13040:4;13033:11;;12783:269;;;;:::o;13659:167::-;13737:4;13754:42;13764:12;:10;:12::i;:::-;13778:9;13789:6;13754:9;:42::i;:::-;;13814:4;13807:11;;13659:167;;;;:::o;20521:107::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20610:10:::1;20594:13;:26;;;;20521:107:::0;:::o;19665:120::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19770:7:::1;19746:15;:21;19762:4;19746:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;19665:120:::0;;:::o;20126:204::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20230:7:::1;20208:12;:19;20221:5;20208:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;20251:7;20248:75;;;20304:7;20275:19;:26;20295:5;20275:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;20248:75;20126:204:::0;;:::o;9528:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;18748:272::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18848:12:::1;18874:6;18866:20;;18941:9;18952:7;18887:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18866:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18847:114;;;18980:7;18972:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;18836:184;18748:272:::0;;;:::o;20338:175::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20464:8:::1;20450:11;;:22;;;;;;;;;;;;;;;;;;20497:8;20483:11;;:22;;;;;;;;;;;;;;;;;;20338:175:::0;;:::o;12238:143::-;12319:7;12346:11;:18;12358:5;12346:18;;;;;;;;;;;;;;;:27;12365:7;12346:27;;;;;;;;;;;;;;;;12339:34;;12238:143;;;;:::o;19399:122::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19506:7:::1;19480:17;:23;19498:4;19480:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19399:122:::0;;:::o;18562:178::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18617:7:::1;18637:10;18629:24;;18661:21;18629:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18616:71;;;18706:2;18698:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;18604:136;18562:178::o:0;9994:31::-;;;;;;;;;;;;;:::o;19180:98::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19263:7:::1;19247:13;;:23;;;;;;;;;;;;;;;;;;19180:98:::0;:::o;9091:29::-;;;;:::o;10185:22::-;;;;;;;;;;;;;:::o;3559:229::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3682:1:::1;3662:22;;:8;:22;;::::0;3640:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3761:19;3771:8;3761:9;:19::i;:::-;3559:229:::0;:::o;20759:91::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20837:5:::1;20827:7;;:15;;;;;;;;;;;;;;;;;;20759:91:::0;:::o;10071:35::-;;;;;;;;;;;;;:::o;17317:186::-;3380:12;:10;:12::i;:::-;3369:23;;:7;:5;:7::i;:::-;:23;;;3361:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17377:11:::1;;;;;;;;;;;17376:12;17368:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;17438:4;17424:11;;:18;;;;;;;;;;;;;;;;;;17466:2;17453:10;:15;;;;17493:2;17479:11;:16;;;;17317:186::o:0;1715:98::-;1768:7;1795:10;1788:17;;1715:98;:::o;13229:337::-;13339:1;13322:19;;:5;:19;;;13314:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13420:1;13401:21;;:7;:21;;;13393:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13504:6;13474:11;:18;13486:5;13474:18;;;;;;;;;;;;;;;:27;13493:7;13474:27;;;;;;;;;;;;;;;:36;;;;13542:7;13526:32;;13535:5;13526:32;;;13551:6;13526:32;;;;;;:::i;:::-;;;;;;;;13229:337;;;:::o;14155:1729::-;14242:4;14287:1;14269:20;;:6;:20;;;14261:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14371:1;14350:23;;:9;:23;;;14342:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14441:1;14432:6;:10;14424:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14505:11;;;;;;;;;;;14501:139;;14541:17;:25;14559:6;14541:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;14570:17;:28;14588:9;14570:28;;;;;;;;;;;;;;;;;;;;;;;;;14541:57;14533:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;14501:139;14660:6;;;;;;;;;;;14656:1219;;;14690:41;14705:6;14713:9;14724:6;14690:14;:41::i;:::-;14683:48;;;;14656:1219;14775:28;14806:24;14824:4;14806:9;:24::i;:::-;14775:55;;14845:28;14900:13;;14876:20;:37;;14845:68;;14934:23;:34;;;;;14962:6;;;;;;;;;;;14961:7;14934:34;:59;;;;;14973:12;:20;14986:6;14973:20;;;;;;;;;;;;;;;;;;;;;;;;;14972:21;14934:59;:74;;;;;14997:11;;;;;;;;;;;14934:74;14930:145;;;15029:30;15038:20;15029:8;:30::i;:::-;14930:145;15095:15;:23;15111:6;15095:23;;;;;;;;;;;;;;;;;;;;;;;;;15094:24;:55;;;;;15123:15;:26;15139:9;15123:26;;;;;;;;;;;;;;;;;;;;;;;;;15122:27;15094:55;:72;;;;;15153:13;;;;;;;;;;;15094:72;15091:187;;;15205:12;;15195:6;:22;;15187:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;15091:187;15327:53;15349:6;15327:53;;;;;;;;;;;;;;;;;:9;:17;15337:6;15327:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15307:9;:17;15317:6;15307:17;;;;;;;;;;;;;;;:73;;;;15397:19;15419:34;15436:6;15443:9;15419:16;:34::i;:::-;:80;;15465:34;15473:6;15481:9;15492:6;15465:7;:34::i;:::-;15419:80;;;15456:6;15419:80;15397:102;;15519:16;;;;;;;;;;;:51;;;;;15540:19;:30;15560:9;15540:30;;;;;;;;;;;;;;;;;;;;;;;;;15539:31;15519:51;15516:181;;;15640:10;;15599:37;15624:11;15599:20;15609:9;15599;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;15591:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;15516:181;15736:37;15761:11;15736:9;:20;15746:9;15736:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;15713:9;:20;15723:9;15713:20;;;;;;;;;;;;;;;:60;;;;15812:9;15795:40;;15804:6;15795:40;;;15823:11;15795:40;;;;;;:::i;:::-;;;;;;;;15857:4;15850:11;;;;;14155:1729;;;;;;:::o;4335:192::-;4421:7;4454:1;4449;:6;;4457:12;4441:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4481:9;4497:1;4493;:5;;;;:::i;:::-;4481:17;;4518:1;4511:8;;;4335:192;;;;;:::o;4191:136::-;4249:7;4276:43;4280:1;4283;4276:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4269:50;;4191:136;;;;:::o;4002:181::-;4060:7;4080:9;4096:1;4092;:5;;;;:::i;:::-;4080:17;;4121:1;4116;:6;;4108:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4174:1;4167:8;;;4002:181;;;;:::o;3796:173::-;3852:16;3871:6;;;;;;;;;;;3852:25;;3897:8;3888:6;;:17;;;;;;;;;;;;;;;;;;3952:8;3921:40;;3942:8;3921:40;;;;;;;;;;;;3841:128;3796:173;:::o;15892:330::-;15985:4;16022:53;16044:6;16022:53;;;;;;;;;;;;;;;;;:9;:17;16032:6;16022:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;16002:9;:17;16012:6;16002:17;;;;;;;;;;;;;;;:73;;;;16109:32;16134:6;16109:9;:20;16119:9;16109:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;16086:9;:20;16096:9;16086:20;;;;;;;;;;;;;;;:55;;;;16174:9;16157:35;;16166:6;16157:35;;;16185:6;16157:35;;;;;;:::i;:::-;;;;;;;;16210:4;16203:11;;15892:330;;;;;:::o;17511:387::-;10276:4;10267:6;;:13;;;;;;;;;;;;;;;;;;17585:11:::1;;;;;;;;;;;17582:47;;;17616:13;;17598:31;;17582:47;17642:22;17667:21;17642:46;;17699:33;17716:15;17699:16;:33::i;:::-;17743:22;17768:41;17794:14;17768:21;:25;;:41;;;;:::i;:::-;17743:66;;17842:1;17825:14;:18;17822:66;;;17853:9;;;;;;;;;;;17845:27;;:43;17873:14;17845:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17822:66;17569:329;;10312:5:::0;10303:6;;:14;;;;;;;;;;;;;;;;;;17511:387;:::o;16234:369::-;16318:4;16338:17;:25;16356:6;16338:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;16367:17;:28;16385:9;16367:28;;;;;;;;;;;;;;;;;;;;;;;;;16338:57;16335:261;;;16419:4;16412:11;;;;16335:261;16454:12;:20;16467:6;16454:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;16478:12;:23;16491:9;16478:23;;;;;;;;;;;;;;;;;;;;;;;;;16454:47;16450:146;;;16525:5;16518:12;;;;16450:146;16579:5;16572:12;;16234:369;;;;;:::o;16611:698::-;16697:7;16727:14;16784:12;:20;16797:6;16784:20;;;;;;;;;;;;;;;;;;;;;;;;;16781:254;;;16838:42;16865:14;;16838:22;16849:10;;16838:6;:10;;:22;;;;:::i;:::-;:26;;:42;;;;:::i;:::-;16826:54;;16781:254;;;16919:12;:23;16932:9;16919:23;;;;;;;;;;;;;;;;;;;;;;;;;16916:119;;;16976:43;17004:14;;16976:23;16987:11;;16976:6;:10;;:23;;;;:::i;:::-;:27;;:43;;;;:::i;:::-;16964:55;;16916:119;16781:254;17066:1;17054:9;:13;17051:185;;;17115:39;17144:9;17115;:24;17133:4;17115:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;17088:9;:24;17106:4;17088:24;;;;;;;;;;;;;;;:66;;;;17203:4;17178:42;;17187:6;17178:42;;;17210:9;17178:42;;;;;;:::i;:::-;;;;;;;;17051:185;17259:21;17270:9;17259:6;:10;;:21;;;;:::i;:::-;17252:28;;;16611:698;;;;;:::o;17906:648::-;18032:21;18070:1;18056:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18032:40;;18101:4;18083;18088:1;18083:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18127:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18117:4;18122:1;18117:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;18156:56;18173:4;18188:9;;;;;;;;;;;18200:11;18156:8;:56::i;:::-;18251:9;;;;;;;;;;;:60;;;18326:11;18352:1;18396:4;18423;18459:15;18251:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18511:35;18528:11;18541:4;18511:35;;;;;;;:::i;:::-;;;;;;;;17961:593;17906:648;:::o;4535:250::-;4593:7;4622:1;4617;:6;4613:47;;4647:1;4640:8;;;;4613:47;4672:9;4688:1;4684;:5;;;;:::i;:::-;4672:17;;4717:1;4712;4708;:5;;;;:::i;:::-;:10;4700:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4776:1;4769:8;;;4535:250;;;;;:::o;4793:132::-;4851:7;4878:39;4882:1;4885;4878:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4871:46;;4793:132;;;;:::o;4933:278::-;5019:7;5051:1;5047;:5;5054:12;5039:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5078:9;5094:1;5090;:5;;;;:::i;:::-;5078:17;;5202:1;5195:8;;;4933:278;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:126::-;1821:7;1861:42;1854:5;1850:54;1839:65;;1784:126;;;:::o;1916:60::-;1944:3;1965:5;1958:12;;1916:60;;;:::o;1982:142::-;2032:9;2065:53;2083:34;2092:24;2110:5;2092:24;:::i;:::-;2083:34;:::i;:::-;2065:53;:::i;:::-;2052:66;;1982:142;;;:::o;2130:126::-;2180:9;2213:37;2244:5;2213:37;:::i;:::-;2200:50;;2130:126;;;:::o;2262:148::-;2334:9;2367:37;2398:5;2367:37;:::i;:::-;2354:50;;2262:148;;;:::o;2416:175::-;2525:59;2578:5;2525:59;:::i;:::-;2520:3;2513:72;2416:175;;:::o;2597:266::-;2712:4;2750:2;2739:9;2735:18;2727:26;;2763:93;2853:1;2842:9;2838:17;2829:6;2763:93;:::i;:::-;2597:266;;;;:::o;2869:96::-;2906:7;2935:24;2953:5;2935:24;:::i;:::-;2924:35;;2869:96;;;:::o;2971:118::-;3058:24;3076:5;3058:24;:::i;:::-;3053:3;3046:37;2971:118;;:::o;3095:222::-;3188:4;3226:2;3215:9;3211:18;3203:26;;3239:71;3307:1;3296:9;3292:17;3283:6;3239:71;:::i;:::-;3095:222;;;;:::o;3404:117::-;3513:1;3510;3503:12;3650:122;3723:24;3741:5;3723:24;:::i;:::-;3716:5;3713:35;3703:63;;3762:1;3759;3752:12;3703:63;3650:122;:::o;3778:139::-;3824:5;3862:6;3849:20;3840:29;;3878:33;3905:5;3878:33;:::i;:::-;3778:139;;;;:::o;3923:122::-;3996:24;4014:5;3996:24;:::i;:::-;3989:5;3986:35;3976:63;;4035:1;4032;4025:12;3976:63;3923:122;:::o;4051:139::-;4097:5;4135:6;4122:20;4113:29;;4151:33;4178:5;4151:33;:::i;:::-;4051:139;;;;:::o;4196:474::-;4264:6;4272;4321:2;4309:9;4300:7;4296:23;4292:32;4289:119;;;4327:79;;:::i;:::-;4289:119;4447:1;4472:53;4517:7;4508:6;4497:9;4493:22;4472:53;:::i;:::-;4462:63;;4418:117;4574:2;4600:53;4645:7;4636:6;4625:9;4621:22;4600:53;:::i;:::-;4590:63;;4545:118;4196:474;;;;;:::o;4676:90::-;4710:7;4753:5;4746:13;4739:21;4728:32;;4676:90;;;:::o;4772:109::-;4853:21;4868:5;4853:21;:::i;:::-;4848:3;4841:34;4772:109;;:::o;4887:210::-;4974:4;5012:2;5001:9;4997:18;4989:26;;5025:65;5087:1;5076:9;5072:17;5063:6;5025:65;:::i;:::-;4887:210;;;;:::o;5103:619::-;5180:6;5188;5196;5245:2;5233:9;5224:7;5220:23;5216:32;5213:119;;;5251:79;;:::i;:::-;5213:119;5371:1;5396:53;5441:7;5432:6;5421:9;5417:22;5396:53;:::i;:::-;5386:63;;5342:117;5498:2;5524:53;5569:7;5560:6;5549:9;5545:22;5524:53;:::i;:::-;5514:63;;5469:118;5626:2;5652:53;5697:7;5688:6;5677:9;5673:22;5652:53;:::i;:::-;5642:63;;5597:118;5103:619;;;;;:::o;5728:86::-;5763:7;5803:4;5796:5;5792:16;5781:27;;5728:86;;;:::o;5820:112::-;5903:22;5919:5;5903:22;:::i;:::-;5898:3;5891:35;5820:112;;:::o;5938:214::-;6027:4;6065:2;6054:9;6050:18;6042:26;;6078:67;6142:1;6131:9;6127:17;6118:6;6078:67;:::i;:::-;5938:214;;;;:::o;6158:329::-;6217:6;6266:2;6254:9;6245:7;6241:23;6237:32;6234:119;;;6272:79;;:::i;:::-;6234:119;6392:1;6417:53;6462:7;6453:6;6442:9;6438:22;6417:53;:::i;:::-;6407:63;;6363:117;6158:329;;;;:::o;6493:116::-;6563:21;6578:5;6563:21;:::i;:::-;6556:5;6553:32;6543:60;;6599:1;6596;6589:12;6543:60;6493:116;:::o;6615:133::-;6658:5;6696:6;6683:20;6674:29;;6712:30;6736:5;6712:30;:::i;:::-;6615:133;;;;:::o;6754:323::-;6810:6;6859:2;6847:9;6838:7;6834:23;6830:32;6827:119;;;6865:79;;:::i;:::-;6827:119;6985:1;7010:50;7052:7;7043:6;7032:9;7028:22;7010:50;:::i;:::-;7000:60;;6956:114;6754:323;;;;:::o;7083:474::-;7151:6;7159;7208:2;7196:9;7187:7;7183:23;7179:32;7176:119;;;7214:79;;:::i;:::-;7176:119;7334:1;7359:53;7404:7;7395:6;7384:9;7380:22;7359:53;:::i;:::-;7349:63;;7305:117;7461:2;7487:53;7532:7;7523:6;7512:9;7508:22;7487:53;:::i;:::-;7477:63;;7432:118;7083:474;;;;;:::o;7563:329::-;7622:6;7671:2;7659:9;7650:7;7646:23;7642:32;7639:119;;;7677:79;;:::i;:::-;7639:119;7797:1;7822:53;7867:7;7858:6;7847:9;7843:22;7822:53;:::i;:::-;7812:63;;7768:117;7563:329;;;;:::o;7898:468::-;7963:6;7971;8020:2;8008:9;7999:7;7995:23;7991:32;7988:119;;;8026:79;;:::i;:::-;7988:119;8146:1;8171:53;8216:7;8207:6;8196:9;8192:22;8171:53;:::i;:::-;8161:63;;8117:117;8273:2;8299:50;8341:7;8332:6;8321:9;8317:22;8299:50;:::i;:::-;8289:60;;8244:115;7898:468;;;;;:::o;8372:462::-;8434:6;8442;8491:2;8479:9;8470:7;8466:23;8462:32;8459:119;;;8497:79;;:::i;:::-;8459:119;8617:1;8642:50;8684:7;8675:6;8664:9;8660:22;8642:50;:::i;:::-;8632:60;;8588:114;8741:2;8767:50;8809:7;8800:6;8789:9;8785:22;8767:50;:::i;:::-;8757:60;;8712:115;8372:462;;;;;:::o;8840:474::-;8908:6;8916;8965:2;8953:9;8944:7;8940:23;8936:32;8933:119;;;8971:79;;:::i;:::-;8933:119;9091:1;9116:53;9161:7;9152:6;9141:9;9137:22;9116:53;:::i;:::-;9106:63;;9062:117;9218:2;9244:53;9289:7;9280:6;9269:9;9265:22;9244:53;:::i;:::-;9234:63;;9189:118;8840:474;;;;;:::o;9320:180::-;9368:77;9365:1;9358:88;9465:4;9462:1;9455:15;9489:4;9486:1;9479:15;9506:320;9550:6;9587:1;9581:4;9577:12;9567:22;;9634:1;9628:4;9624:12;9655:18;9645:81;;9711:4;9703:6;9699:17;9689:27;;9645:81;9773:2;9765:6;9762:14;9742:18;9739:38;9736:84;;9792:18;;:::i;:::-;9736:84;9557:269;9506:320;;;:::o;9832:182::-;9972:34;9968:1;9960:6;9956:14;9949:58;9832:182;:::o;10020:366::-;10162:3;10183:67;10247:2;10242:3;10183:67;:::i;:::-;10176:74;;10259:93;10348:3;10259:93;:::i;:::-;10377:2;10372:3;10368:12;10361:19;;10020:366;;;:::o;10392:419::-;10558:4;10596:2;10585:9;10581:18;10573:26;;10645:9;10639:4;10635:20;10631:1;10620:9;10616:17;10609:47;10673:131;10799:4;10673:131;:::i;:::-;10665:139;;10392:419;;;:::o;10817:332::-;10938:4;10976:2;10965:9;10961:18;10953:26;;10989:71;11057:1;11046:9;11042:17;11033:6;10989:71;:::i;:::-;11070:72;11138:2;11127:9;11123:18;11114:6;11070:72;:::i;:::-;10817:332;;;;;:::o;11155:98::-;11206:6;11240:5;11234:12;11224:22;;11155:98;;;:::o;11259:147::-;11360:11;11397:3;11382:18;;11259:147;;;;:::o;11412:386::-;11516:3;11544:38;11576:5;11544:38;:::i;:::-;11598:88;11679:6;11674:3;11598:88;:::i;:::-;11591:95;;11695:65;11753:6;11748:3;11741:4;11734:5;11730:16;11695:65;:::i;:::-;11785:6;11780:3;11776:16;11769:23;;11520:278;11412:386;;;;:::o;11804:271::-;11934:3;11956:93;12045:3;12036:6;11956:93;:::i;:::-;11949:100;;12066:3;12059:10;;11804:271;;;;:::o;12081:170::-;12221:22;12217:1;12209:6;12205:14;12198:46;12081:170;:::o;12257:366::-;12399:3;12420:67;12484:2;12479:3;12420:67;:::i;:::-;12413:74;;12496:93;12585:3;12496:93;:::i;:::-;12614:2;12609:3;12605:12;12598:19;;12257:366;;;:::o;12629:419::-;12795:4;12833:2;12822:9;12818:18;12810:26;;12882:9;12876:4;12872:20;12868:1;12857:9;12853:17;12846:47;12910:131;13036:4;12910:131;:::i;:::-;12902:139;;12629:419;;;:::o;13054:114::-;;:::o;13174:398::-;13333:3;13354:83;13435:1;13430:3;13354:83;:::i;:::-;13347:90;;13446:93;13535:3;13446:93;:::i;:::-;13564:1;13559:3;13555:11;13548:18;;13174:398;;;:::o;13578:379::-;13762:3;13784:147;13927:3;13784:147;:::i;:::-;13777:154;;13948:3;13941:10;;13578:379;;;:::o;13963:170::-;14103:22;14099:1;14091:6;14087:14;14080:46;13963:170;:::o;14139:366::-;14281:3;14302:67;14366:2;14361:3;14302:67;:::i;:::-;14295:74;;14378:93;14467:3;14378:93;:::i;:::-;14496:2;14491:3;14487:12;14480:19;;14139:366;;;:::o;14511:419::-;14677:4;14715:2;14704:9;14700:18;14692:26;;14764:9;14758:4;14754:20;14750:1;14739:9;14735:17;14728:47;14792:131;14918:4;14792:131;:::i;:::-;14784:139;;14511:419;;;:::o;14936:225::-;15076:34;15072:1;15064:6;15060:14;15053:58;15145:8;15140:2;15132:6;15128:15;15121:33;14936:225;:::o;15167:366::-;15309:3;15330:67;15394:2;15389:3;15330:67;:::i;:::-;15323:74;;15406:93;15495:3;15406:93;:::i;:::-;15524:2;15519:3;15515:12;15508:19;;15167:366;;;:::o;15539:419::-;15705:4;15743:2;15732:9;15728:18;15720:26;;15792:9;15786:4;15782:20;15778:1;15767:9;15763:17;15756:47;15820:131;15946:4;15820:131;:::i;:::-;15812:139;;15539:419;;;:::o;15964:171::-;16104:23;16100:1;16092:6;16088:14;16081:47;15964:171;:::o;16141:366::-;16283:3;16304:67;16368:2;16363:3;16304:67;:::i;:::-;16297:74;;16380:93;16469:3;16380:93;:::i;:::-;16498:2;16493:3;16489:12;16482:19;;16141:366;;;:::o;16513:419::-;16679:4;16717:2;16706:9;16702:18;16694:26;;16766:9;16760:4;16756:20;16752:1;16741:9;16737:17;16730:47;16794:131;16920:4;16794:131;:::i;:::-;16786:139;;16513:419;;;:::o;16938:223::-;17078:34;17074:1;17066:6;17062:14;17055:58;17147:6;17142:2;17134:6;17130:15;17123:31;16938:223;:::o;17167:366::-;17309:3;17330:67;17394:2;17389:3;17330:67;:::i;:::-;17323:74;;17406:93;17495:3;17406:93;:::i;:::-;17524:2;17519:3;17515:12;17508:19;;17167:366;;;:::o;17539:419::-;17705:4;17743:2;17732:9;17728:18;17720:26;;17792:9;17786:4;17782:20;17778:1;17767:9;17763:17;17756:47;17820:131;17946:4;17820:131;:::i;:::-;17812:139;;17539:419;;;:::o;17964:221::-;18104:34;18100:1;18092:6;18088:14;18081:58;18173:4;18168:2;18160:6;18156:15;18149:29;17964:221;:::o;18191:366::-;18333:3;18354:67;18418:2;18413:3;18354:67;:::i;:::-;18347:74;;18430:93;18519:3;18430:93;:::i;:::-;18548:2;18543:3;18539:12;18532:19;;18191:366;;;:::o;18563:419::-;18729:4;18767:2;18756:9;18752:18;18744:26;;18816:9;18810:4;18806:20;18802:1;18791:9;18787:17;18780:47;18844:131;18970:4;18844:131;:::i;:::-;18836:139;;18563:419;;;:::o;18988:224::-;19128:34;19124:1;19116:6;19112:14;19105:58;19197:7;19192:2;19184:6;19180:15;19173:32;18988:224;:::o;19218:366::-;19360:3;19381:67;19445:2;19440:3;19381:67;:::i;:::-;19374:74;;19457:93;19546:3;19457:93;:::i;:::-;19575:2;19570:3;19566:12;19559:19;;19218:366;;;:::o;19590:419::-;19756:4;19794:2;19783:9;19779:18;19771:26;;19843:9;19837:4;19833:20;19829:1;19818:9;19814:17;19807:47;19871:131;19997:4;19871:131;:::i;:::-;19863:139;;19590:419;;;:::o;20015:222::-;20155:34;20151:1;20143:6;20139:14;20132:58;20224:5;20219:2;20211:6;20207:15;20200:30;20015:222;:::o;20243:366::-;20385:3;20406:67;20470:2;20465:3;20406:67;:::i;:::-;20399:74;;20482:93;20571:3;20482:93;:::i;:::-;20600:2;20595:3;20591:12;20584:19;;20243:366;;;:::o;20615:419::-;20781:4;20819:2;20808:9;20804:18;20796:26;;20868:9;20862:4;20858:20;20854:1;20843:9;20839:17;20832:47;20896:131;21022:4;20896:131;:::i;:::-;20888:139;;20615:419;;;:::o;21040:228::-;21180:34;21176:1;21168:6;21164:14;21157:58;21249:11;21244:2;21236:6;21232:15;21225:36;21040:228;:::o;21274:366::-;21416:3;21437:67;21501:2;21496:3;21437:67;:::i;:::-;21430:74;;21513:93;21602:3;21513:93;:::i;:::-;21631:2;21626:3;21622:12;21615:19;;21274:366;;;:::o;21646:419::-;21812:4;21850:2;21839:9;21835:18;21827:26;;21899:9;21893:4;21889:20;21885:1;21874:9;21870:17;21863:47;21927:131;22053:4;21927:131;:::i;:::-;21919:139;;21646:419;;;:::o;22071:176::-;22211:28;22207:1;22199:6;22195:14;22188:52;22071:176;:::o;22253:366::-;22395:3;22416:67;22480:2;22475:3;22416:67;:::i;:::-;22409:74;;22492:93;22581:3;22492:93;:::i;:::-;22610:2;22605:3;22601:12;22594:19;;22253:366;;;:::o;22625:419::-;22791:4;22829:2;22818:9;22814:18;22806:26;;22878:9;22872:4;22868:20;22864:1;22853:9;22849:17;22842:47;22906:131;23032:4;22906:131;:::i;:::-;22898:139;;22625:419;;;:::o;23050:227::-;23190:34;23186:1;23178:6;23174:14;23167:58;23259:10;23254:2;23246:6;23242:15;23235:35;23050:227;:::o;23283:366::-;23425:3;23446:67;23510:2;23505:3;23446:67;:::i;:::-;23439:74;;23522:93;23611:3;23522:93;:::i;:::-;23640:2;23635:3;23631:12;23624:19;;23283:366;;;:::o;23655:419::-;23821:4;23859:2;23848:9;23844:18;23836:26;;23908:9;23902:4;23898:20;23894:1;23883:9;23879:17;23872:47;23936:131;24062:4;23936:131;:::i;:::-;23928:139;;23655:419;;;:::o;24080:177::-;24220:29;24216:1;24208:6;24204:14;24197:53;24080:177;:::o;24263:366::-;24405:3;24426:67;24490:2;24485:3;24426:67;:::i;:::-;24419:74;;24502:93;24591:3;24502:93;:::i;:::-;24620:2;24615:3;24611:12;24604:19;;24263:366;;;:::o;24635:419::-;24801:4;24839:2;24828:9;24824:18;24816:26;;24888:9;24882:4;24878:20;24874:1;24863:9;24859:17;24852:47;24916:131;25042:4;24916:131;:::i;:::-;24908:139;;24635:419;;;:::o;25060:180::-;25108:77;25105:1;25098:88;25205:4;25202:1;25195:15;25229:4;25226:1;25219:15;25246:194;25286:4;25306:20;25324:1;25306:20;:::i;:::-;25301:25;;25340:20;25358:1;25340:20;:::i;:::-;25335:25;;25384:1;25381;25377:9;25369:17;;25408:1;25402:4;25399:11;25396:37;;;25413:18;;:::i;:::-;25396:37;25246:194;;;;:::o;25446:191::-;25486:3;25505:20;25523:1;25505:20;:::i;:::-;25500:25;;25539:20;25557:1;25539:20;:::i;:::-;25534:25;;25582:1;25579;25575:9;25568:16;;25603:3;25600:1;25597:10;25594:36;;;25610:18;;:::i;:::-;25594:36;25446:191;;;;:::o;25643:177::-;25783:29;25779:1;25771:6;25767:14;25760:53;25643:177;:::o;25826:366::-;25968:3;25989:67;26053:2;26048:3;25989:67;:::i;:::-;25982:74;;26065:93;26154:3;26065:93;:::i;:::-;26183:2;26178:3;26174:12;26167:19;;25826:366;;;:::o;26198:419::-;26364:4;26402:2;26391:9;26387:18;26379:26;;26451:9;26445:4;26441:20;26437:1;26426:9;26422:17;26415:47;26479:131;26605:4;26479:131;:::i;:::-;26471:139;;26198:419;;;:::o;26623:180::-;26671:77;26668:1;26661:88;26768:4;26765:1;26758:15;26792:4;26789:1;26782:15;26809:180;26857:77;26854:1;26847:88;26954:4;26951:1;26944:15;26978:4;26975:1;26968:15;26995:143;27052:5;27083:6;27077:13;27068:22;;27099:33;27126:5;27099:33;:::i;:::-;26995:143;;;;:::o;27144:351::-;27214:6;27263:2;27251:9;27242:7;27238:23;27234:32;27231:119;;;27269:79;;:::i;:::-;27231:119;27389:1;27414:64;27470:7;27461:6;27450:9;27446:22;27414:64;:::i;:::-;27404:74;;27360:128;27144:351;;;;:::o;27501:85::-;27546:7;27575:5;27564:16;;27501:85;;;:::o;27592:158::-;27650:9;27683:61;27701:42;27710:32;27736:5;27710:32;:::i;:::-;27701:42;:::i;:::-;27683:61;:::i;:::-;27670:74;;27592:158;;;:::o;27756:147::-;27851:45;27890:5;27851:45;:::i;:::-;27846:3;27839:58;27756:147;;:::o;27909:114::-;27976:6;28010:5;28004:12;27994:22;;27909:114;;;:::o;28029:184::-;28128:11;28162:6;28157:3;28150:19;28202:4;28197:3;28193:14;28178:29;;28029:184;;;;:::o;28219:132::-;28286:4;28309:3;28301:11;;28339:4;28334:3;28330:14;28322:22;;28219:132;;;:::o;28357:108::-;28434:24;28452:5;28434:24;:::i;:::-;28429:3;28422:37;28357:108;;:::o;28471:179::-;28540:10;28561:46;28603:3;28595:6;28561:46;:::i;:::-;28639:4;28634:3;28630:14;28616:28;;28471:179;;;;:::o;28656:113::-;28726:4;28758;28753:3;28749:14;28741:22;;28656:113;;;:::o;28805:732::-;28924:3;28953:54;29001:5;28953:54;:::i;:::-;29023:86;29102:6;29097:3;29023:86;:::i;:::-;29016:93;;29133:56;29183:5;29133:56;:::i;:::-;29212:7;29243:1;29228:284;29253:6;29250:1;29247:13;29228:284;;;29329:6;29323:13;29356:63;29415:3;29400:13;29356:63;:::i;:::-;29349:70;;29442:60;29495:6;29442:60;:::i;:::-;29432:70;;29288:224;29275:1;29272;29268:9;29263:14;;29228:284;;;29232:14;29528:3;29521:10;;28929:608;;;28805:732;;;;:::o;29543:831::-;29806:4;29844:3;29833:9;29829:19;29821:27;;29858:71;29926:1;29915:9;29911:17;29902:6;29858:71;:::i;:::-;29939:80;30015:2;30004:9;30000:18;29991:6;29939:80;:::i;:::-;30066:9;30060:4;30056:20;30051:2;30040:9;30036:18;30029:48;30094:108;30197:4;30188:6;30094:108;:::i;:::-;30086:116;;30212:72;30280:2;30269:9;30265:18;30256:6;30212:72;:::i;:::-;30294:73;30362:3;30351:9;30347:19;30338:6;30294:73;:::i;:::-;29543:831;;;;;;;;:::o;30380:483::-;30551:4;30589:2;30578:9;30574:18;30566:26;;30602:71;30670:1;30659:9;30655:17;30646:6;30602:71;:::i;:::-;30720:9;30714:4;30710:20;30705:2;30694:9;30690:18;30683:48;30748:108;30851:4;30842:6;30748:108;:::i;:::-;30740:116;;30380:483;;;;;:::o;30869:410::-;30909:7;30932:20;30950:1;30932:20;:::i;:::-;30927:25;;30966:20;30984:1;30966:20;:::i;:::-;30961:25;;31021:1;31018;31014:9;31043:30;31061:11;31043:30;:::i;:::-;31032:41;;31222:1;31213:7;31209:15;31206:1;31203:22;31183:1;31176:9;31156:83;31133:139;;31252:18;;:::i;:::-;31133:139;30917:362;30869:410;;;;:::o;31285:180::-;31333:77;31330:1;31323:88;31430:4;31427:1;31420:15;31454:4;31451:1;31444:15;31471:185;31511:1;31528:20;31546:1;31528:20;:::i;:::-;31523:25;;31562:20;31580:1;31562:20;:::i;:::-;31557:25;;31601:1;31591:35;;31606:18;;:::i;:::-;31591:35;31648:1;31645;31641:9;31636:14;;31471:185;;;;:::o;31662:220::-;31802:34;31798:1;31790:6;31786:14;31779:58;31871:3;31866:2;31858:6;31854:15;31847:28;31662:220;:::o;31888:366::-;32030:3;32051:67;32115:2;32110:3;32051:67;:::i;:::-;32044:74;;32127:93;32216:3;32127:93;:::i;:::-;32245:2;32240:3;32236:12;32229:19;;31888:366;;;:::o;32260:419::-;32426:4;32464:2;32453:9;32449:18;32441:26;;32513:9;32507:4;32503:20;32499:1;32488:9;32484:17;32477:47;32541:131;32667:4;32541:131;:::i;:::-;32533:139;;32260:419;;;:::o

Swarm Source

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