ETH Price: $3,468.84 (-1.08%)
Gas: 2 Gwei

Token

anonymous (anon)
 

Overview

Max Total Supply

100,000,000 anon

Holders

151

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
434,380.0497531 anon

Value
$0.00
0x81e970671207196a3cd7cdc53e3ffc6dda245f86
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ANON

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

                    ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⡀⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠈⠄⠄⠄⠁⠄⠁⠄⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠄⠄⣀⣀⣤⣤⣴⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⣦⣤⣤⣄⣀⡀⠄⠄⠄⠄⠄
                    ⠄⠄⠄⠄⣴⣿⣿⡿⣿⢿⣟⣿⣻⣟⡿⣟⣿⣟⡿⣟⣿⣻⣟⣿⣻⢿⣻⡿⣿⢿⣷⣆⠄⠄⠄
                    ⠄⠄⠄⢘⣿⢯⣷⡿⡿⡿⢿⢿⣷⣯⡿⣽⣞⣷⣻⢯⣷⣻⣾⡿⡿⢿⢿⢿⢯⣟⣞⡮⡀⠄⠄
                    ⠄⠄⠄⢸⢞⠟⠃⣉⢉⠉⠉⠓⠫⢿⣿⣷⢷⣻⣞⣿⣾⡟⠽⠚⠊⠉⠉⠉⠙⠻⣞⢵⠂⠄⠄
                    ⠄⠄⠄⢜⢯⣺⢿⣻⣿⣿⣷⣔⡄⠄⠈⠛⣿⣿⡾⠋⠁⠄⠄⣄⣶⣾⣿⡿⣿⡳⡌⡗⡅⠄⠄
                    ⠄⠄⠄⢽⢱⢳⢹⡪⡞⠮⠯⢯⡻⡬⡐⢨⢿⣿⣿⢀⠐⡥⣻⡻⠯⡳⢳⢹⢜⢜⢜⢎⠆⠄⠄
                    ⠄⠄⠠⣻⢌⠘⠌⡂⠈⠁⠉⠁⠘⠑⢧⣕⣿⣿⣿⢤⡪⠚⠂⠈⠁⠁⠁⠂⡑⠡⡈⢮⠅⠄⠄
                    ⠄⠄⠠⣳⣿⣿⣽⣭⣶⣶⣶⣶⣶⣺⣟⣾⣻⣿⣯⢯⢿⣳⣶⣶⣶⣖⣶⣮⣭⣷⣽⣗⠍⠄⠄
                    ⠄⠄⢀⢻⡿⡿⣟⣿⣻⣽⣟⣿⢯⣟⣞⡷⣿⣿⣯⢿⢽⢯⣿⣻⣟⣿⣻⣟⣿⣻⢿⣿⢀⠄⠄
                    ⠄⠄⠄⡑⡏⠯⡯⡳⡯⣗⢯⢟⡽⣗⣯⣟⣿⣿⣾⣫⢿⣽⠾⡽⣺⢳⡫⡞⡗⡝⢕⠕⠄⠄⠄
                    ⠄⠄⠄⢂⡎⠅⡃⢇⠇⠇⣃⣧⡺⡻⡳⡫⣿⡿⣟⠞⠽⠯⢧⣅⣃⠣⠱⡑⡑⠨⢐⢌⠂⠄⠄
                    ⠄⠄⠄⠐⠼⣦⢀⠄⣶⣿⢿⣿⣧⣄⡌⠂⠢⠩⠂⠑⣁⣅⣾⢿⣟⣷⠦⠄⠄⡤⡇⡪⠄⠄⠄
                    ⠄⠄⠄⠄⠨⢻⣧⡅⡈⠛⠿⠿⠿⠛⠁⠄⢀⡀⠄⠄⠘⠻⠿⠿⠯⠓⠁⢠⣱⡿⢑⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠈⢌⢿⣷⡐⠤⣀⣀⣂⣀⢀⢀⡓⠝⡂⡀⢀⢀⢀⣀⣀⠤⢊⣼⡟⡡⡁⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠄⠈⢢⠚⣿⣄⠈⠉⠛⠛⠟⠿⠿⠟⠿⠻⠻⠛⠛⠉⠄⣠⠾⢑⠰⠈⠄⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠄⠄⠄⠑⢌⠿⣦⡡⣱⣸⣸⣆⠄⠄⠄⣰⣕⢔⢔⠡⣼⠞⡡⠁⠁⠄⠄⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠑⢝⢷⣕⡷⣿⡿⠄⠄⠠⣿⣯⣯⡳⡽⡋⠌⠄⠄⠄⠄⠄⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠙⢮⣿⣽⣯⠄⠄⢨⣿⣿⡷⡫⠃⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠘⠙⠝⠂⠄⢘⠋⠃⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
                    ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄             
           ___                                                                    
          /   |   ____   ____    ____    __  __   ____ ___   ____   __  __   _____
         / /| |  / __ \ / __ \  / __ \  / / / /  / __ `__ \ / __ \ / / / /  / ___/
        / ___ | / / / // /_/ / / / / / / /_/ /  / / / / / // /_/ // /_/ /  (__  ) 
       /_/  |_|/_/ /_/ \____/ /_/ /_/  \__, /  /_/ /_/ /_/ \____/ \__,_/  /____/  
                                      /____/                                      
                                                                                       
                                                                                                                     
-> Telegram: https://t.me/anontokenerc
-> Twitter: https://x.com/anoncoinerc
-> Website: https://anoncoin.app

*/

// SPDX-License-Identifier:MIT

pragma solidity ^0.8.16;

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 getPair(address tokenA, address tokenB) external view returns (address pair);
    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 ANON is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private _name = "anonymous";
    string private _symbol = "anon";
    uint8 private _decimals = 8; 

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

    uint _buyTax = 1;     
    uint _sellTax = 1;     

    address public developmentWallet = address(0xA60d00A31223F26BE50D2271fFd70B1c4745cbec);

    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 = 100_000_000 * 10**_decimals;

    uint256 public _maxTxAmount =  _totalSupply.mul(15).div(1000);     // 1.5%
    uint256 public _walletMax = _totalSupply.mul(15).div(1000);        // 1.5%

    uint256 public swapThreshold = 50_000 * 10**_decimals;

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

    IDexSwapRouter public dexRouter;
    address public dexPair;

    bool inSwap;

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

    constructor() {

        address dev = address(0xf54be7946af6e1020e3602be61B3e61C09e7Db0D);

        IDexSwapRouter _dexRouter = IDexSwapRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        dexRouter = _dexRouter;
        
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[dev] = true;
        isExcludedFromFee[address(dexRouter)] = true;

        isWalletLimitExempt[dev] = true;
        isWalletLimitExempt[address(dexRouter)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[deadAddress] = true;
        isWalletLimitExempt[zeroAddress] = true;
        
        isTxLimitExempt[deadAddress] = true;
        isTxLimitExempt[zeroAddress] = true;
        isTxLimitExempt[dev] = true;
        isTxLimitExempt[address(this)] = true;
        isTxLimitExempt[address(dexRouter)] = true;

        isMarketPair[address(dexPair)] = true;
        isWalletLimitExempt[address(dexPair)] = true;

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

        _balances[dev] = _totalSupply;
        emit Transfer(address(0), dev, _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: Exceeds allowance"));
        return true;
    }

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

        require(sender != address(0));
        require(recipient != address(0));
        require(amount > 0);
    
        if (inSwap) {
            return _basicTransfer(sender, recipient, amount);
        }
        else {

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

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

            if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTxLimit) {
                require(amount <= _maxTxAmount, "Exceeds 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,"Exceeds Wallet");
            }

            _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(_buyTax).div(feedenominator);
            } 
            else if(isMarketPair[recipient]) { 
                feeAmount = amount.mul(_sellTax).div(feedenominator);
            }

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

            return amount.sub(feeAmount);
        }
        
    }

    function swapBack(uint contractBalance) internal swapping {

        if(swapbylimit) contractBalance = swapThreshold;

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

        (bool os,) = payable(developmentWallet).call{value: amountReceived}("");
        if(os) {}
    }

    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 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 setMarketPair(address _pair, bool _status) external onlyOwner {
        isMarketPair[_pair] = _status;
        if(_status) {
            isWalletLimitExempt[_pair] = _status;
        }
    }

    function setDevelopmentWallet(address _addr) external onlyOwner {
        developmentWallet = _addr;
    }

    function setFee(uint _buy, uint _sell) external onlyOwner {
        _buyTax = _buy;
        _sellTax = _sell;
    }
   
    function setSwapBackSettings(uint _threshold, bool _enabled, bool _limited)
        external
        onlyOwner
    {
        swapEnabled = _enabled;
        swapbylimit = _limited;
        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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"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":"address","name":"_addr","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFee","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":"uint256","name":"_threshold","type":"uint256"},{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"bool","name":"_limited","type":"bool"}],"name":"setSwapBackSettings","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"}]

60c06040526040518060400160405280600981526020017f616e6f6e796d6f75730000000000000000000000000000000000000000000000815250600190816200004a9190620010e1565b506040518060400160405280600481526020017f616e6f6e0000000000000000000000000000000000000000000000000000000081525060029081620000919190620010e1565b50600860035f6101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff168152506001600455600160055573a60d00a31223f26be50d2271ffd70b1c4745cbec60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460075560035f9054906101000a900460ff16600a6200019591906200134e565b6305f5e100620001a691906200139e565b600e55620001d76103e8620001c8600f600e5462000c7e60201b90919060201c565b62000cfe60201b90919060201c565b600f55620002086103e8620001f9600f600e5462000c7e60201b90919060201c565b62000cfe60201b90919060201c565b60105560035f9054906101000a900460ff16600a6200022891906200134e565b61c3506200023791906200139e565b601155600160125f6101000a81548160ff0219169083151502179055505f601260016101000a81548160ff0219169083151502179055506001601260026101000a81548160ff0219169083151502179055506001601260036101000a81548160ff021916908315150217905550348015620002b0575f80fd5b50620002d1620002c562000d4f60201b60201c565b62000d5660201b60201c565b5f73f54be7946af6e1020e3602be61b3e61c09e7db0d90505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200037191906200144d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003fd91906200144d565b6040518363ffffffff1660e01b81526004016200041c9291906200148e565b6020604051808303815f875af115801562000439573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200045f91906200144d565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600a5f601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f1960095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f1960095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600e5460085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e5460405162000c6e9190620014ca565b60405180910390a3505062001689565b5f80830362000c90575f905062000cf8565b5f828462000c9f91906200139e565b905082848262000cb0919062001512565b1462000cf3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cea90620015cd565b60405180910390fd5b809150505b92915050565b5f62000d4783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000e1760201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808311829062000e60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000e57919062001667565b60405180910390fd5b505f838562000e70919062001512565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000ef957607f821691505b60208210810362000f0f5762000f0e62000eb4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000f737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000f36565b62000f7f868362000f36565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000fc962000fc362000fbd8462000f97565b62000fa0565b62000f97565b9050919050565b5f819050919050565b62000fe48362000fa9565b62000ffc62000ff38262000fd0565b84845462000f42565b825550505050565b5f90565b6200101262001004565b6200101f81848462000fd9565b505050565b5b8181101562001046576200103a5f8262001008565b60018101905062001025565b5050565b601f82111562001095576200105f8162000f15565b6200106a8462000f27565b810160208510156200107a578190505b62001092620010898562000f27565b83018262001024565b50505b505050565b5f82821c905092915050565b5f620010b75f19846008026200109a565b1980831691505092915050565b5f620010d18383620010a6565b9150826002028217905092915050565b620010ec8262000e7d565b67ffffffffffffffff81111562001108576200110762000e87565b5b62001114825462000ee1565b620011218282856200104a565b5f60209050601f83116001811462001157575f841562001142578287015190505b6200114e8582620010c4565b865550620011bd565b601f198416620011678662000f15565b5f5b82811015620011905784890151825560018201915060208501945060208101905062001169565b86831015620011b05784890151620011ac601f891682620010a6565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200124f57808604811115620012275762001226620011c5565b5b6001851615620012375780820291505b80810290506200124785620011f2565b945062001207565b94509492505050565b5f826200126957600190506200133b565b8162001278575f90506200133b565b81600181146200129157600281146200129c57620012d2565b60019150506200133b565b60ff841115620012b157620012b0620011c5565b5b8360020a915084821115620012cb57620012ca620011c5565b5b506200133b565b5060208310610133831016604e8410600b84101617156200130c5782820a905083811115620013065762001305620011c5565b5b6200133b565b6200131b8484846001620011fe565b92509050818404811115620013355762001334620011c5565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200135a8262000f97565b9150620013678362001342565b9250620013967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462001258565b905092915050565b5f620013aa8262000f97565b9150620013b78362000f97565b9250828202620013c78162000f97565b91508282048414831517620013e157620013e0620011c5565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200141782620013ec565b9050919050565b62001429816200140b565b811462001434575f80fd5b50565b5f8151905062001447816200141e565b92915050565b5f60208284031215620014655762001464620013e8565b5b5f620014748482850162001437565b91505092915050565b62001488816200140b565b82525050565b5f604082019050620014a35f8301856200147d565b620014b260208301846200147d565b9392505050565b620014c48162000f97565b82525050565b5f602082019050620014df5f830184620014b9565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200151e8262000f97565b91506200152b8362000f97565b9250826200153e576200153d620014e5565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f620015b560218362001549565b9150620015c28262001559565b604082019050919050565b5f6020820190508181035f830152620015e681620015a7565b9050919050565b5f5b838110156200160c578082015181840152602081019050620015ef565b5f8484015250505050565b5f601f19601f8301169050919050565b5f620016338262000e7d565b6200163f818562001549565b935062001651818560208601620015ed565b6200165c8162001617565b840191505092915050565b5f6020820190508181035f83015262001681818462001627565b905092915050565b60805160a05161404a620016b95f395f8181610b550152610cbc01525f8181610c910152610ce8015261404a5ff3fe608060405260043610610280575f3560e01c806372ac24861161014e578063c16dd4a4116100c0578063e9fd339411610079578063e9fd3394146109a1578063ee828db3146109cb578063f242ab41146109f3578063f2fde38b14610a1d578063f71b9bbf14610a45578063f872858a14610a6d57610287565b8063c16dd4a41461089b578063c867d60b146108c3578063cea9d26f146108ff578063dd62ed3e14610927578063df8408fe14610963578063e6b2603b1461098b57610287565b806395d89b411161011257806395d89b411461077f578063a457c2d7146107a9578063a9059cbb146107e5578063ae85ade614610821578063b94b0aef14610849578063c04a54141461087157610287565b806372ac24861461069d5780637d1db4a5146106c5578063807c2d9c146106ef5780638b42507f146107195780638da5cb5b1461075557610287565b80633ecad271116101f25780635e42358c116101ab5780635e42358c146105a7578063651a8987146105d15780636ddd1713146105f957806370a0823114610623578063715018a61461065f578063728d41c91461067557610287565b80633ecad2711461048f5780634974d88f146104cb57806352f7c988146104f35780635342acb41461051b57806359fac517146105575780635c85974f1461057f57610287565b806318160ddd1161024457806318160ddd1461036f57806323b872dd1461039957806327c8f835146103d55780632b112e49146103ff578063313ce56714610429578063395093511461045357610287565b80630445b6671461028b57806306fdde03146102b55780630758d924146102df5780630930907b14610309578063095ea7b31461033357610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a97565b6040516102ac9190613261565b60405180910390f35b3480156102c0575f80fd5b506102c9610a9d565b6040516102d69190613304565b60405180910390f35b3480156102ea575f80fd5b506102f3610b2d565b604051610300919061339e565b60405180910390f35b348015610314575f80fd5b5061031d610b53565b60405161032a91906133d7565b60405180910390f35b34801561033e575f80fd5b5061035960048036038101906103549190613448565b610b77565b60405161036691906134a0565b60405180910390f35b34801561037a575f80fd5b50610383610b94565b6040516103909190613261565b60405180910390f35b3480156103a4575f80fd5b506103bf60048036038101906103ba91906134b9565b610b9d565b6040516103cc91906134a0565b60405180910390f35b3480156103e0575f80fd5b506103e9610c8f565b6040516103f691906133d7565b60405180910390f35b34801561040a575f80fd5b50610413610cb3565b6040516104209190613261565b60405180910390f35b348015610434575f80fd5b5061043d610d30565b60405161044a9190613524565b60405180910390f35b34801561045e575f80fd5b5061047960048036038101906104749190613448565b610d45565b60405161048691906134a0565b60405180910390f35b34801561049a575f80fd5b506104b560048036038101906104b0919061353d565b610df3565b6040516104c291906134a0565b60405180910390f35b3480156104d6575f80fd5b506104f160048036038101906104ec9190613592565b610e10565b005b3480156104fe575f80fd5b50610519600480360381019061051491906135bd565b610ea9565b005b348015610526575f80fd5b50610541600480360381019061053c919061353d565b610f37565b60405161054e91906134a0565b60405180910390f35b348015610562575f80fd5b5061057d6004803603810190610578919061353d565b610f54565b005b34801561058a575f80fd5b506105a560048036038101906105a091906135fb565b611014565b005b3480156105b2575f80fd5b506105bb61109a565b6040516105c891906134a0565b60405180910390f35b3480156105dc575f80fd5b506105f760048036038101906105f29190613626565b6110ad565b005b348015610604575f80fd5b5061060d611181565b60405161061a91906134a0565b60405180910390f35b34801561062e575f80fd5b506106496004803603810190610644919061353d565b611193565b6040516106569190613261565b60405180910390f35b34801561066a575f80fd5b506106736111d9565b005b348015610680575f80fd5b5061069b600480360381019061069691906135fb565b611260565b005b3480156106a8575f80fd5b506106c360048036038101906106be919061353d565b6112e6565b005b3480156106d0575f80fd5b506106d96113a5565b6040516106e69190613261565b60405180910390f35b3480156106fa575f80fd5b506107036113ab565b6040516107109190613261565b60405180910390f35b348015610724575f80fd5b5061073f600480360381019061073a919061353d565b6113b1565b60405161074c91906134a0565b60405180910390f35b348015610760575f80fd5b506107696113ce565b60405161077691906133d7565b60405180910390f35b34801561078a575f80fd5b506107936113f5565b6040516107a09190613304565b60405180910390f35b3480156107b4575f80fd5b506107cf60048036038101906107ca9190613448565b611485565b6040516107dc91906134a0565b60405180910390f35b3480156107f0575f80fd5b5061080b60048036038101906108069190613448565b61154d565b60405161081891906134a0565b60405180910390f35b34801561082c575f80fd5b5061084760048036038101906108429190613626565b61156b565b005b348015610854575f80fd5b5061086f600480360381019061086a9190613664565b61163f565b005b34801561087c575f80fd5b506108856116fa565b60405161089291906133d7565b60405180910390f35b3480156108a6575f80fd5b506108c160048036038101906108bc9190613626565b61171f565b005b3480156108ce575f80fd5b506108e960048036038101906108e4919061353d565b61184e565b6040516108f691906134a0565b60405180910390f35b34801561090a575f80fd5b50610925600480360381019061092091906134b9565b61186b565b005b348015610932575f80fd5b5061094d600480360381019061094891906136b4565b611a24565b60405161095a9190613261565b60405180910390f35b34801561096e575f80fd5b5061098960048036038101906109849190613626565b611aa6565b005b348015610996575f80fd5b5061099f611b7a565b005b3480156109ac575f80fd5b506109b5611ca1565b6040516109c291906134a0565b60405180910390f35b3480156109d6575f80fd5b506109f160048036038101906109ec9190613592565b611cb4565b005b3480156109fe575f80fd5b50610a07611d4d565b604051610a1491906133d7565b60405180910390f35b348015610a28575f80fd5b50610a436004803603810190610a3e919061353d565b611d72565b005b348015610a50575f80fd5b50610a6b6004803603810190610a66919061353d565b611e68565b005b348015610a78575f80fd5b50610a81611f27565b604051610a8e91906134a0565b60405180910390f35b60115481565b606060018054610aac9061371f565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad89061371f565b8015610b235780601f10610afa57610100808354040283529160200191610b23565b820191905f5260205f20905b815481529060010190602001808311610b0657829003601f168201915b5050505050905090565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610b8a610b83611f3a565b8484611f41565b6001905092915050565b5f600e54905090565b5f610ba9848484612104565b50610c8484610bb6611f3a565b610c7f856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060095f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c36611f3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ac9092919063ffffffff16565b611f41565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610d2b610ce07f0000000000000000000000000000000000000000000000000000000000000000611193565b610d1d610d0c7f0000000000000000000000000000000000000000000000000000000000000000611193565b600e5461270e90919063ffffffff16565b61270e90919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610de9610d51611f3a565b84610de48560095f610d61611f3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275790919063ffffffff16565b611f41565b6001905092915050565b600b602052805f5260405f205f915054906101000a900460ff1681565b610e18611f3a565b73ffffffffffffffffffffffffffffffffffffffff16610e366113ce565b73ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8390613799565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b610eb1611f3a565b73ffffffffffffffffffffffffffffffffffffffff16610ecf6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614610f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1c90613799565b60405180910390fd5b81600481905550806005819055505050565b600a602052805f5260405f205f915054906101000a900460ff1681565b610f5c611f3a565b73ffffffffffffffffffffffffffffffffffffffff16610f7a6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc790613799565b60405180910390fd5b80601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61101c611f3a565b73ffffffffffffffffffffffffffffffffffffffff1661103a6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790613799565b60405180910390fd5b80600f8190555050565b601260029054906101000a900460ff1681565b6110b5611f3a565b73ffffffffffffffffffffffffffffffffffffffff166110d36113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112090613799565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60125f9054906101000a900460ff1681565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6111e1611f3a565b73ffffffffffffffffffffffffffffffffffffffff166111ff6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90613799565b60405180910390fd5b61125e5f6127b4565b565b611268611f3a565b73ffffffffffffffffffffffffffffffffffffffff166112866113ce565b73ffffffffffffffffffffffffffffffffffffffff16146112dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d390613799565b60405180910390fd5b8060108190555050565b6112ee611f3a565b73ffffffffffffffffffffffffffffffffffffffff1661130c6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990613799565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60105481565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546114049061371f565b80601f01602080910402602001604051908101604052809291908181526020018280546114309061371f565b801561147b5780601f106114525761010080835404028352916020019161147b565b820191905f5260205f20905b81548152906001019060200180831161145e57829003601f168201915b5050505050905090565b5f611543611491611f3a565b8461153e85604051806060016040528060258152602001613ff06025913960095f6114ba611f3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ac9092919063ffffffff16565b611f41565b6001905092915050565b5f611560611559611f3a565b8484612104565b506001905092915050565b611573611f3a565b73ffffffffffffffffffffffffffffffffffffffff166115916113ce565b73ffffffffffffffffffffffffffffffffffffffff16146115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90613799565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611647611f3a565b73ffffffffffffffffffffffffffffffffffffffff166116656113ce565b73ffffffffffffffffffffffffffffffffffffffff16146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290613799565b60405180910390fd5b8160125f6101000a81548160ff02191690831515021790555080601260016101000a81548160ff02191690831515021790555082601181905550505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611727611f3a565b73ffffffffffffffffffffffffffffffffffffffff166117456113ce565b73ffffffffffffffffffffffffffffffffffffffff161461179b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179290613799565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550801561184a5780600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b600c602052805f5260405f205f915054906101000a900460ff1681565b611873611f3a565b73ffffffffffffffffffffffffffffffffffffffff166118916113ce565b73ffffffffffffffffffffffffffffffffffffffff16146118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90613799565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016119129291906137b7565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161199c9190613822565b5f604051808303815f865af19150503d805f81146119d5576040519150601f19603f3d011682016040523d82523d5f602084013e6119da565b606091505b5050905080611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1590613882565b60405180910390fd5b50505050565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611aae611f3a565b73ffffffffffffffffffffffffffffffffffffffff16611acc6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1990613799565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611b82611f3a565b73ffffffffffffffffffffffffffffffffffffffff16611ba06113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bed90613799565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611c1b906138c3565b5f6040518083038185875af1925050503d805f8114611c55576040519150601f19603f3d011682016040523d82523d5f602084013e611c5a565b606091505b5050905080611c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9590613921565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611cbc611f3a565b73ffffffffffffffffffffffffffffffffffffffff16611cda6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2790613799565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d7a611f3a565b73ffffffffffffffffffffffffffffffffffffffff16611d986113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613799565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e53906139af565b60405180910390fd5b611e65816127b4565b50565b611e70611f3a565b73ffffffffffffffffffffffffffffffffffffffff16611e8e6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb90613799565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690613a3d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361201d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201490613acb565b60405180910390fd5b8060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120f79190613261565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361213c575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612173575f80fd5b5f821161217e575f80fd5b601360149054906101000a900460ff16156121a55761219e848484612875565b90506126a5565b5f6121af30611193565b90505f60115482101590508080156121d45750601360149054906101000a900460ff16155b80156122275750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561223e575060125f9054906101000a900460ff165b80156122915750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122e45750600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122f3576122f282612a3f565b5b600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156123915750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123a95750601260029054906101000a900460ff165b156123f457600f548411156123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ea90613b33565b60405180910390fd5b5b61247b846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060085f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ac9092919063ffffffff16565b60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6124c78787612b41565b6124db576124d6878787612c9d565b6124dd565b845b9050601260039054906101000a900460ff1680156125425750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156125a7576010546125658261255789611193565b61275790919063ffffffff16565b11156125a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259d90613b9b565b60405180910390fd5b5b6125f78160085f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275790919063ffffffff16565b60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126959190613261565b60405180910390a3600193505050505b9392505050565b5f8383111582906126f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ea9190613304565b60405180910390fd5b505f83856127019190613be6565b9050809150509392505050565b5f61274f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126ac565b905092915050565b5f8082846127659190613c19565b9050838110156127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a190613c96565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6128fd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ac9092919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061298e8260085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275790919063ffffffff16565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a2c9190613261565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612a755760115490505b5f479050612a8282612eb6565b5f612a96824761270e90919063ffffffff16565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612ade906138c3565b5f6040518083038185875af1925050503d805f8114612b18576040519150601f19603f3d011682016040523d82523d5f602084013e612b1d565b606091505b505090505050505f601360146101000a81548160ff02191690831515021790555050565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612bdd5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612beb5760019050612c97565b600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c865750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c93575f9050612c97565b5f90505b92915050565b5f80600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d1e57612d17600754612d096004548661312890919063ffffffff16565b61319f90919063ffffffff16565b9050612d9a565b600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d9957612d96600754612d886005548661312890919063ffffffff16565b61319f90919063ffffffff16565b90505b5b5f811115612e9957612df28160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275790919063ffffffff16565b60085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e909190613261565b60405180910390a35b612eac818461270e90919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff811115612ed257612ed1613cb4565b5b604051908082528060200260200182016040528015612f005781602001602082028036833780820191505090505b50905030815f81518110612f1757612f16613ce1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fe09190613d22565b81600181518110612ff457612ff3613ce1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061305b30601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f41565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130be959493929190613e3d565b5f604051808303815f87803b1580156130d5575f80fd5b505af11580156130e7573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161311c929190613e95565b60405180910390a15050565b5f808303613138575f9050613199565b5f82846131459190613ec3565b90508284826131549190613f31565b14613194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318b90613fd1565b60405180910390fd5b809150505b92915050565b5f6131e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131e8565b905092915050565b5f808311829061322e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132259190613304565b60405180910390fd5b505f838561323c9190613f31565b9050809150509392505050565b5f819050919050565b61325b81613249565b82525050565b5f6020820190506132745f830184613252565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156132b1578082015181840152602081019050613296565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6132d68261327a565b6132e08185613284565b93506132f0818560208601613294565b6132f9816132bc565b840191505092915050565b5f6020820190508181035f83015261331c81846132cc565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61336661336161335c84613324565b613343565b613324565b9050919050565b5f6133778261334c565b9050919050565b5f6133888261336d565b9050919050565b6133988161337e565b82525050565b5f6020820190506133b15f83018461338f565b92915050565b5f6133c182613324565b9050919050565b6133d1816133b7565b82525050565b5f6020820190506133ea5f8301846133c8565b92915050565b5f80fd5b6133fd816133b7565b8114613407575f80fd5b50565b5f81359050613418816133f4565b92915050565b61342781613249565b8114613431575f80fd5b50565b5f813590506134428161341e565b92915050565b5f806040838503121561345e5761345d6133f0565b5b5f61346b8582860161340a565b925050602061347c85828601613434565b9150509250929050565b5f8115159050919050565b61349a81613486565b82525050565b5f6020820190506134b35f830184613491565b92915050565b5f805f606084860312156134d0576134cf6133f0565b5b5f6134dd8682870161340a565b93505060206134ee8682870161340a565b92505060406134ff86828701613434565b9150509250925092565b5f60ff82169050919050565b61351e81613509565b82525050565b5f6020820190506135375f830184613515565b92915050565b5f60208284031215613552576135516133f0565b5b5f61355f8482850161340a565b91505092915050565b61357181613486565b811461357b575f80fd5b50565b5f8135905061358c81613568565b92915050565b5f602082840312156135a7576135a66133f0565b5b5f6135b48482850161357e565b91505092915050565b5f80604083850312156135d3576135d26133f0565b5b5f6135e085828601613434565b92505060206135f185828601613434565b9150509250929050565b5f602082840312156136105761360f6133f0565b5b5f61361d84828501613434565b91505092915050565b5f806040838503121561363c5761363b6133f0565b5b5f6136498582860161340a565b925050602061365a8582860161357e565b9150509250929050565b5f805f6060848603121561367b5761367a6133f0565b5b5f61368886828701613434565b93505060206136998682870161357e565b92505060406136aa8682870161357e565b9150509250925092565b5f80604083850312156136ca576136c96133f0565b5b5f6136d78582860161340a565b92505060206136e88582860161340a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061373657607f821691505b602082108103613749576137486136f2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613783602083613284565b915061378e8261374f565b602082019050919050565b5f6020820190508181035f8301526137b081613777565b9050919050565b5f6040820190506137ca5f8301856133c8565b6137d76020830184613252565b9392505050565b5f81519050919050565b5f81905092915050565b5f6137fc826137de565b61380681856137e8565b9350613816818560208601613294565b80840191505092915050565b5f61382d82846137f2565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f61386c601483613284565b915061387782613838565b602082019050919050565b5f6020820190508181035f83015261389981613860565b9050919050565b50565b5f6138ae5f836137e8565b91506138b9826138a0565b5f82019050919050565b5f6138cd826138a3565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f61390b601483613284565b9150613916826138d7565b602082019050919050565b5f6020820190508181035f830152613938816138ff565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613999602683613284565b91506139a48261393f565b604082019050919050565b5f6020820190508181035f8301526139c68161398d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a27602483613284565b9150613a32826139cd565b604082019050919050565b5f6020820190508181035f830152613a5481613a1b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ab5602283613284565b9150613ac082613a5b565b604082019050919050565b5f6020820190508181035f830152613ae281613aa9565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613b1d601383613284565b9150613b2882613ae9565b602082019050919050565b5f6020820190508181035f830152613b4a81613b11565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f613b85600e83613284565b9150613b9082613b51565b602082019050919050565b5f6020820190508181035f830152613bb281613b79565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613bf082613249565b9150613bfb83613249565b9250828203905081811115613c1357613c12613bb9565b5b92915050565b5f613c2382613249565b9150613c2e83613249565b9250828201905080821115613c4657613c45613bb9565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c80601b83613284565b9150613c8b82613c4c565b602082019050919050565b5f6020820190508181035f830152613cad81613c74565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613d1c816133f4565b92915050565b5f60208284031215613d3757613d366133f0565b5b5f613d4484828501613d0e565b91505092915050565b5f819050919050565b5f613d70613d6b613d6684613d4d565b613343565b613249565b9050919050565b613d8081613d56565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613db8816133b7565b82525050565b5f613dc98383613daf565b60208301905092915050565b5f602082019050919050565b5f613deb82613d86565b613df58185613d90565b9350613e0083613da0565b805f5b83811015613e30578151613e178882613dbe565b9750613e2283613dd5565b925050600181019050613e03565b5085935050505092915050565b5f60a082019050613e505f830188613252565b613e5d6020830187613d77565b8181036040830152613e6f8186613de1565b9050613e7e60608301856133c8565b613e8b6080830184613252565b9695505050505050565b5f604082019050613ea85f830185613252565b8181036020830152613eba8184613de1565b90509392505050565b5f613ecd82613249565b9150613ed883613249565b9250828202613ee681613249565b91508282048414831517613efd57613efc613bb9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613f3b82613249565b9150613f4683613249565b925082613f5657613f55613f04565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613fbb602183613284565b9150613fc682613f61565b604082019050919050565b5f6020820190508181035f830152613fe881613faf565b905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205a1bae33df3f2b9885c4ad009c2439f2ec77061378ad1719094cb26bbdce837664736f6c63430008150033

Deployed Bytecode

0x608060405260043610610280575f3560e01c806372ac24861161014e578063c16dd4a4116100c0578063e9fd339411610079578063e9fd3394146109a1578063ee828db3146109cb578063f242ab41146109f3578063f2fde38b14610a1d578063f71b9bbf14610a45578063f872858a14610a6d57610287565b8063c16dd4a41461089b578063c867d60b146108c3578063cea9d26f146108ff578063dd62ed3e14610927578063df8408fe14610963578063e6b2603b1461098b57610287565b806395d89b411161011257806395d89b411461077f578063a457c2d7146107a9578063a9059cbb146107e5578063ae85ade614610821578063b94b0aef14610849578063c04a54141461087157610287565b806372ac24861461069d5780637d1db4a5146106c5578063807c2d9c146106ef5780638b42507f146107195780638da5cb5b1461075557610287565b80633ecad271116101f25780635e42358c116101ab5780635e42358c146105a7578063651a8987146105d15780636ddd1713146105f957806370a0823114610623578063715018a61461065f578063728d41c91461067557610287565b80633ecad2711461048f5780634974d88f146104cb57806352f7c988146104f35780635342acb41461051b57806359fac517146105575780635c85974f1461057f57610287565b806318160ddd1161024457806318160ddd1461036f57806323b872dd1461039957806327c8f835146103d55780632b112e49146103ff578063313ce56714610429578063395093511461045357610287565b80630445b6671461028b57806306fdde03146102b55780630758d924146102df5780630930907b14610309578063095ea7b31461033357610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a97565b6040516102ac9190613261565b60405180910390f35b3480156102c0575f80fd5b506102c9610a9d565b6040516102d69190613304565b60405180910390f35b3480156102ea575f80fd5b506102f3610b2d565b604051610300919061339e565b60405180910390f35b348015610314575f80fd5b5061031d610b53565b60405161032a91906133d7565b60405180910390f35b34801561033e575f80fd5b5061035960048036038101906103549190613448565b610b77565b60405161036691906134a0565b60405180910390f35b34801561037a575f80fd5b50610383610b94565b6040516103909190613261565b60405180910390f35b3480156103a4575f80fd5b506103bf60048036038101906103ba91906134b9565b610b9d565b6040516103cc91906134a0565b60405180910390f35b3480156103e0575f80fd5b506103e9610c8f565b6040516103f691906133d7565b60405180910390f35b34801561040a575f80fd5b50610413610cb3565b6040516104209190613261565b60405180910390f35b348015610434575f80fd5b5061043d610d30565b60405161044a9190613524565b60405180910390f35b34801561045e575f80fd5b5061047960048036038101906104749190613448565b610d45565b60405161048691906134a0565b60405180910390f35b34801561049a575f80fd5b506104b560048036038101906104b0919061353d565b610df3565b6040516104c291906134a0565b60405180910390f35b3480156104d6575f80fd5b506104f160048036038101906104ec9190613592565b610e10565b005b3480156104fe575f80fd5b50610519600480360381019061051491906135bd565b610ea9565b005b348015610526575f80fd5b50610541600480360381019061053c919061353d565b610f37565b60405161054e91906134a0565b60405180910390f35b348015610562575f80fd5b5061057d6004803603810190610578919061353d565b610f54565b005b34801561058a575f80fd5b506105a560048036038101906105a091906135fb565b611014565b005b3480156105b2575f80fd5b506105bb61109a565b6040516105c891906134a0565b60405180910390f35b3480156105dc575f80fd5b506105f760048036038101906105f29190613626565b6110ad565b005b348015610604575f80fd5b5061060d611181565b60405161061a91906134a0565b60405180910390f35b34801561062e575f80fd5b506106496004803603810190610644919061353d565b611193565b6040516106569190613261565b60405180910390f35b34801561066a575f80fd5b506106736111d9565b005b348015610680575f80fd5b5061069b600480360381019061069691906135fb565b611260565b005b3480156106a8575f80fd5b506106c360048036038101906106be919061353d565b6112e6565b005b3480156106d0575f80fd5b506106d96113a5565b6040516106e69190613261565b60405180910390f35b3480156106fa575f80fd5b506107036113ab565b6040516107109190613261565b60405180910390f35b348015610724575f80fd5b5061073f600480360381019061073a919061353d565b6113b1565b60405161074c91906134a0565b60405180910390f35b348015610760575f80fd5b506107696113ce565b60405161077691906133d7565b60405180910390f35b34801561078a575f80fd5b506107936113f5565b6040516107a09190613304565b60405180910390f35b3480156107b4575f80fd5b506107cf60048036038101906107ca9190613448565b611485565b6040516107dc91906134a0565b60405180910390f35b3480156107f0575f80fd5b5061080b60048036038101906108069190613448565b61154d565b60405161081891906134a0565b60405180910390f35b34801561082c575f80fd5b5061084760048036038101906108429190613626565b61156b565b005b348015610854575f80fd5b5061086f600480360381019061086a9190613664565b61163f565b005b34801561087c575f80fd5b506108856116fa565b60405161089291906133d7565b60405180910390f35b3480156108a6575f80fd5b506108c160048036038101906108bc9190613626565b61171f565b005b3480156108ce575f80fd5b506108e960048036038101906108e4919061353d565b61184e565b6040516108f691906134a0565b60405180910390f35b34801561090a575f80fd5b50610925600480360381019061092091906134b9565b61186b565b005b348015610932575f80fd5b5061094d600480360381019061094891906136b4565b611a24565b60405161095a9190613261565b60405180910390f35b34801561096e575f80fd5b5061098960048036038101906109849190613626565b611aa6565b005b348015610996575f80fd5b5061099f611b7a565b005b3480156109ac575f80fd5b506109b5611ca1565b6040516109c291906134a0565b60405180910390f35b3480156109d6575f80fd5b506109f160048036038101906109ec9190613592565b611cb4565b005b3480156109fe575f80fd5b50610a07611d4d565b604051610a1491906133d7565b60405180910390f35b348015610a28575f80fd5b50610a436004803603810190610a3e919061353d565b611d72565b005b348015610a50575f80fd5b50610a6b6004803603810190610a66919061353d565b611e68565b005b348015610a78575f80fd5b50610a81611f27565b604051610a8e91906134a0565b60405180910390f35b60115481565b606060018054610aac9061371f565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad89061371f565b8015610b235780601f10610afa57610100808354040283529160200191610b23565b820191905f5260205f20905b815481529060010190602001808311610b0657829003601f168201915b5050505050905090565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610b8a610b83611f3a565b8484611f41565b6001905092915050565b5f600e54905090565b5f610ba9848484612104565b50610c8484610bb6611f3a565b610c7f856040518060400160405280601881526020017f45524332303a204578636565647320616c6c6f77616e6365000000000000000081525060095f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c36611f3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ac9092919063ffffffff16565b611f41565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f610d2b610ce07f0000000000000000000000000000000000000000000000000000000000000000611193565b610d1d610d0c7f000000000000000000000000000000000000000000000000000000000000dead611193565b600e5461270e90919063ffffffff16565b61270e90919063ffffffff16565b905090565b5f60035f9054906101000a900460ff16905090565b5f610de9610d51611f3a565b84610de48560095f610d61611f3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275790919063ffffffff16565b611f41565b6001905092915050565b600b602052805f5260405f205f915054906101000a900460ff1681565b610e18611f3a565b73ffffffffffffffffffffffffffffffffffffffff16610e366113ce565b73ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8390613799565b60405180910390fd5b80601260036101000a81548160ff02191690831515021790555050565b610eb1611f3a565b73ffffffffffffffffffffffffffffffffffffffff16610ecf6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614610f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1c90613799565b60405180910390fd5b81600481905550806005819055505050565b600a602052805f5260405f205f915054906101000a900460ff1681565b610f5c611f3a565b73ffffffffffffffffffffffffffffffffffffffff16610f7a6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc790613799565b60405180910390fd5b80601260046101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61101c611f3a565b73ffffffffffffffffffffffffffffffffffffffff1661103a6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790613799565b60405180910390fd5b80600f8190555050565b601260029054906101000a900460ff1681565b6110b5611f3a565b73ffffffffffffffffffffffffffffffffffffffff166110d36113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112090613799565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60125f9054906101000a900460ff1681565b5f60085f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6111e1611f3a565b73ffffffffffffffffffffffffffffffffffffffff166111ff6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611255576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124c90613799565b60405180910390fd5b61125e5f6127b4565b565b611268611f3a565b73ffffffffffffffffffffffffffffffffffffffff166112866113ce565b73ffffffffffffffffffffffffffffffffffffffff16146112dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d390613799565b60405180910390fd5b8060108190555050565b6112ee611f3a565b73ffffffffffffffffffffffffffffffffffffffff1661130c6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990613799565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f5481565b60105481565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546114049061371f565b80601f01602080910402602001604051908101604052809291908181526020018280546114309061371f565b801561147b5780601f106114525761010080835404028352916020019161147b565b820191905f5260205f20905b81548152906001019060200180831161145e57829003601f168201915b5050505050905090565b5f611543611491611f3a565b8461153e85604051806060016040528060258152602001613ff06025913960095f6114ba611f3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ac9092919063ffffffff16565b611f41565b6001905092915050565b5f611560611559611f3a565b8484612104565b506001905092915050565b611573611f3a565b73ffffffffffffffffffffffffffffffffffffffff166115916113ce565b73ffffffffffffffffffffffffffffffffffffffff16146115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90613799565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611647611f3a565b73ffffffffffffffffffffffffffffffffffffffff166116656113ce565b73ffffffffffffffffffffffffffffffffffffffff16146116bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b290613799565b60405180910390fd5b8160125f6101000a81548160ff02191690831515021790555080601260016101000a81548160ff02191690831515021790555082601181905550505050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611727611f3a565b73ffffffffffffffffffffffffffffffffffffffff166117456113ce565b73ffffffffffffffffffffffffffffffffffffffff161461179b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179290613799565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550801561184a5780600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5050565b600c602052805f5260405f205f915054906101000a900460ff1681565b611873611f3a565b73ffffffffffffffffffffffffffffffffffffffff166118916113ce565b73ffffffffffffffffffffffffffffffffffffffff16146118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90613799565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1683836040516024016119129291906137b7565b6040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161199c9190613822565b5f604051808303815f865af19150503d805f81146119d5576040519150601f19603f3d011682016040523d82523d5f602084013e6119da565b606091505b5050905080611a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1590613882565b60405180910390fd5b50505050565b5f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611aae611f3a565b73ffffffffffffffffffffffffffffffffffffffff16611acc6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1990613799565b60405180910390fd5b80600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b611b82611f3a565b73ffffffffffffffffffffffffffffffffffffffff16611ba06113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611bf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bed90613799565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1647604051611c1b906138c3565b5f6040518083038185875af1925050503d805f8114611c55576040519150601f19603f3d011682016040523d82523d5f602084013e611c5a565b606091505b5050905080611c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9590613921565b60405180910390fd5b50565b601260019054906101000a900460ff1681565b611cbc611f3a565b73ffffffffffffffffffffffffffffffffffffffff16611cda6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2790613799565b60405180910390fd5b80601260026101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d7a611f3a565b73ffffffffffffffffffffffffffffffffffffffff16611d986113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590613799565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e53906139af565b60405180910390fd5b611e65816127b4565b50565b611e70611f3a565b73ffffffffffffffffffffffffffffffffffffffff16611e8e6113ce565b73ffffffffffffffffffffffffffffffffffffffff1614611ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edb90613799565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601260039054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611faf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa690613a3d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361201d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201490613acb565b60405180910390fd5b8060095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120f79190613261565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361213c575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612173575f80fd5b5f821161217e575f80fd5b601360149054906101000a900460ff16156121a55761219e848484612875565b90506126a5565b5f6121af30611193565b90505f60115482101590508080156121d45750601360149054906101000a900460ff16155b80156122275750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561223e575060125f9054906101000a900460ff165b80156122915750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122e45750600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156122f3576122f282612a3f565b5b600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156123915750600d5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156123a95750601260029054906101000a900460ff165b156123f457600f548411156123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ea90613b33565b60405180910390fd5b5b61247b846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060085f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ac9092919063ffffffff16565b60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f6124c78787612b41565b6124db576124d6878787612c9d565b6124dd565b845b9050601260039054906101000a900460ff1680156125425750600c5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156125a7576010546125658261255789611193565b61275790919063ffffffff16565b11156125a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259d90613b9b565b60405180910390fd5b5b6125f78160085f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275790919063ffffffff16565b60085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126959190613261565b60405180910390a3600193505050505b9392505050565b5f8383111582906126f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ea9190613304565b60405180910390fd5b505f83856127019190613be6565b9050809150509392505050565b5f61274f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126ac565b905092915050565b5f8082846127659190613c19565b9050838110156127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127a190613c96565b60405180910390fd5b8091505092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6128fd826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060085f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546126ac9092919063ffffffff16565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061298e8260085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275790919063ffffffff16565b60085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a2c9190613261565b60405180910390a3600190509392505050565b6001601360146101000a81548160ff021916908315150217905550601260019054906101000a900460ff1615612a755760115490505b5f479050612a8282612eb6565b5f612a96824761270e90919063ffffffff16565b90505f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612ade906138c3565b5f6040518083038185875af1925050503d805f8114612b18576040519150601f19603f3d011682016040523d82523d5f602084013e612b1d565b606091505b505090505050505f601360146101000a81548160ff02191690831515021790555050565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612bdd5750600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612beb5760019050612c97565b600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c865750600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c93575f9050612c97565b5f90505b92915050565b5f80600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d1e57612d17600754612d096004548661312890919063ffffffff16565b61319f90919063ffffffff16565b9050612d9a565b600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d9957612d96600754612d886005548661312890919063ffffffff16565b61319f90919063ffffffff16565b90505b5b5f811115612e9957612df28160085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461275790919063ffffffff16565b60085f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e909190613261565b60405180910390a35b612eac818461270e90919063ffffffff16565b9150509392505050565b5f600267ffffffffffffffff811115612ed257612ed1613cb4565b5b604051908082528060200260200182016040528015612f005781602001602082028036833780820191505090505b50905030815f81518110612f1757612f16613ce1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fbc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fe09190613d22565b81600181518110612ff457612ff3613ce1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061305b30601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f41565b601260049054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130be959493929190613e3d565b5f604051808303815f87803b1580156130d5575f80fd5b505af11580156130e7573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161311c929190613e95565b60405180910390a15050565b5f808303613138575f9050613199565b5f82846131459190613ec3565b90508284826131549190613f31565b14613194576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318b90613fd1565b60405180910390fd5b809150505b92915050565b5f6131e083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506131e8565b905092915050565b5f808311829061322e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132259190613304565b60405180910390fd5b505f838561323c9190613f31565b9050809150509392505050565b5f819050919050565b61325b81613249565b82525050565b5f6020820190506132745f830184613252565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156132b1578082015181840152602081019050613296565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6132d68261327a565b6132e08185613284565b93506132f0818560208601613294565b6132f9816132bc565b840191505092915050565b5f6020820190508181035f83015261331c81846132cc565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f819050919050565b5f61336661336161335c84613324565b613343565b613324565b9050919050565b5f6133778261334c565b9050919050565b5f6133888261336d565b9050919050565b6133988161337e565b82525050565b5f6020820190506133b15f83018461338f565b92915050565b5f6133c182613324565b9050919050565b6133d1816133b7565b82525050565b5f6020820190506133ea5f8301846133c8565b92915050565b5f80fd5b6133fd816133b7565b8114613407575f80fd5b50565b5f81359050613418816133f4565b92915050565b61342781613249565b8114613431575f80fd5b50565b5f813590506134428161341e565b92915050565b5f806040838503121561345e5761345d6133f0565b5b5f61346b8582860161340a565b925050602061347c85828601613434565b9150509250929050565b5f8115159050919050565b61349a81613486565b82525050565b5f6020820190506134b35f830184613491565b92915050565b5f805f606084860312156134d0576134cf6133f0565b5b5f6134dd8682870161340a565b93505060206134ee8682870161340a565b92505060406134ff86828701613434565b9150509250925092565b5f60ff82169050919050565b61351e81613509565b82525050565b5f6020820190506135375f830184613515565b92915050565b5f60208284031215613552576135516133f0565b5b5f61355f8482850161340a565b91505092915050565b61357181613486565b811461357b575f80fd5b50565b5f8135905061358c81613568565b92915050565b5f602082840312156135a7576135a66133f0565b5b5f6135b48482850161357e565b91505092915050565b5f80604083850312156135d3576135d26133f0565b5b5f6135e085828601613434565b92505060206135f185828601613434565b9150509250929050565b5f602082840312156136105761360f6133f0565b5b5f61361d84828501613434565b91505092915050565b5f806040838503121561363c5761363b6133f0565b5b5f6136498582860161340a565b925050602061365a8582860161357e565b9150509250929050565b5f805f6060848603121561367b5761367a6133f0565b5b5f61368886828701613434565b93505060206136998682870161357e565b92505060406136aa8682870161357e565b9150509250925092565b5f80604083850312156136ca576136c96133f0565b5b5f6136d78582860161340a565b92505060206136e88582860161340a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061373657607f821691505b602082108103613749576137486136f2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613783602083613284565b915061378e8261374f565b602082019050919050565b5f6020820190508181035f8301526137b081613777565b9050919050565b5f6040820190506137ca5f8301856133c8565b6137d76020830184613252565b9392505050565b5f81519050919050565b5f81905092915050565b5f6137fc826137de565b61380681856137e8565b9350613816818560208601613294565b80840191505092915050565b5f61382d82846137f2565b915081905092915050565b7f546f6b656e207061796d656e74206661696c65640000000000000000000000005f82015250565b5f61386c601483613284565b915061387782613838565b602082019050919050565b5f6020820190508181035f83015261389981613860565b9050919050565b50565b5f6138ae5f836137e8565b91506138b9826138a0565b5f82019050919050565b5f6138cd826138a3565b9150819050919050565b7f5472616e73616374696f6e204661696c656421210000000000000000000000005f82015250565b5f61390b601483613284565b9150613916826138d7565b602082019050919050565b5f6020820190508181035f830152613938816138ff565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613999602683613284565b91506139a48261393f565b604082019050919050565b5f6020820190508181035f8301526139c68161398d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a27602483613284565b9150613a32826139cd565b604082019050919050565b5f6020820190508181035f830152613a5481613a1b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613ab5602283613284565b9150613ac082613a5b565b604082019050919050565b5f6020820190508181035f830152613ae281613aa9565b9050919050565b7f45786365656473206d61785478416d6f756e74000000000000000000000000005f82015250565b5f613b1d601383613284565b9150613b2882613ae9565b602082019050919050565b5f6020820190508181035f830152613b4a81613b11565b9050919050565b7f457863656564732057616c6c65740000000000000000000000000000000000005f82015250565b5f613b85600e83613284565b9150613b9082613b51565b602082019050919050565b5f6020820190508181035f830152613bb281613b79565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613bf082613249565b9150613bfb83613249565b9250828203905081811115613c1357613c12613bb9565b5b92915050565b5f613c2382613249565b9150613c2e83613249565b9250828201905080821115613c4657613c45613bb9565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613c80601b83613284565b9150613c8b82613c4c565b602082019050919050565b5f6020820190508181035f830152613cad81613c74565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613d1c816133f4565b92915050565b5f60208284031215613d3757613d366133f0565b5b5f613d4484828501613d0e565b91505092915050565b5f819050919050565b5f613d70613d6b613d6684613d4d565b613343565b613249565b9050919050565b613d8081613d56565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613db8816133b7565b82525050565b5f613dc98383613daf565b60208301905092915050565b5f602082019050919050565b5f613deb82613d86565b613df58185613d90565b9350613e0083613da0565b805f5b83811015613e30578151613e178882613dbe565b9750613e2283613dd5565b925050600181019050613e03565b5085935050505092915050565b5f60a082019050613e505f830188613252565b613e5d6020830187613d77565b8181036040830152613e6f8186613de1565b9050613e7e60608301856133c8565b613e8b6080830184613252565b9695505050505050565b5f604082019050613ea85f830185613252565b8181036020830152613eba8184613de1565b90509392505050565b5f613ecd82613249565b9150613ed883613249565b9250828202613ee681613249565b91508282048414831517613efd57613efc613bb9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613f3b82613249565b9150613f4683613249565b925082613f5657613f55613f04565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613fbb602183613284565b9150613fc682613f61565b604082019050919050565b5f6020820190508181035f830152613fe881613faf565b905091905056fe45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205a1bae33df3f2b9885c4ad009c2439f2ec77061378ad1719094cb26bbdce837664736f6c63430008150033

Deployed Bytecode Sourcemap

11069:11766:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12217:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14095:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12437:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11359:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15433:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14372:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16207:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11271:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14766:156;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14281:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14930:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11820:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21190:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22248:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11763:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22614:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21811:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12354:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21433:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12279:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14480:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5737:94;;;;;;;;;;;;;:::i;:::-;;21697:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22132:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12055:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12135:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11931:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5428:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14186;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15156:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16032:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21569:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22377:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11508:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21920:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11872:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20804:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14611:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21303:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20618:178;;;;;;;;;;;;;:::i;:::-;;12316:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21084:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12475:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5839:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22737:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12393:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12217:53;;;;:::o;14095:83::-;14132:13;14165:5;14158:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14095:83;:::o;12437:31::-;;;;;;;;;;;;;:::o;11359:81::-;;;:::o;15433:161::-;15508:4;15525:39;15534:12;:10;:12::i;:::-;15548:7;15557:6;15525:8;:39::i;:::-;15582:4;15575:11;;15433:161;;;;:::o;14372:100::-;14425:7;14452:12;;14445:19;;14372:100;:::o;16207:297::-;16305:4;16322:36;16332:6;16340:9;16351:6;16322:9;:36::i;:::-;;16369:105;16378:6;16386:12;:10;:12::i;:::-;16400:73;16438:6;16400:73;;;;;;;;;;;;;;;;;:11;:19;16412:6;16400:19;;;;;;;;;;;;;;;:33;16420:12;:10;:12::i;:::-;16400:33;;;;;;;;;;;;;;;;:37;;:73;;;;;:::i;:::-;16369:8;:105::i;:::-;16492:4;16485:11;;16207:297;;;;;:::o;11271:81::-;;;:::o;14766:156::-;14819:7;14846:68;14891:22;14901:11;14891:9;:22::i;:::-;14846:40;14863:22;14873:11;14863:9;:22::i;:::-;14846:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;14839:75;;14766:156;:::o;14281:83::-;14322:5;14347:9;;;;;;;;;;;14340:16;;14281:83;:::o;14930:218::-;15018:4;15035:83;15044:12;:10;:12::i;:::-;15058:7;15067:50;15106:10;15067:11;:25;15079:12;:10;:12::i;:::-;15067:25;;;;;;;;;;;;;;;:34;15093:7;15067:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15035:8;:83::i;:::-;15136:4;15129:11;;14930:218;;;;:::o;11820:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;21190:105::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21280:7:::1;21261:16;;:26;;;;;;;;;;;;;;;;;;21190:105:::0;:::o;22248:118::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22327:4:::1;22317:7;:14;;;;22353:5;22342:8;:16;;;;22248:118:::0;;:::o;11763:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;22614:115::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22713:7:::1;22686:9;;:35;;;;;;;;;;;;;;;;;;22614:115:::0;:::o;21811:101::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21896:8:::1;21881:12;:23;;;;21811:101:::0;:::o;12354:32::-;;;;;;;;;;;;;:::o;21433:128::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21546:7:::1;21518:19;:25;21538:4;21518:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;21433:128:::0;;:::o;12279:30::-;;;;;;;;;;;;;:::o;14480:123::-;14546:7;14572:9;:18;14582:7;14572:18;;;;;;;;;;;;;;;;14565:25;;14480:123;;;:::o;5737:94::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5802:21:::1;5820:1;5802:9;:21::i;:::-;5737:94::o:0;21697:106::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21787:8:::1;21774:10;:21;;;;21697:106:::0;:::o;22132:108::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22227:5:::1;22207:17;;:25;;;;;;;;;;;;;;;;;;22132:108:::0;:::o;12055:61::-;;;;:::o;12135:58::-;;;;:::o;11931:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;5428:87::-;5474:7;5501:6;;;;;;;;;;;5494:13;;5428:87;:::o;14186:::-;14225:13;14258:7;14251:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14186:87;:::o;15156:269::-;15249:4;15266:129;15275:12;:10;:12::i;:::-;15289:7;15298:96;15337:15;15298:96;;;;;;;;;;;;;;;;;:11;:25;15310:12;:10;:12::i;:::-;15298:25;;;;;;;;;;;;;;;:34;15324:7;15298:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15266:8;:129::i;:::-;15413:4;15406:11;;15156:269;;;;:::o;16032:167::-;16110:4;16127:42;16137:12;:10;:12::i;:::-;16151:9;16162:6;16127:9;:42::i;:::-;;16187:4;16180:11;;16032:167;;;;:::o;21569:120::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21674:7:::1;21650:15;:21;21666:4;21650:21;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;21569:120:::0;;:::o;22377:229::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22520:8:::1;22506:11;;:22;;;;;;;;;;;;;;;;;;22553:8;22539:11;;:22;;;;;;;;;;;;;;;;;;22588:10;22572:13;:26;;;;22377:229:::0;;;:::o;11508:86::-;;;;;;;;;;;;;:::o;21920:204::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22024:7:::1;22002:12;:19;22015:5;22002:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;22045:7;22042:75;;;22098:7;22069:19;:26;22089:5;22069:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;22042:75;21920:204:::0;;:::o;11872:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;20804:272::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20904:12:::1;20930:6;20922:20;;20997:9;21008:7;20943:73;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20922:95;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20903:114;;;21036:7;21028:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;20892:184;20804:272:::0;;;:::o;14611:143::-;14692:7;14719:11;:18;14731:5;14719:18;;;;;;;;;;;;;;;:27;14738:7;14719:27;;;;;;;;;;;;;;;;14712:34;;14611:143;;;;:::o;21303:122::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21410:7:::1;21384:17;:23;21402:4;21384:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;21303:122:::0;;:::o;20618:178::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20673:7:::1;20693:10;20685:24;;20717:21;20685:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20672:71;;;20762:2;20754:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;20660:136;20618:178::o:0;12316:31::-;;;;;;;;;;;;;:::o;21084:98::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21167:7:::1;21151:13;;:23;;;;;;;;;;;;;;;;;;21084:98:::0;:::o;12475:22::-;;;;;;;;;;;;;:::o;5839:229::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5962:1:::1;5942:22;;:8;:22;;::::0;5920:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6041:19;6051:8;6041:9;:19::i;:::-;5839:229:::0;:::o;22737:91::-;5660:12;:10;:12::i;:::-;5649:23;;:7;:5;:7::i;:::-;:23;;;5641:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22815:5:::1;22805:7;;:15;;;;;;;;;;;;;;;;;;22737:91:::0;:::o;12393:35::-;;;;;;;;;;;;;:::o;3995:98::-;4048:7;4075:10;4068:17;;3995:98;:::o;15602:337::-;15712:1;15695:19;;:5;:19;;;15687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15793:1;15774:21;;:7;:21;;;15766:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15877:6;15847:11;:18;15859:5;15847:18;;;;;;;;;;;;;;;:27;15866:7;15847:27;;;;;;;;;;;;;;;:36;;;;15915:7;15899:32;;15908:5;15899:32;;;15924:6;15899:32;;;;;;:::i;:::-;;;;;;;;15602:337;;;:::o;16512:1606::-;16599:4;16644:1;16626:20;;:6;:20;;;16618:29;;;;;;16687:1;16666:23;;:9;:23;;;16658:32;;;;;;16718:1;16709:6;:10;16701:19;;;;;;16741:6;;;;;;;;;;;16737:1372;;;16771:41;16786:6;16794:9;16805:6;16771:14;:41::i;:::-;16764:48;;;;16737:1372;16856:28;16887:24;16905:4;16887:9;:24::i;:::-;16856:55;;16926:28;16981:13;;16957:20;:37;;16926:68;;17033:23;:52;;;;;17079:6;;;;;;;;;;;17078:7;17033:52;:95;;;;;17108:12;:20;17121:6;17108:20;;;;;;;;;;;;;;;;;;;;;;;;;17107:21;17033:95;:128;;;;;17150:11;;;;;;;;;;;17033:128;:175;;;;;17183:17;:25;17201:6;17183:25;;;;;;;;;;;;;;;;;;;;;;;;;17182:26;17033:175;:225;;;;;17230:17;:28;17248:9;17230:28;;;;;;;;;;;;;;;;;;;;;;;;;17229:29;17033:225;17011:332;;;17297:30;17306:20;17297:8;:30::i;:::-;17011:332;17363:15;:23;17379:6;17363:23;;;;;;;;;;;;;;;;;;;;;;;;;17362:24;:55;;;;;17391:15;:26;17407:9;17391:26;;;;;;;;;;;;;;;;;;;;;;;;;17390:27;17362:55;:72;;;;;17421:13;;;;;;;;;;;17362:72;17359:166;;;17473:12;;17463:6;:22;;17455:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;17359:166;17574:53;17596:6;17574:53;;;;;;;;;;;;;;;;;:9;:17;17584:6;17574:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;17554:9;:17;17564:6;17554:17;;;;;;;;;;;;;;;:73;;;;17644:19;17666:34;17683:6;17690:9;17666:16;:34::i;:::-;:80;;17712:34;17720:6;17728:9;17739:6;17712:7;:34::i;:::-;17666:80;;;17703:6;17666:80;17644:102;;17766:16;;;;;;;;;;;:51;;;;;17787:19;:30;17807:9;17787:30;;;;;;;;;;;;;;;;;;;;;;;;;17786:31;17766:51;17763:168;;;17887:10;;17846:37;17871:11;17846:20;17856:9;17846;:20::i;:::-;:24;;:37;;;;:::i;:::-;:51;;17838:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;17763:168;17970:37;17995:11;17970:9;:20;17980:9;17970:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;17947:9;:20;17957:9;17947:20;;;;;;;;;;;;;;;:60;;;;18046:9;18029:40;;18038:6;18029:40;;;18057:11;18029:40;;;;;;:::i;:::-;;;;;;;;18091:4;18084:11;;;;;16512:1606;;;;;;:::o;6615:192::-;6701:7;6734:1;6729;:6;;6737:12;6721:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6761:9;6777:1;6773;:5;;;;:::i;:::-;6761:17;;6798:1;6791:8;;;6615:192;;;;;:::o;6471:136::-;6529:7;6556:43;6560:1;6563;6556:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6549:50;;6471:136;;;;:::o;6282:181::-;6340:7;6360:9;6376:1;6372;:5;;;;:::i;:::-;6360:17;;6401:1;6396;:6;;6388:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6454:1;6447:8;;;6282:181;;;;:::o;6076:173::-;6132:16;6151:6;;;;;;;;;;;6132:25;;6177:8;6168:6;;:17;;;;;;;;;;;;;;;;;;6232:8;6201:40;;6222:8;6201:40;;;;;;;;;;;;6121:128;6076:173;:::o;18126:330::-;18219:4;18256:53;18278:6;18256:53;;;;;;;;;;;;;;;;;:9;:17;18266:6;18256:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;18236:9;:17;18246:6;18236:17;;;;;;;;;;;;;;;:73;;;;18343:32;18368:6;18343:9;:20;18353:9;18343:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18320:9;:20;18330:9;18320:20;;;;;;;;;;;;;;;:55;;;;18408:9;18391:35;;18400:6;18391:35;;;18419:6;18391:35;;;;;;:::i;:::-;;;;;;;;18444:4;18437:11;;18126:330;;;;;:::o;19545:409::-;12566:4;12557:6;;:13;;;;;;;;;;;;;;;;;;19619:11:::1;;;;;;;;;;;19616:47;;;19650:13;;19632:31;;19616:47;19676:22;19701:21;19676:46;;19733:33;19750:15;19733:16;:33::i;:::-;19777:22;19802:41;19828:14;19802:21;:25;;:41;;;;:::i;:::-;19777:66;;19857:7;19877:17;;;;;;;;;;;19869:31;;19908:14;19869:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19856:71;;;19603:351;;;12602:5:::0;12593:6;;:14;;;;;;;;;;;;;;;;;;19545:409;:::o;18468:369::-;18552:4;18572:17;:25;18590:6;18572:25;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;18601:17;:28;18619:9;18601:28;;;;;;;;;;;;;;;;;;;;;;;;;18572:57;18569:261;;;18653:4;18646:11;;;;18569:261;18688:12;:20;18701:6;18688:20;;;;;;;;;;;;;;;;;;;;;;;;;:47;;;;18712:12;:23;18725:9;18712:23;;;;;;;;;;;;;;;;;;;;;;;;;18688:47;18684:146;;;18759:5;18752:12;;;;18684:146;18813:5;18806:12;;18468:369;;;;;:::o;18845:692::-;18931:7;18961:14;19018:12;:20;19031:6;19018:20;;;;;;;;;;;;;;;;;;;;;;;;;19015:248;;;19072:39;19096:14;;19072:19;19083:7;;19072:6;:10;;:19;;;;:::i;:::-;:23;;:39;;;;:::i;:::-;19060:51;;19015:248;;;19150:12;:23;19163:9;19150:23;;;;;;;;;;;;;;;;;;;;;;;;;19147:116;;;19207:40;19232:14;;19207:20;19218:8;;19207:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;19195:52;;19147:116;19015:248;19294:1;19282:9;:13;19279:185;;;19343:39;19372:9;19343;:24;19361:4;19343:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;19316:9;:24;19334:4;19316:24;;;;;;;;;;;;;;;:66;;;;19431:4;19406:42;;19415:6;19406:42;;;19438:9;19406:42;;;;;;:::i;:::-;;;;;;;;19279:185;19487:21;19498:9;19487:6;:10;;:21;;;;:::i;:::-;19480:28;;;18845:692;;;;;:::o;19962:648::-;20088:21;20126:1;20112:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20088:40;;20157:4;20139;20144:1;20139:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;20183:9;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20173:4;20178:1;20173:7;;;;;;;;:::i;:::-;;;;;;;:26;;;;;;;;;;;20212:56;20229:4;20244:9;;;;;;;;;;;20256:11;20212:8;:56::i;:::-;20307:9;;;;;;;;;;;:60;;;20382:11;20408:1;20452:4;20479;20515:15;20307:234;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20567:35;20584:11;20597:4;20567:35;;;;;;;:::i;:::-;;;;;;;;20017:593;19962:648;:::o;6815:250::-;6873:7;6902:1;6897;:6;6893:47;;6927:1;6920:8;;;;6893:47;6952:9;6968:1;6964;:5;;;;:::i;:::-;6952:17;;6997:1;6992;6988;:5;;;;:::i;:::-;:10;6980:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7056:1;7049:8;;;6815:250;;;;;:::o;7073:132::-;7131:7;7158:39;7162:1;7165;7158:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;7151:46;;7073:132;;;;:::o;7213:278::-;7299:7;7331:1;7327;:5;7334:12;7319:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7358:9;7374:1;7370;:5;;;;:::i;:::-;7358:17;;7482:1;7475:8;;;7213: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:607::-;8443:6;8451;8459;8508:2;8496:9;8487:7;8483:23;8479:32;8476:119;;;8514:79;;:::i;:::-;8476:119;8634:1;8659:53;8704:7;8695:6;8684:9;8680:22;8659:53;:::i;:::-;8649:63;;8605:117;8761:2;8787:50;8829:7;8820:6;8809:9;8805:22;8787:50;:::i;:::-;8777:60;;8732:115;8886:2;8912:50;8954:7;8945:6;8934:9;8930:22;8912:50;:::i;:::-;8902:60;;8857:115;8372:607;;;;;:::o;8985:474::-;9053:6;9061;9110:2;9098:9;9089:7;9085:23;9081:32;9078:119;;;9116:79;;:::i;:::-;9078:119;9236:1;9261:53;9306:7;9297:6;9286:9;9282:22;9261:53;:::i;:::-;9251:63;;9207:117;9363:2;9389:53;9434:7;9425:6;9414:9;9410:22;9389:53;:::i;:::-;9379:63;;9334:118;8985:474;;;;;:::o;9465:180::-;9513:77;9510:1;9503:88;9610:4;9607:1;9600:15;9634:4;9631:1;9624:15;9651:320;9695:6;9732:1;9726:4;9722:12;9712:22;;9779:1;9773:4;9769:12;9800:18;9790:81;;9856:4;9848:6;9844:17;9834:27;;9790:81;9918:2;9910:6;9907:14;9887:18;9884:38;9881:84;;9937:18;;:::i;:::-;9881:84;9702:269;9651:320;;;:::o;9977:182::-;10117:34;10113:1;10105:6;10101:14;10094:58;9977:182;:::o;10165:366::-;10307:3;10328:67;10392:2;10387:3;10328:67;:::i;:::-;10321:74;;10404:93;10493:3;10404:93;:::i;:::-;10522:2;10517:3;10513:12;10506:19;;10165:366;;;:::o;10537:419::-;10703:4;10741:2;10730:9;10726:18;10718:26;;10790:9;10784:4;10780:20;10776:1;10765:9;10761:17;10754:47;10818:131;10944:4;10818:131;:::i;:::-;10810:139;;10537:419;;;:::o;10962:332::-;11083:4;11121:2;11110:9;11106:18;11098:26;;11134:71;11202:1;11191:9;11187:17;11178:6;11134:71;:::i;:::-;11215:72;11283:2;11272:9;11268:18;11259:6;11215:72;:::i;:::-;10962:332;;;;;:::o;11300:98::-;11351:6;11385:5;11379:12;11369:22;;11300:98;;;:::o;11404:147::-;11505:11;11542:3;11527:18;;11404:147;;;;:::o;11557:386::-;11661:3;11689:38;11721:5;11689:38;:::i;:::-;11743:88;11824:6;11819:3;11743:88;:::i;:::-;11736:95;;11840:65;11898:6;11893:3;11886:4;11879:5;11875:16;11840:65;:::i;:::-;11930:6;11925:3;11921:16;11914:23;;11665:278;11557:386;;;;:::o;11949:271::-;12079:3;12101:93;12190:3;12181:6;12101:93;:::i;:::-;12094:100;;12211:3;12204:10;;11949:271;;;;:::o;12226:170::-;12366:22;12362:1;12354:6;12350:14;12343:46;12226:170;:::o;12402:366::-;12544:3;12565:67;12629:2;12624:3;12565:67;:::i;:::-;12558:74;;12641:93;12730:3;12641:93;:::i;:::-;12759:2;12754:3;12750:12;12743:19;;12402:366;;;:::o;12774:419::-;12940:4;12978:2;12967:9;12963:18;12955:26;;13027:9;13021:4;13017:20;13013:1;13002:9;12998:17;12991:47;13055:131;13181:4;13055:131;:::i;:::-;13047:139;;12774:419;;;:::o;13199:114::-;;:::o;13319:398::-;13478:3;13499:83;13580:1;13575:3;13499:83;:::i;:::-;13492:90;;13591:93;13680:3;13591:93;:::i;:::-;13709:1;13704:3;13700:11;13693:18;;13319:398;;;:::o;13723:379::-;13907:3;13929:147;14072:3;13929:147;:::i;:::-;13922:154;;14093:3;14086:10;;13723:379;;;:::o;14108:170::-;14248:22;14244:1;14236:6;14232:14;14225:46;14108:170;:::o;14284:366::-;14426:3;14447:67;14511:2;14506:3;14447:67;:::i;:::-;14440:74;;14523:93;14612:3;14523:93;:::i;:::-;14641:2;14636:3;14632:12;14625:19;;14284:366;;;:::o;14656:419::-;14822:4;14860:2;14849:9;14845:18;14837:26;;14909:9;14903:4;14899:20;14895:1;14884:9;14880:17;14873:47;14937:131;15063:4;14937:131;:::i;:::-;14929:139;;14656:419;;;:::o;15081:225::-;15221:34;15217:1;15209:6;15205:14;15198:58;15290:8;15285:2;15277:6;15273:15;15266:33;15081:225;:::o;15312:366::-;15454:3;15475:67;15539:2;15534:3;15475:67;:::i;:::-;15468:74;;15551:93;15640:3;15551:93;:::i;:::-;15669:2;15664:3;15660:12;15653:19;;15312:366;;;:::o;15684:419::-;15850:4;15888:2;15877:9;15873:18;15865:26;;15937:9;15931:4;15927:20;15923:1;15912:9;15908:17;15901:47;15965:131;16091:4;15965:131;:::i;:::-;15957:139;;15684:419;;;:::o;16109:223::-;16249:34;16245:1;16237:6;16233:14;16226:58;16318:6;16313:2;16305:6;16301:15;16294:31;16109:223;:::o;16338:366::-;16480:3;16501:67;16565:2;16560:3;16501:67;:::i;:::-;16494:74;;16577:93;16666:3;16577:93;:::i;:::-;16695:2;16690:3;16686:12;16679:19;;16338:366;;;:::o;16710:419::-;16876:4;16914:2;16903:9;16899:18;16891:26;;16963:9;16957:4;16953:20;16949:1;16938:9;16934:17;16927:47;16991:131;17117:4;16991:131;:::i;:::-;16983:139;;16710:419;;;:::o;17135:221::-;17275:34;17271:1;17263:6;17259:14;17252:58;17344:4;17339:2;17331:6;17327:15;17320:29;17135:221;:::o;17362:366::-;17504:3;17525:67;17589:2;17584:3;17525:67;:::i;:::-;17518:74;;17601:93;17690:3;17601:93;:::i;:::-;17719:2;17714:3;17710:12;17703:19;;17362:366;;;:::o;17734:419::-;17900:4;17938:2;17927:9;17923:18;17915:26;;17987:9;17981:4;17977:20;17973:1;17962:9;17958:17;17951:47;18015:131;18141:4;18015:131;:::i;:::-;18007:139;;17734:419;;;:::o;18159:169::-;18299:21;18295:1;18287:6;18283:14;18276:45;18159:169;:::o;18334:366::-;18476:3;18497:67;18561:2;18556:3;18497:67;:::i;:::-;18490:74;;18573:93;18662:3;18573:93;:::i;:::-;18691:2;18686:3;18682:12;18675:19;;18334:366;;;:::o;18706:419::-;18872:4;18910:2;18899:9;18895:18;18887:26;;18959:9;18953:4;18949:20;18945:1;18934:9;18930:17;18923:47;18987:131;19113:4;18987:131;:::i;:::-;18979:139;;18706:419;;;:::o;19131:164::-;19271:16;19267:1;19259:6;19255:14;19248:40;19131:164;:::o;19301:366::-;19443:3;19464:67;19528:2;19523:3;19464:67;:::i;:::-;19457:74;;19540:93;19629:3;19540:93;:::i;:::-;19658:2;19653:3;19649:12;19642:19;;19301:366;;;:::o;19673:419::-;19839:4;19877:2;19866:9;19862:18;19854:26;;19926:9;19920:4;19916:20;19912:1;19901:9;19897:17;19890:47;19954:131;20080:4;19954:131;:::i;:::-;19946:139;;19673:419;;;:::o;20098:180::-;20146:77;20143:1;20136:88;20243:4;20240:1;20233:15;20267:4;20264:1;20257:15;20284:194;20324:4;20344:20;20362:1;20344:20;:::i;:::-;20339:25;;20378:20;20396:1;20378:20;:::i;:::-;20373:25;;20422:1;20419;20415:9;20407:17;;20446:1;20440:4;20437:11;20434:37;;;20451:18;;:::i;:::-;20434:37;20284:194;;;;:::o;20484:191::-;20524:3;20543:20;20561:1;20543:20;:::i;:::-;20538:25;;20577:20;20595:1;20577:20;:::i;:::-;20572:25;;20620:1;20617;20613:9;20606:16;;20641:3;20638:1;20635:10;20632:36;;;20648:18;;:::i;:::-;20632:36;20484:191;;;;:::o;20681:177::-;20821:29;20817:1;20809:6;20805:14;20798:53;20681:177;:::o;20864:366::-;21006:3;21027:67;21091:2;21086:3;21027:67;:::i;:::-;21020:74;;21103:93;21192:3;21103:93;:::i;:::-;21221:2;21216:3;21212:12;21205:19;;20864:366;;;:::o;21236:419::-;21402:4;21440:2;21429:9;21425:18;21417:26;;21489:9;21483:4;21479:20;21475:1;21464:9;21460:17;21453:47;21517:131;21643:4;21517:131;:::i;:::-;21509:139;;21236:419;;;:::o;21661:180::-;21709:77;21706:1;21699:88;21806:4;21803:1;21796:15;21830:4;21827:1;21820:15;21847:180;21895:77;21892:1;21885:88;21992:4;21989:1;21982:15;22016:4;22013:1;22006:15;22033:143;22090:5;22121:6;22115:13;22106:22;;22137:33;22164:5;22137:33;:::i;:::-;22033:143;;;;:::o;22182:351::-;22252:6;22301:2;22289:9;22280:7;22276:23;22272:32;22269:119;;;22307:79;;:::i;:::-;22269:119;22427:1;22452:64;22508:7;22499:6;22488:9;22484:22;22452:64;:::i;:::-;22442:74;;22398:128;22182:351;;;;:::o;22539:85::-;22584:7;22613:5;22602:16;;22539:85;;;:::o;22630:158::-;22688:9;22721:61;22739:42;22748:32;22774:5;22748:32;:::i;:::-;22739:42;:::i;:::-;22721:61;:::i;:::-;22708:74;;22630:158;;;:::o;22794:147::-;22889:45;22928:5;22889:45;:::i;:::-;22884:3;22877:58;22794:147;;:::o;22947:114::-;23014:6;23048:5;23042:12;23032:22;;22947:114;;;:::o;23067:184::-;23166:11;23200:6;23195:3;23188:19;23240:4;23235:3;23231:14;23216:29;;23067:184;;;;:::o;23257:132::-;23324:4;23347:3;23339:11;;23377:4;23372:3;23368:14;23360:22;;23257:132;;;:::o;23395:108::-;23472:24;23490:5;23472:24;:::i;:::-;23467:3;23460:37;23395:108;;:::o;23509:179::-;23578:10;23599:46;23641:3;23633:6;23599:46;:::i;:::-;23677:4;23672:3;23668:14;23654:28;;23509:179;;;;:::o;23694:113::-;23764:4;23796;23791:3;23787:14;23779:22;;23694:113;;;:::o;23843:732::-;23962:3;23991:54;24039:5;23991:54;:::i;:::-;24061:86;24140:6;24135:3;24061:86;:::i;:::-;24054:93;;24171:56;24221:5;24171:56;:::i;:::-;24250:7;24281:1;24266:284;24291:6;24288:1;24285:13;24266:284;;;24367:6;24361:13;24394:63;24453:3;24438:13;24394:63;:::i;:::-;24387:70;;24480:60;24533:6;24480:60;:::i;:::-;24470:70;;24326:224;24313:1;24310;24306:9;24301:14;;24266:284;;;24270:14;24566:3;24559:10;;23967:608;;;23843:732;;;;:::o;24581:831::-;24844:4;24882:3;24871:9;24867:19;24859:27;;24896:71;24964:1;24953:9;24949:17;24940:6;24896:71;:::i;:::-;24977:80;25053:2;25042:9;25038:18;25029:6;24977:80;:::i;:::-;25104:9;25098:4;25094:20;25089:2;25078:9;25074:18;25067:48;25132:108;25235:4;25226:6;25132:108;:::i;:::-;25124:116;;25250:72;25318:2;25307:9;25303:18;25294:6;25250:72;:::i;:::-;25332:73;25400:3;25389:9;25385:19;25376:6;25332:73;:::i;:::-;24581:831;;;;;;;;:::o;25418:483::-;25589:4;25627:2;25616:9;25612:18;25604:26;;25640:71;25708:1;25697:9;25693:17;25684:6;25640:71;:::i;:::-;25758:9;25752:4;25748:20;25743:2;25732:9;25728:18;25721:48;25786:108;25889:4;25880:6;25786:108;:::i;:::-;25778:116;;25418:483;;;;;:::o;25907:410::-;25947:7;25970:20;25988:1;25970:20;:::i;:::-;25965:25;;26004:20;26022:1;26004:20;:::i;:::-;25999:25;;26059:1;26056;26052:9;26081:30;26099:11;26081:30;:::i;:::-;26070:41;;26260:1;26251:7;26247:15;26244:1;26241:22;26221:1;26214:9;26194:83;26171:139;;26290:18;;:::i;:::-;26171:139;25955:362;25907:410;;;;:::o;26323:180::-;26371:77;26368:1;26361:88;26468:4;26465:1;26458:15;26492:4;26489:1;26482:15;26509:185;26549:1;26566:20;26584:1;26566:20;:::i;:::-;26561:25;;26600:20;26618:1;26600:20;:::i;:::-;26595:25;;26639:1;26629:35;;26644:18;;:::i;:::-;26629:35;26686:1;26683;26679:9;26674:14;;26509:185;;;;:::o;26700:220::-;26840:34;26836:1;26828:6;26824:14;26817:58;26909:3;26904:2;26896:6;26892:15;26885:28;26700:220;:::o;26926:366::-;27068:3;27089:67;27153:2;27148:3;27089:67;:::i;:::-;27082:74;;27165:93;27254:3;27165:93;:::i;:::-;27283:2;27278:3;27274:12;27267:19;;26926:366;;;:::o;27298:419::-;27464:4;27502:2;27491:9;27487:18;27479:26;;27551:9;27545:4;27541:20;27537:1;27526:9;27522:17;27515:47;27579:131;27705:4;27579:131;:::i;:::-;27571:139;;27298:419;;;:::o

Swarm Source

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