ETH Price: $3,159.95 (+2.56%)

Token

BlackCore AI (BCAI)
 

Overview

Max Total Supply

1,000,000 BCAI

Holders

132

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000799868 BCAI

Value
$0.00
0x03c65fdbff50d9032b7161cf65e6b10dad736692
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:
BlackCoreAI

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
//SPDX-License-Identifier: MIT

BlackCore AI | $BCAI 

Empowering the future of cryptocurrency with cutting-edge artificial intelligence. 
BlackCoreAi at the core of our product's mission is the deployment of an advanced 
decentralized GPU compute grid designed to revolutionize the high-fidelity 3D rendering 
ecosystem with the democratization of computational intelligence.

BlackCore AI  vision is to become a key platform that accelerates the development 
of artificial intelligence technologies by removing computational barriers

Website: https://blackcoreai.com
Twitter: https://x.com/blackcoreai
Portal: https://t.me/BlackCoreAi_portal
Medium: https://medium.com/@blackcoreai
Docs: https://docs.blackcoreai.com
*/

pragma solidity = 0.8.22;
pragma experimental ABIEncoderV2;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {

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

    function totalSupply() external view returns (uint256);

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

    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

interface IERC20Metadata is IERC20 {

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

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

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 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 (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 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 (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);

    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    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 (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

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

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

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

    function per(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= 100, "Percentage must be between 0 and 100");
        return a * b / 100;
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

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

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

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

        return true;
    }

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

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

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

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

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

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

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

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

        _afterTokenTransfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

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

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

contract BlackCoreAI is ERC20, Ownable {
    using SafeMath for uint256;
    
    IUniswapV2Router02 public immutable _uniswapV2Router;
    address public uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "BlackCore AI";
    string private constant _symbol = "BCAI";
    mapping(address => bool) private bots;

    uint256 public initialTotalSupply = 1000000 * 1e18;
    uint256 public maxTransactionAmount = 20000 * 1e18;
    uint256 public maxWallet = 20000 * 1e18;
    uint256 public swapTokensAtAmount = 20000 * 1e18;

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 20;
    uint256 public SellFee = 30;

    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor(address wallet) ERC20(_name, _symbol) {

        _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        marketingWallet = payable(wallet);
        excludeFromMaxTransaction(address(wallet), true);

        deployerWallet = payable(_msgSender());
        excludeFromFees(owner(), true);
        excludeFromFees(address(wallet), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);  
       
        _mint(msg.sender, initialTotalSupply);
    }

    receive() external payable {}

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
        _approve(address(this), address(_uniswapV2Router), initialTotalSupply);
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)).per(80),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(_uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }
    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs");
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint256 i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function _transfer(address from, address to, uint256 amount) internal override {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {

            require(!bots[from] && !bots[to]);

            if (!tradingOpen) {
                require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active.");
            }

            if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]
            ) {
                require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount.");
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }

            else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
            } 
            
            else if (!_isExcludedMaxTransactionAmount[to]) {
                require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance > 0;

        if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack(amount);
            swapping = false;
        }

        bool takeFee = !swapping;

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

        uint256 fees = 0;

        if (takeFee) {
            if (automatedMarketMakerPairs[to]) {
                fees = amount.mul(SellFee).div(100);
            }
            else {
                fees = amount.mul(BuyFee).div(100);
            }

        if (fees > 0) {
            super._transfer(from, address(this), fees);
        }
        amount -= fees;
    }
        super._transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();
        _approve(address(this), address(_uniswapV2Router), tokenAmount);
        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner {
        uint256 totalSupplyAmount = totalSupply();
        maxTransactionAmount = totalSupplyAmount;
        maxWallet = totalSupplyAmount;
    }

    function cleartuckEths() external {
        require(address(this).balance > 0, "Token: no ETH to clear");
        require(_msgSender() == marketingWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    function burnsRemainTokens(ERC20 tokenAddress) external {
        uint256 remainingTokens = tokenAddress.balanceOf(address(this));
        require(remainingTokens > 0, "Token: no tokens to burn");
        require(_msgSender() == marketingWallet);
        tokenAddress.transfer(deadAddress, remainingTokens);
    }

    function setSwapTokensAtAmount(uint256 _amount) external onlyOwner {
        swapTokensAtAmount = _amount * (10 ** 18);
    }

    function manualwap(uint256 percent) external {
        require(_msgSender() == marketingWallet);
        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 requiredBalance = totalSupplyAmount * percent / 100;
        require(contractBalance >= requiredBalance, "Not enough tokens");
        swapTokensForEth(requiredBalance);
    }

    function SetFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 30 && _sellFee <= 99, "Fees cannot exceed 30%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function swapBack(uint256 tokens) private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;
    if (contractBalance == 0) {
        return;
    } 
    else if(contractBalance > 0 && contractBalance < swapTokensAtAmount) {
        tokensToSwap = contractBalance;
    }
    else {
        uint256 sellFeeTokens = tokens.mul(SellFee).div(100);
        tokens -= sellFeeTokens;
        if (tokens > swapTokensAtAmount) {
            tokensToSwap = swapTokensAtAmount;
        } else {
            tokensToSwap = tokens;
        }
    }
    swapTokensForEth(tokensToSwap);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"contract ERC20","name":"tokenAddress","type":"address"}],"name":"burnsRemainTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cleartuckEths","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405269d3c21bcecceda1000000600a5569043c33c1937564800000600b5569043c33c1937564800000600c5569043c33c1937564800000600d555f600e5f6101000a81548160ff0219169083151502179055505f600e60016101000a81548160ff0219169083151502179055506014600f55601e60105534801562000085575f80fd5b5060405162004e3c38038062004e3c8339818101604052810190620000ab919062000795565b6040518060400160405280600c81526020017f426c61636b436f726520414900000000000000000000000000000000000000008152506040518060400160405280600481526020017f4243414900000000000000000000000000000000000000000000000000000000815250816003908162000128919062000a29565b5080600490816200013a919062000a29565b5050506200015d620001516200031e60201b60201c565b6200032560201b60201c565b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050620001ba6080516001620003e860201b60201c565b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200020d816001620003e860201b60201c565b6200021d6200031e60201b60201c565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200027e620002706200045060201b60201c565b60016200047860201b60201c565b620002918160016200047860201b60201c565b620002a43060016200047860201b60201c565b620002b961dead60016200047860201b60201c565b620002db620002cd6200045060201b60201c565b6001620003e860201b60201c565b620002ee306001620003e860201b60201c565b6200030361dead6001620003e860201b60201c565b6200031733600a546200053060201b60201c565b5062000cc3565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003f86200069560201b60201c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004886200069560201b60201c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405162000524919062000b29565b60405180910390a25050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005989062000ba2565b60405180910390fd5b620005b45f83836200072660201b60201c565b8060025f828254620005c7919062000bef565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000676919062000c3a565b60405180910390a3620006915f83836200072b60201b60201c565b5050565b620006a56200031e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620006cb6200045060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000724576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200071b9062000ca3565b60405180910390fd5b565b505050565b505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200075f8262000734565b9050919050565b620007718162000753565b81146200077c575f80fd5b50565b5f815190506200078f8162000766565b92915050565b5f60208284031215620007ad57620007ac62000730565b5b5f620007bc848285016200077f565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200084157607f821691505b602082108103620008575762000856620007fc565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200087e565b620008c786836200087e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620009116200090b6200090584620008df565b620008e8565b620008df565b9050919050565b5f819050919050565b6200092c83620008f1565b620009446200093b8262000918565b8484546200088a565b825550505050565b5f90565b6200095a6200094c565b6200096781848462000921565b505050565b5b818110156200098e57620009825f8262000950565b6001810190506200096d565b5050565b601f821115620009dd57620009a7816200085d565b620009b2846200086f565b81016020851015620009c2578190505b620009da620009d1856200086f565b8301826200096c565b50505b505050565b5f82821c905092915050565b5f620009ff5f1984600802620009e2565b1980831691505092915050565b5f62000a198383620009ee565b9150826002028217905092915050565b62000a3482620007c5565b67ffffffffffffffff81111562000a505762000a4f620007cf565b5b62000a5c825462000829565b62000a6982828562000992565b5f60209050601f83116001811462000a9f575f841562000a8a578287015190505b62000a96858262000a0c565b86555062000b05565b601f19841662000aaf866200085d565b5f5b8281101562000ad85784890151825560018201915060208501945060208101905062000ab1565b8683101562000af8578489015162000af4601f891682620009ee565b8355505b6001600288020188555050505b505050505050565b5f8115159050919050565b62000b238162000b0d565b82525050565b5f60208201905062000b3e5f83018462000b18565b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000b8a601f8362000b44565b915062000b978262000b54565b602082019050919050565b5f6020820190508181035f83015262000bbb8162000b7c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000bfb82620008df565b915062000c0883620008df565b925082820190508082111562000c235762000c2262000bc2565b5b92915050565b62000c3481620008df565b82525050565b5f60208201905062000c4f5f83018462000c29565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000c8b60208362000b44565b915062000c988262000c55565b602082019050919050565b5f6020820190508181035f83015262000cbc8162000c7d565b9050919050565b60805161412862000d145f395f8181610bec0152818161110a015281816111b30152818161133801528181611361015281816114680152818161259401528181612673015261269a01526141285ff3fe60806040526004361061021d575f3560e01c80638da5cb5b11610122578063c9567bf9116100aa578063dd8546521161006e578063dd85465214610796578063e2f45605146107c0578063f2fde38b146107ea578063f8b45b0514610812578063ffb54a991461083c57610224565b8063c9567bf9146106ca578063cf9522fd146106e0578063d34628cc1461070a578063db1b718214610732578063dd62ed3e1461075a57610224565b8063a457c2d7116100f1578063a457c2d7146105d8578063a9059cbb14610614578063afa4f3b214610650578063c024666814610678578063c8c8ebe4146106a057610224565b80638da5cb5b1461054657806394f153841461057057806395d89b41146105865780639a7a23d6146105b057610224565b806349bd5a5e116101a55780636ddd1713116101745780636ddd17131461048c57806370a08231146104b6578063715018a6146104f2578063751039fc146105085780637571336a1461051e57610224565b806349bd5a5e146103d45780634fbee193146103fe578063500b9aa21461043a578063583e05681461046257610224565b806323b872dd116101ec57806323b872dd146102e0578063311028af1461031c578063313ce5671461034657806331c2d84714610370578063395093511461039857610224565b8063032dc6a21461022857806306fdde0314610250578063095ea7b31461027a57806318160ddd146102b657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e60048036038101906102499190612c8f565b610866565b005b34801561025b575f80fd5b506102646108d1565b6040516102719190612d57565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190612dd1565b610961565b6040516102ad9190612e29565b60405180910390f35b3480156102c1575f80fd5b506102ca610983565b6040516102d79190612e51565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190612e6a565b61098c565b6040516103139190612e29565b60405180910390f35b348015610327575f80fd5b506103306109ba565b60405161033d9190612e51565b60405180910390f35b348015610351575f80fd5b5061035a6109c0565b6040516103679190612ed5565b60405180910390f35b34801561037b575f80fd5b506103966004803603810190610391919061302e565b6109c8565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190612dd1565b610a5a565b6040516103cb9190612e29565b60405180910390f35b3480156103df575f80fd5b506103e8610a90565b6040516103f59190613084565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f919061309d565b610ab5565b6040516104319190612e29565b60405180910390f35b348015610445575f80fd5b50610460600480360381019061045b91906130c8565b610b07565b005b34801561046d575f80fd5b50610476610bea565b604051610483919061314e565b60405180910390f35b348015610497575f80fd5b506104a0610c0e565b6040516104ad9190612e29565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d7919061309d565b610c21565b6040516104e99190612e51565b60405180910390f35b3480156104fd575f80fd5b50610506610c66565b005b348015610513575f80fd5b5061051c610c79565b005b348015610529575f80fd5b50610544600480360381019061053f9190613191565b610c9d565b005b348015610551575f80fd5b5061055a610cfd565b6040516105679190613084565b60405180910390f35b34801561057b575f80fd5b50610584610d25565b005b348015610591575f80fd5b5061059a610e0c565b6040516105a79190612d57565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613191565b610e9c565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190612dd1565b610f41565b60405161060b9190612e29565b60405180910390f35b34801561061f575f80fd5b5061063a60048036038101906106359190612dd1565b610fb6565b6040516106479190612e29565b60405180910390f35b34801561065b575f80fd5b50610676600480360381019061067191906130c8565b610fd8565b005b348015610683575f80fd5b5061069e60048036038101906106999190613191565b610ffd565b005b3480156106ab575f80fd5b506106b46110ab565b6040516106c19190612e51565b60405180910390f35b3480156106d5575f80fd5b506106de6110b1565b005b3480156106eb575f80fd5b506106f461153d565b6040516107019190612e51565b60405180910390f35b348015610715575f80fd5b50610730600480360381019061072b919061302e565b611543565b005b34801561073d575f80fd5b506107586004803603810190610753919061320a565b6115d6565b005b348015610765575f80fd5b50610780600480360381019061077b9190613235565b611774565b60405161078d9190612e51565b60405180910390f35b3480156107a1575f80fd5b506107aa6117f6565b6040516107b79190612e51565b60405180910390f35b3480156107cb575f80fd5b506107d46117fc565b6040516107e19190612e51565b60405180910390f35b3480156107f5575f80fd5b50610810600480360381019061080b919061309d565b611802565b005b34801561081d575f80fd5b50610826611884565b6040516108339190612e51565b60405180910390f35b348015610847575f80fd5b5061085061188a565b60405161085d9190612e29565b60405180910390f35b61086e61189c565b601e8211158015610880575060638111155b6108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b6906132bd565b60405180910390fd5b81600f81905550806010819055505050565b6060600380546108e090613308565b80601f016020809104026020016040519081016040528092919081815260200182805461090c90613308565b80156109575780601f1061092e57610100808354040283529160200191610957565b820191905f5260205f20905b81548152906001019060200180831161093a57829003601f168201915b5050505050905090565b5f8061096b61191a565b9050610978818585611921565b600191505092915050565b5f600254905090565b5f8061099661191a565b90506109a3858285611ae4565b6109ae858585611b6f565b60019150509392505050565b600a5481565b5f6012905090565b6109d061189c565b5f5b8151811015610a56575f60095f8484815181106109f2576109f1613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109d2565b5050565b5f80610a6461191a565b9050610a85818585610a768589611774565b610a809190613392565b611921565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610b66575f80fd5b5f610b6f610983565b90505f610b7b30610c21565b90505f60648484610b8c91906133c5565b610b969190613433565b905080821015610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906134ad565b60405180910390fd5b610be4816124f7565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c6e61189c565b610c775f61274b565b565b610c8161189c565b5f610c8a610983565b905080600b8190555080600c8190555050565b610ca561189c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f4711610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90613515565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610dc6575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e09573d5f803e3d5ffd5b50565b606060048054610e1b90613308565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4790613308565b8015610e925780601f10610e6957610100808354040283529160200191610e92565b820191905f5260205f20905b815481529060010190602001808311610e7557829003601f168201915b5050505050905090565b610ea461189c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a906135a3565b60405180910390fd5b610f3d828261280e565b5050565b5f80610f4b61191a565b90505f610f588286611774565b905083811015610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490613631565b60405180910390fd5b610faa8286868403611921565b60019250505092915050565b5f80610fc061191a565b9050610fcd818585611b6f565b600191505092915050565b610fe061189c565b670de0b6b3a764000081610ff491906133c5565b600d8190555050565b61100561189c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161109f9190612e29565b60405180910390a25050565b600b5481565b6110b961189c565b600e5f9054906101000a900460ff1615611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90613699565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611171573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119591906136cb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e91906136cb565b6040518363ffffffff1660e01b815260040161125b9291906136f6565b6020604051808303815f875af1158015611277573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129b91906136cb565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061130660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c9d565b61133260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161280e565b61135f307f0000000000000000000000000000000000000000000000000000000000000000600a54611921565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113b960506113ab30610c21565b6128ac90919063ffffffff16565b5f806113c3610cfd565b426040518863ffffffff1660e01b81526004016113e596959493929190613756565b60606040518083038185885af1158015611401573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061142691906137c9565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114c5929190613819565b6020604051808303815f875af11580156114e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115059190613854565b506001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60105481565b61154b61189c565b5f5b81518110156115d257600160095f84848151811061156e5761156d613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061154d565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116109190613084565b602060405180830381865afa15801561162b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164f919061387f565b90505f8111611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a906138f4565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116d361191a565b73ffffffffffffffffffffffffffffffffffffffff16146116f2575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b815260040161172f929190613819565b6020604051808303815f875af115801561174b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176f9190613854565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b61180a61189c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90613982565b60405180910390fd5b6118818161274b565b50565b600c5481565b600e5f9054906101000a900460ff1681565b6118a461191a565b73ffffffffffffffffffffffffffffffffffffffff166118c2610cfd565b73ffffffffffffffffffffffffffffffffffffffff1614611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f906139ea565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198690613a78565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f490613b06565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ad79190612e51565b60405180910390a3505050565b5f611aef8484611774565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b695781811015611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613b6e565b60405180910390fd5b611b688484848403611921565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4290613c8a565b60405180910390fd5b5f8103611c6257611c5d83835f612911565b6124f2565b611c6a610cfd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cd85750611ca8610cfd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d635750600860149054906101000a900460ff16155b156121d65760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e06575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e0e575f80fd5b600e5f9054906101000a900460ff16611efc5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ebc575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef290613cf2565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f99575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561204057600b54811115611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda90613d80565b60405180910390fd5b600c54611fef83610c21565b82611ffa9190613392565b111561203b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203290613de8565b60405180910390fd5b6121d5565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120dd575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561212c57600b54811115612127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211e90613e76565b60405180910390fd5b6121d4565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121d357600c5461218683610c21565b826121919190613392565b11156121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c990613de8565b60405180910390fd5b5b5b5b5b5f6121e030610c21565b90505f80821190508080156122015750600e60019054906101000a900460ff165b801561221a5750600860149054906101000a900460ff16155b801561226d575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122c0575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612313575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612357576001600860146101000a81548160ff02191690831515021790555061233c83612b7d565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612406575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561240f575f90505b5f81156124e25760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124945761248d606461247f60105488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90506124bf565b6124bc60646124ae600f5488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90505b5f8111156124d3576124d2873083612911565b5b80856124df9190613e94565b94505b6124ed878787612911565b505050505b505050565b5f600267ffffffffffffffff81111561251357612512612ef2565b5b6040519080825280602002602001820160405280156125415781602001602082028036833780820191505090505b50905030815f8151811061255857612557613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261f91906136cb565b8160018151811061263357612632613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612698307f000000000000000000000000000000000000000000000000000000000000000084611921565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161271a959493929190613f7e565b5f604051808303815f87803b158015612731575f80fd5b505af1158015612743573d5f803e3d5ffd5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60648211156128f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e890614046565b60405180910390fd5b606482846128ff91906133c5565b6129099190613433565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361297f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297690613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e490613c8a565b60405180910390fd5b6129f8838383612c41565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a72906140d4565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b649190612e51565b60405180910390a3612b77848484612c46565b50505050565b5f612b8730610c21565b90505f808203612b98575050612c14565b5f82118015612ba85750600d5482105b15612bb557819050612c08565b5f612bde6064612bd060105487612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90508084612bec9190613e94565b9350600d54841115612c0257600d549150612c06565b8391505b505b612c11816124f7565b50505b50565b5f8183612c2491906133c5565b905092915050565b5f8183612c399190613433565b905092915050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612c6e81612c5c565b8114612c78575f80fd5b50565b5f81359050612c8981612c65565b92915050565b5f8060408385031215612ca557612ca4612c54565b5b5f612cb285828601612c7b565b9250506020612cc385828601612c7b565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d04578082015181840152602081019050612ce9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d2982612ccd565b612d338185612cd7565b9350612d43818560208601612ce7565b612d4c81612d0f565b840191505092915050565b5f6020820190508181035f830152612d6f8184612d1f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612da082612d77565b9050919050565b612db081612d96565b8114612dba575f80fd5b50565b5f81359050612dcb81612da7565b92915050565b5f8060408385031215612de757612de6612c54565b5b5f612df485828601612dbd565b9250506020612e0585828601612c7b565b9150509250929050565b5f8115159050919050565b612e2381612e0f565b82525050565b5f602082019050612e3c5f830184612e1a565b92915050565b612e4b81612c5c565b82525050565b5f602082019050612e645f830184612e42565b92915050565b5f805f60608486031215612e8157612e80612c54565b5b5f612e8e86828701612dbd565b9350506020612e9f86828701612dbd565b9250506040612eb086828701612c7b565b9150509250925092565b5f60ff82169050919050565b612ecf81612eba565b82525050565b5f602082019050612ee85f830184612ec6565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f2882612d0f565b810181811067ffffffffffffffff82111715612f4757612f46612ef2565b5b80604052505050565b5f612f59612c4b565b9050612f658282612f1f565b919050565b5f67ffffffffffffffff821115612f8457612f83612ef2565b5b602082029050602081019050919050565b5f80fd5b5f612fab612fa684612f6a565b612f50565b90508083825260208201905060208402830185811115612fce57612fcd612f95565b5b835b81811015612ff75780612fe38882612dbd565b845260208401935050602081019050612fd0565b5050509392505050565b5f82601f83011261301557613014612eee565b5b8135613025848260208601612f99565b91505092915050565b5f6020828403121561304357613042612c54565b5b5f82013567ffffffffffffffff8111156130605761305f612c58565b5b61306c84828501613001565b91505092915050565b61307e81612d96565b82525050565b5f6020820190506130975f830184613075565b92915050565b5f602082840312156130b2576130b1612c54565b5b5f6130bf84828501612dbd565b91505092915050565b5f602082840312156130dd576130dc612c54565b5b5f6130ea84828501612c7b565b91505092915050565b5f819050919050565b5f61311661311161310c84612d77565b6130f3565b612d77565b9050919050565b5f613127826130fc565b9050919050565b5f6131388261311d565b9050919050565b6131488161312e565b82525050565b5f6020820190506131615f83018461313f565b92915050565b61317081612e0f565b811461317a575f80fd5b50565b5f8135905061318b81613167565b92915050565b5f80604083850312156131a7576131a6612c54565b5b5f6131b485828601612dbd565b92505060206131c58582860161317d565b9150509250929050565b5f6131d982612d96565b9050919050565b6131e9816131cf565b81146131f3575f80fd5b50565b5f81359050613204816131e0565b92915050565b5f6020828403121561321f5761321e612c54565b5b5f61322c848285016131f6565b91505092915050565b5f806040838503121561324b5761324a612c54565b5b5f61325885828601612dbd565b925050602061326985828601612dbd565b9150509250929050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f6132a7601683612cd7565b91506132b282613273565b602082019050919050565b5f6020820190508181035f8301526132d48161329b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061331f57607f821691505b602082108103613332576133316132db565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61339c82612c5c565b91506133a783612c5c565b92508282019050808211156133bf576133be613365565b5b92915050565b5f6133cf82612c5c565b91506133da83612c5c565b92508282026133e881612c5c565b915082820484148315176133ff576133fe613365565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61343d82612c5c565b915061344883612c5c565b92508261345857613457613406565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f613497601183612cd7565b91506134a282613463565b602082019050919050565b5f6020820190508181035f8301526134c48161348b565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6134ff601683612cd7565b915061350a826134cb565b602082019050919050565b5f6020820190508181035f83015261352c816134f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61358d603983612cd7565b915061359882613533565b604082019050919050565b5f6020820190508181035f8301526135ba81613581565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61361b602583612cd7565b9150613626826135c1565b604082019050919050565b5f6020820190508181035f8301526136488161360f565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613683601783612cd7565b915061368e8261364f565b602082019050919050565b5f6020820190508181035f8301526136b081613677565b9050919050565b5f815190506136c581612da7565b92915050565b5f602082840312156136e0576136df612c54565b5b5f6136ed848285016136b7565b91505092915050565b5f6040820190506137095f830185613075565b6137166020830184613075565b9392505050565b5f819050919050565b5f61374061373b6137368461371d565b6130f3565b612c5c565b9050919050565b61375081613726565b82525050565b5f60c0820190506137695f830189613075565b6137766020830188612e42565b6137836040830187613747565b6137906060830186613747565b61379d6080830185613075565b6137aa60a0830184612e42565b979650505050505050565b5f815190506137c381612c65565b92915050565b5f805f606084860312156137e0576137df612c54565b5b5f6137ed868287016137b5565b93505060206137fe868287016137b5565b925050604061380f868287016137b5565b9150509250925092565b5f60408201905061382c5f830185613075565b6138396020830184612e42565b9392505050565b5f8151905061384e81613167565b92915050565b5f6020828403121561386957613868612c54565b5b5f61387684828501613840565b91505092915050565b5f6020828403121561389457613893612c54565b5b5f6138a1848285016137b5565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e00000000000000005f82015250565b5f6138de601883612cd7565b91506138e9826138aa565b602082019050919050565b5f6020820190508181035f83015261390b816138d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61396c602683612cd7565b915061397782613912565b604082019050919050565b5f6020820190508181035f83015261399981613960565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139d4602083612cd7565b91506139df826139a0565b602082019050919050565b5f6020820190508181035f830152613a01816139c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a62602483612cd7565b9150613a6d82613a08565b604082019050919050565b5f6020820190508181035f830152613a8f81613a56565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af0602283612cd7565b9150613afb82613a96565b604082019050919050565b5f6020820190508181035f830152613b1d81613ae4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613b58601d83612cd7565b9150613b6382613b24565b602082019050919050565b5f6020820190508181035f830152613b8581613b4c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613be6602583612cd7565b9150613bf182613b8c565b604082019050919050565b5f6020820190508181035f830152613c1381613bda565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c74602383612cd7565b9150613c7f82613c1a565b604082019050919050565b5f6020820190508181035f830152613ca181613c68565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613cdc601683612cd7565b9150613ce782613ca8565b602082019050919050565b5f6020820190508181035f830152613d0981613cd0565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613d6a603583612cd7565b9150613d7582613d10565b604082019050919050565b5f6020820190508181035f830152613d9781613d5e565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613dd2601383612cd7565b9150613ddd82613d9e565b602082019050919050565b5f6020820190508181035f830152613dff81613dc6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613e60603683612cd7565b9150613e6b82613e06565b604082019050919050565b5f6020820190508181035f830152613e8d81613e54565b9050919050565b5f613e9e82612c5c565b9150613ea983612c5c565b9250828203905081811115613ec157613ec0613365565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ef981612d96565b82525050565b5f613f0a8383613ef0565b60208301905092915050565b5f602082019050919050565b5f613f2c82613ec7565b613f368185613ed1565b9350613f4183613ee1565b805f5b83811015613f71578151613f588882613eff565b9750613f6383613f16565b925050600181019050613f44565b5085935050505092915050565b5f60a082019050613f915f830188612e42565b613f9e6020830187613747565b8181036040830152613fb08186613f22565b9050613fbf6060830185613075565b613fcc6080830184612e42565b9695505050505050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f614030602483612cd7565b915061403b82613fd6565b604082019050919050565b5f6020820190508181035f83015261405d81614024565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6140be602683612cd7565b91506140c982614064565b604082019050919050565b5f6020820190508181035f8301526140eb816140b2565b905091905056fea2646970667358221220231d25fe1fd3ba0aedfa9c0eff4c034224daa20475be4d34ce795259075347bf64736f6c634300081600330000000000000000000000003ba37aa312f0d3c45c8f5b53f08f9148cbd664e9

Deployed Bytecode

0x60806040526004361061021d575f3560e01c80638da5cb5b11610122578063c9567bf9116100aa578063dd8546521161006e578063dd85465214610796578063e2f45605146107c0578063f2fde38b146107ea578063f8b45b0514610812578063ffb54a991461083c57610224565b8063c9567bf9146106ca578063cf9522fd146106e0578063d34628cc1461070a578063db1b718214610732578063dd62ed3e1461075a57610224565b8063a457c2d7116100f1578063a457c2d7146105d8578063a9059cbb14610614578063afa4f3b214610650578063c024666814610678578063c8c8ebe4146106a057610224565b80638da5cb5b1461054657806394f153841461057057806395d89b41146105865780639a7a23d6146105b057610224565b806349bd5a5e116101a55780636ddd1713116101745780636ddd17131461048c57806370a08231146104b6578063715018a6146104f2578063751039fc146105085780637571336a1461051e57610224565b806349bd5a5e146103d45780634fbee193146103fe578063500b9aa21461043a578063583e05681461046257610224565b806323b872dd116101ec57806323b872dd146102e0578063311028af1461031c578063313ce5671461034657806331c2d84714610370578063395093511461039857610224565b8063032dc6a21461022857806306fdde0314610250578063095ea7b31461027a57806318160ddd146102b657610224565b3661022457005b5f80fd5b348015610233575f80fd5b5061024e60048036038101906102499190612c8f565b610866565b005b34801561025b575f80fd5b506102646108d1565b6040516102719190612d57565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190612dd1565b610961565b6040516102ad9190612e29565b60405180910390f35b3480156102c1575f80fd5b506102ca610983565b6040516102d79190612e51565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190612e6a565b61098c565b6040516103139190612e29565b60405180910390f35b348015610327575f80fd5b506103306109ba565b60405161033d9190612e51565b60405180910390f35b348015610351575f80fd5b5061035a6109c0565b6040516103679190612ed5565b60405180910390f35b34801561037b575f80fd5b506103966004803603810190610391919061302e565b6109c8565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190612dd1565b610a5a565b6040516103cb9190612e29565b60405180910390f35b3480156103df575f80fd5b506103e8610a90565b6040516103f59190613084565b60405180910390f35b348015610409575f80fd5b50610424600480360381019061041f919061309d565b610ab5565b6040516104319190612e29565b60405180910390f35b348015610445575f80fd5b50610460600480360381019061045b91906130c8565b610b07565b005b34801561046d575f80fd5b50610476610bea565b604051610483919061314e565b60405180910390f35b348015610497575f80fd5b506104a0610c0e565b6040516104ad9190612e29565b60405180910390f35b3480156104c1575f80fd5b506104dc60048036038101906104d7919061309d565b610c21565b6040516104e99190612e51565b60405180910390f35b3480156104fd575f80fd5b50610506610c66565b005b348015610513575f80fd5b5061051c610c79565b005b348015610529575f80fd5b50610544600480360381019061053f9190613191565b610c9d565b005b348015610551575f80fd5b5061055a610cfd565b6040516105679190613084565b60405180910390f35b34801561057b575f80fd5b50610584610d25565b005b348015610591575f80fd5b5061059a610e0c565b6040516105a79190612d57565b60405180910390f35b3480156105bb575f80fd5b506105d660048036038101906105d19190613191565b610e9c565b005b3480156105e3575f80fd5b506105fe60048036038101906105f99190612dd1565b610f41565b60405161060b9190612e29565b60405180910390f35b34801561061f575f80fd5b5061063a60048036038101906106359190612dd1565b610fb6565b6040516106479190612e29565b60405180910390f35b34801561065b575f80fd5b50610676600480360381019061067191906130c8565b610fd8565b005b348015610683575f80fd5b5061069e60048036038101906106999190613191565b610ffd565b005b3480156106ab575f80fd5b506106b46110ab565b6040516106c19190612e51565b60405180910390f35b3480156106d5575f80fd5b506106de6110b1565b005b3480156106eb575f80fd5b506106f461153d565b6040516107019190612e51565b60405180910390f35b348015610715575f80fd5b50610730600480360381019061072b919061302e565b611543565b005b34801561073d575f80fd5b506107586004803603810190610753919061320a565b6115d6565b005b348015610765575f80fd5b50610780600480360381019061077b9190613235565b611774565b60405161078d9190612e51565b60405180910390f35b3480156107a1575f80fd5b506107aa6117f6565b6040516107b79190612e51565b60405180910390f35b3480156107cb575f80fd5b506107d46117fc565b6040516107e19190612e51565b60405180910390f35b3480156107f5575f80fd5b50610810600480360381019061080b919061309d565b611802565b005b34801561081d575f80fd5b50610826611884565b6040516108339190612e51565b60405180910390f35b348015610847575f80fd5b5061085061188a565b60405161085d9190612e29565b60405180910390f35b61086e61189c565b601e8211158015610880575060638111155b6108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b6906132bd565b60405180910390fd5b81600f81905550806010819055505050565b6060600380546108e090613308565b80601f016020809104026020016040519081016040528092919081815260200182805461090c90613308565b80156109575780601f1061092e57610100808354040283529160200191610957565b820191905f5260205f20905b81548152906001019060200180831161093a57829003601f168201915b5050505050905090565b5f8061096b61191a565b9050610978818585611921565b600191505092915050565b5f600254905090565b5f8061099661191a565b90506109a3858285611ae4565b6109ae858585611b6f565b60019150509392505050565b600a5481565b5f6012905090565b6109d061189c565b5f5b8151811015610a56575f60095f8484815181106109f2576109f1613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109d2565b5050565b5f80610a6461191a565b9050610a85818585610a768589611774565b610a809190613392565b611921565b600191505092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610b66575f80fd5b5f610b6f610983565b90505f610b7b30610c21565b90505f60648484610b8c91906133c5565b610b969190613433565b905080821015610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd2906134ad565b60405180910390fd5b610be4816124f7565b50505050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b600e60019054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c6e61189c565b610c775f61274b565b565b610c8161189c565b5f610c8a610983565b905080600b8190555080600c8190555050565b610ca561189c565b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f4711610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90613515565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da761191a565b73ffffffffffffffffffffffffffffffffffffffff1614610dc6575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610e09573d5f803e3d5ffd5b50565b606060048054610e1b90613308565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4790613308565b8015610e925780601f10610e6957610100808354040283529160200191610e92565b820191905f5260205f20905b815481529060010190602001808311610e7557829003601f168201915b5050505050905090565b610ea461189c565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2a906135a3565b60405180910390fd5b610f3d828261280e565b5050565b5f80610f4b61191a565b90505f610f588286611774565b905083811015610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9490613631565b60405180910390fd5b610faa8286868403611921565b60019250505092915050565b5f80610fc061191a565b9050610fcd818585611b6f565b600191505092915050565b610fe061189c565b670de0b6b3a764000081610ff491906133c5565b600d8190555050565b61100561189c565b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df78260405161109f9190612e29565b60405180910390a25050565b600b5481565b6110b961189c565b600e5f9054906101000a900460ff1615611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90613699565b60405180910390fd5b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611171573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061119591906136cb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561121a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061123e91906136cb565b6040518363ffffffff1660e01b815260040161125b9291906136f6565b6020604051808303815f875af1158015611277573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129b91906136cb565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061130660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001610c9d565b61133260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600161280e565b61135f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600a54611921565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113b960506113ab30610c21565b6128ac90919063ffffffff16565b5f806113c3610cfd565b426040518863ffffffff1660e01b81526004016113e596959493929190613756565b60606040518083038185885af1158015611401573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061142691906137c9565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114c5929190613819565b6020604051808303815f875af11580156114e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115059190613854565b506001600e60016101000a81548160ff0219169083151502179055506001600e5f6101000a81548160ff021916908315150217905550565b60105481565b61154b61189c565b5f5b81518110156115d257600160095f84848151811061156e5761156d613338565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061154d565b5050565b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016116109190613084565b602060405180830381865afa15801561162b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061164f919061387f565b90505f8111611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a906138f4565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116d361191a565b73ffffffffffffffffffffffffffffffffffffffff16146116f2575f80fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b815260040161172f929190613819565b6020604051808303815f875af115801561174b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061176f9190613854565b505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600f5481565b600d5481565b61180a61189c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186f90613982565b60405180910390fd5b6118818161274b565b50565b600c5481565b600e5f9054906101000a900460ff1681565b6118a461191a565b73ffffffffffffffffffffffffffffffffffffffff166118c2610cfd565b73ffffffffffffffffffffffffffffffffffffffff1614611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f906139ea565b60405180910390fd5b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198690613a78565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f490613b06565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ad79190612e51565b60405180910390a3505050565b5f611aef8484611774565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b695781811015611b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5290613b6e565b60405180910390fd5b611b688484848403611921565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4290613c8a565b60405180910390fd5b5f8103611c6257611c5d83835f612911565b6124f2565b611c6a610cfd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611cd85750611ca8610cfd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d4a575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611d635750600860149054906101000a900460ff16155b156121d65760095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e06575060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e0e575f80fd5b600e5f9054906101000a900460ff16611efc5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ebc575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef290613cf2565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f99575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561204057600b54811115611fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fda90613d80565b60405180910390fd5b600c54611fef83610c21565b82611ffa9190613392565b111561203b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203290613de8565b60405180910390fd5b6121d5565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120dd575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561212c57600b54811115612127576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211e90613e76565b60405180910390fd5b6121d4565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166121d357600c5461218683610c21565b826121919190613392565b11156121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c990613de8565b60405180910390fd5b5b5b5b5b5f6121e030610c21565b90505f80821190508080156122015750600e60019054906101000a900460ff165b801561221a5750600860149054906101000a900460ff16155b801561226d575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156122c0575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612313575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612357576001600860146101000a81548160ff02191690831515021790555061233c83612b7d565b5f600860146101000a81548160ff0219169083151502179055505b5f600860149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612406575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561240f575f90505b5f81156124e25760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156124945761248d606461247f60105488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90506124bf565b6124bc60646124ae600f5488612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90505b5f8111156124d3576124d2873083612911565b5b80856124df9190613e94565b94505b6124ed878787612911565b505050505b505050565b5f600267ffffffffffffffff81111561251357612512612ef2565b5b6040519080825280602002602001820160405280156125415781602001602082028036833780820191505090505b50905030815f8151811061255857612557613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061261f91906136cb565b8160018151811061263357612632613338565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612698307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611921565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161271a959493929190613f7e565b5f604051808303815f87803b158015612731575f80fd5b505af1158015612743573d5f803e3d5ffd5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60648211156128f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e890614046565b60405180910390fd5b606482846128ff91906133c5565b6129099190613433565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361297f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297690613bfc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129e490613c8a565b60405180910390fd5b6129f8838383612c41565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a72906140d4565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b649190612e51565b60405180910390a3612b77848484612c46565b50505050565b5f612b8730610c21565b90505f808203612b98575050612c14565b5f82118015612ba85750600d5482105b15612bb557819050612c08565b5f612bde6064612bd060105487612c1790919063ffffffff16565b612c2c90919063ffffffff16565b90508084612bec9190613e94565b9350600d54841115612c0257600d549150612c06565b8391505b505b612c11816124f7565b50505b50565b5f8183612c2491906133c5565b905092915050565b5f8183612c399190613433565b905092915050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612c6e81612c5c565b8114612c78575f80fd5b50565b5f81359050612c8981612c65565b92915050565b5f8060408385031215612ca557612ca4612c54565b5b5f612cb285828601612c7b565b9250506020612cc385828601612c7b565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d04578082015181840152602081019050612ce9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d2982612ccd565b612d338185612cd7565b9350612d43818560208601612ce7565b612d4c81612d0f565b840191505092915050565b5f6020820190508181035f830152612d6f8184612d1f565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612da082612d77565b9050919050565b612db081612d96565b8114612dba575f80fd5b50565b5f81359050612dcb81612da7565b92915050565b5f8060408385031215612de757612de6612c54565b5b5f612df485828601612dbd565b9250506020612e0585828601612c7b565b9150509250929050565b5f8115159050919050565b612e2381612e0f565b82525050565b5f602082019050612e3c5f830184612e1a565b92915050565b612e4b81612c5c565b82525050565b5f602082019050612e645f830184612e42565b92915050565b5f805f60608486031215612e8157612e80612c54565b5b5f612e8e86828701612dbd565b9350506020612e9f86828701612dbd565b9250506040612eb086828701612c7b565b9150509250925092565b5f60ff82169050919050565b612ecf81612eba565b82525050565b5f602082019050612ee85f830184612ec6565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f2882612d0f565b810181811067ffffffffffffffff82111715612f4757612f46612ef2565b5b80604052505050565b5f612f59612c4b565b9050612f658282612f1f565b919050565b5f67ffffffffffffffff821115612f8457612f83612ef2565b5b602082029050602081019050919050565b5f80fd5b5f612fab612fa684612f6a565b612f50565b90508083825260208201905060208402830185811115612fce57612fcd612f95565b5b835b81811015612ff75780612fe38882612dbd565b845260208401935050602081019050612fd0565b5050509392505050565b5f82601f83011261301557613014612eee565b5b8135613025848260208601612f99565b91505092915050565b5f6020828403121561304357613042612c54565b5b5f82013567ffffffffffffffff8111156130605761305f612c58565b5b61306c84828501613001565b91505092915050565b61307e81612d96565b82525050565b5f6020820190506130975f830184613075565b92915050565b5f602082840312156130b2576130b1612c54565b5b5f6130bf84828501612dbd565b91505092915050565b5f602082840312156130dd576130dc612c54565b5b5f6130ea84828501612c7b565b91505092915050565b5f819050919050565b5f61311661311161310c84612d77565b6130f3565b612d77565b9050919050565b5f613127826130fc565b9050919050565b5f6131388261311d565b9050919050565b6131488161312e565b82525050565b5f6020820190506131615f83018461313f565b92915050565b61317081612e0f565b811461317a575f80fd5b50565b5f8135905061318b81613167565b92915050565b5f80604083850312156131a7576131a6612c54565b5b5f6131b485828601612dbd565b92505060206131c58582860161317d565b9150509250929050565b5f6131d982612d96565b9050919050565b6131e9816131cf565b81146131f3575f80fd5b50565b5f81359050613204816131e0565b92915050565b5f6020828403121561321f5761321e612c54565b5b5f61322c848285016131f6565b91505092915050565b5f806040838503121561324b5761324a612c54565b5b5f61325885828601612dbd565b925050602061326985828601612dbd565b9150509250929050565b7f466565732063616e6e6f742065786365656420333025000000000000000000005f82015250565b5f6132a7601683612cd7565b91506132b282613273565b602082019050919050565b5f6020820190508181035f8301526132d48161329b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061331f57607f821691505b602082108103613332576133316132db565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61339c82612c5c565b91506133a783612c5c565b92508282019050808211156133bf576133be613365565b5b92915050565b5f6133cf82612c5c565b91506133da83612c5c565b92508282026133e881612c5c565b915082820484148315176133ff576133fe613365565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61343d82612c5c565b915061344883612c5c565b92508261345857613457613406565b5b828204905092915050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f613497601183612cd7565b91506134a282613463565b602082019050919050565b5f6020820190508181035f8301526134c48161348b565b9050919050565b7f546f6b656e3a206e6f2045544820746f20636c656172000000000000000000005f82015250565b5f6134ff601683612cd7565b915061350a826134cb565b602082019050919050565b5f6020820190508181035f83015261352c816134f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f61358d603983612cd7565b915061359882613533565b604082019050919050565b5f6020820190508181035f8301526135ba81613581565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61361b602583612cd7565b9150613626826135c1565b604082019050919050565b5f6020820190508181035f8301526136488161360f565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f613683601783612cd7565b915061368e8261364f565b602082019050919050565b5f6020820190508181035f8301526136b081613677565b9050919050565b5f815190506136c581612da7565b92915050565b5f602082840312156136e0576136df612c54565b5b5f6136ed848285016136b7565b91505092915050565b5f6040820190506137095f830185613075565b6137166020830184613075565b9392505050565b5f819050919050565b5f61374061373b6137368461371d565b6130f3565b612c5c565b9050919050565b61375081613726565b82525050565b5f60c0820190506137695f830189613075565b6137766020830188612e42565b6137836040830187613747565b6137906060830186613747565b61379d6080830185613075565b6137aa60a0830184612e42565b979650505050505050565b5f815190506137c381612c65565b92915050565b5f805f606084860312156137e0576137df612c54565b5b5f6137ed868287016137b5565b93505060206137fe868287016137b5565b925050604061380f868287016137b5565b9150509250925092565b5f60408201905061382c5f830185613075565b6138396020830184612e42565b9392505050565b5f8151905061384e81613167565b92915050565b5f6020828403121561386957613868612c54565b5b5f61387684828501613840565b91505092915050565b5f6020828403121561389457613893612c54565b5b5f6138a1848285016137b5565b91505092915050565b7f546f6b656e3a206e6f20746f6b656e7320746f206275726e00000000000000005f82015250565b5f6138de601883612cd7565b91506138e9826138aa565b602082019050919050565b5f6020820190508181035f83015261390b816138d2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61396c602683612cd7565b915061397782613912565b604082019050919050565b5f6020820190508181035f83015261399981613960565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139d4602083612cd7565b91506139df826139a0565b602082019050919050565b5f6020820190508181035f830152613a01816139c8565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613a62602483612cd7565b9150613a6d82613a08565b604082019050919050565b5f6020820190508181035f830152613a8f81613a56565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613af0602283612cd7565b9150613afb82613a96565b604082019050919050565b5f6020820190508181035f830152613b1d81613ae4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f613b58601d83612cd7565b9150613b6382613b24565b602082019050919050565b5f6020820190508181035f830152613b8581613b4c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613be6602583612cd7565b9150613bf182613b8c565b604082019050919050565b5f6020820190508181035f830152613c1381613bda565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613c74602383612cd7565b9150613c7f82613c1a565b604082019050919050565b5f6020820190508181035f830152613ca181613c68565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f613cdc601683612cd7565b9150613ce782613ca8565b602082019050919050565b5f6020820190508181035f830152613d0981613cd0565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f613d6a603583612cd7565b9150613d7582613d10565b604082019050919050565b5f6020820190508181035f830152613d9781613d5e565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f613dd2601383612cd7565b9150613ddd82613d9e565b602082019050919050565b5f6020820190508181035f830152613dff81613dc6565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f613e60603683612cd7565b9150613e6b82613e06565b604082019050919050565b5f6020820190508181035f830152613e8d81613e54565b9050919050565b5f613e9e82612c5c565b9150613ea983612c5c565b9250828203905081811115613ec157613ec0613365565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613ef981612d96565b82525050565b5f613f0a8383613ef0565b60208301905092915050565b5f602082019050919050565b5f613f2c82613ec7565b613f368185613ed1565b9350613f4183613ee1565b805f5b83811015613f71578151613f588882613eff565b9750613f6383613f16565b925050600181019050613f44565b5085935050505092915050565b5f60a082019050613f915f830188612e42565b613f9e6020830187613747565b8181036040830152613fb08186613f22565b9050613fbf6060830185613075565b613fcc6080830184612e42565b9695505050505050565b7f50657263656e74616765206d757374206265206265747765656e203020616e645f8201527f2031303000000000000000000000000000000000000000000000000000000000602082015250565b5f614030602483612cd7565b915061403b82613fd6565b604082019050919050565b5f6020820190508181035f83015261405d81614024565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6140be602683612cd7565b91506140c982614064565b604082019050919050565b5f6020820190508181035f8301526140eb816140b2565b905091905056fea2646970667358221220231d25fe1fd3ba0aedfa9c0eff4c034224daa20475be4d34ce795259075347bf64736f6c63430008160033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000003ba37aa312f0d3c45c8f5b53f08f9148cbd664e9

-----Decoded View---------------
Arg [0] : wallet (address): 0x3bA37Aa312F0d3c45c8f5B53F08f9148cBd664E9

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003ba37aa312f0d3c45c8f5b53f08f9148cbd664e9


Deployed Bytecode Sourcemap

15280:9204:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23630:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10508:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11440:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10829:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11649:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15773:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10728:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19279:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11918:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15424:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18970:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23216:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15365:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16028:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10945:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1607:103;;;;;;;;;;;;;:::i;:::-;;22319:194;;;;;;;;;;;;;:::i;:::-;;18138:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1372:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22521:226;;;;;;;;;;;;;:::i;:::-;;10616:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18503:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12164:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11080:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23081:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18313:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15830:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17393:739;;;;;;;;;;;;;:::i;:::-;;16101:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19104:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22755:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11281:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16068:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15933:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1718:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15887:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15990:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23630:211;1331:13;:11;:13::i;:::-;23730:2:::1;23719:7;:13;;:31;;;;;23748:2;23736:8;:14;;23719:31;23711:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23797:7;23788:6;:16;;;;23825:8;23815:7;:18;;;;23630:211:::0;;:::o;10508:100::-;10562:13;10595:5;10588:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10508:100;:::o;11440:201::-;11523:4;11540:13;11556:12;:10;:12::i;:::-;11540:28;;11579:32;11588:5;11595:7;11604:6;11579:8;:32::i;:::-;11629:4;11622:11;;;11440:201;;;;:::o;10829:108::-;10890:7;10917:12;;10910:19;;10829:108;:::o;11649:261::-;11746:4;11763:15;11781:12;:10;:12::i;:::-;11763:30;;11804:38;11820:4;11826:7;11835:6;11804:15;:38::i;:::-;11853:27;11863:4;11869:2;11873:6;11853:9;:27::i;:::-;11898:4;11891:11;;;11649:261;;;;;:::o;15773:50::-;;;;:::o;10728:93::-;10786:5;10811:2;10804:9;;10728:93;:::o;19279:171::-;1331:13;:11;:13::i;:::-;19354:9:::1;19349:94;19373:6;:13;19369:1;:17;19349:94;;;19426:5;19408:4;:15;19413:6;19420:1;19413:9;;;;;;;;:::i;:::-;;;;;;;;19408:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;19388:3;;;;;;;19349:94;;;;19279:171:::0;:::o;11918:238::-;12006:4;12023:13;12039:12;:10;:12::i;:::-;12023:28;;12062:64;12071:5;12078:7;12115:10;12087:25;12097:5;12104:7;12087:9;:25::i;:::-;:38;;;;:::i;:::-;12062:8;:64::i;:::-;12144:4;12137:11;;;11918:238;;;;:::o;15424:28::-;;;;;;;;;;;;;:::o;18970:126::-;19036:4;19060:19;:28;19080:7;19060:28;;;;;;;;;;;;;;;;;;;;;;;;;19053:35;;18970:126;;;:::o;23216:406::-;23296:15;;;;;;;;;;;23280:31;;:12;:10;:12::i;:::-;:31;;;23272:40;;;;;;23323:25;23351:13;:11;:13::i;:::-;23323:41;;23375:23;23401:24;23419:4;23401:9;:24::i;:::-;23375:50;;23436:23;23492:3;23482:7;23462:17;:27;;;;:::i;:::-;:33;;;;:::i;:::-;23436:59;;23533:15;23514;:34;;23506:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23581:33;23598:15;23581:16;:33::i;:::-;23261:361;;;23216:406;:::o;15365:52::-;;;:::o;16028:31::-;;;;;;;;;;;;;:::o;10945:127::-;11019:7;11046:9;:18;11056:7;11046:18;;;;;;;;;;;;;;;;11039:25;;10945:127;;;:::o;1607:103::-;1331:13;:11;:13::i;:::-;1672:30:::1;1699:1;1672:18;:30::i;:::-;1607:103::o:0;22319:194::-;1331:13;:11;:13::i;:::-;22373:25:::1;22401:13;:11;:13::i;:::-;22373:41;;22448:17;22425:20;:40;;;;22488:17;22476:9;:29;;;;22362:151;22319:194::o:0;18138:167::-;1331:13;:11;:13::i;:::-;18293:4:::1;18251:31;:39;18283:6;18251:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18138:167:::0;;:::o;1372:87::-;1418:7;1445:6;;;;;;;;;;;1438:13;;1372:87;:::o;22521:226::-;22598:1;22574:21;:25;22566:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;22661:15;;;;;;;;;;;22645:31;;:12;:10;:12::i;:::-;:31;;;22637:40;;;;;;22696:10;22688:28;;:51;22717:21;22688:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22521:226::o;10616:104::-;10672:13;10705:7;10698:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10616:104;:::o;18503:265::-;1331:13;:11;:13::i;:::-;18633::::1;;;;;;;;;;;18625:21;;:4;:21;;::::0;18617:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18719:41;18748:4;18754:5;18719:28;:41::i;:::-;18503:265:::0;;:::o;12164:436::-;12257:4;12274:13;12290:12;:10;:12::i;:::-;12274:28;;12313:24;12340:25;12350:5;12357:7;12340:9;:25::i;:::-;12313:52;;12404:15;12384:16;:35;;12376:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;12497:60;12506:5;12513:7;12541:15;12522:16;:34;12497:8;:60::i;:::-;12588:4;12581:11;;;;12164:436;;;;:::o;11080:193::-;11159:4;11176:13;11192:12;:10;:12::i;:::-;11176:28;;11215;11225:5;11232:2;11236:6;11215:9;:28::i;:::-;11261:4;11254:11;;;11080:193;;;;:::o;23081:127::-;1331:13;:11;:13::i;:::-;23191:8:::1;23180:7;:20;;;;:::i;:::-;23159:18;:41;;;;23081:127:::0;:::o;18313:182::-;1331:13;:11;:13::i;:::-;18429:8:::1;18398:19;:28;18418:7;18398:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18469:7;18453:34;;;18478:8;18453:34;;;;;;:::i;:::-;;;;;;;;18313:182:::0;;:::o;15830:50::-;;;;:::o;17393:739::-;1331:13;:11;:13::i;:::-;17457:11:::1;;;;;;;;;;;17456:12;17448:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;17540:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17522:56;;;17587:4;17594:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17522:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17506:13;;:112;;;;;;;;;;;;;;;;;;17629:55;17663:13;;;;;;;;;;;17679:4;17629:25;:55::i;:::-;17695:58;17732:13;;;;;;;;;;;17748:4;17695:28;:58::i;:::-;17764:70;17781:4;17796:16;17815:18;;17764:8;:70::i;:::-;17845:16;:32;;;17885:21;17916:4;17922:32;17951:2;17922:24;17940:4;17922:9;:24::i;:::-;:28;;:32;;;;:::i;:::-;17955:1;17957::::0;17959:7:::1;:5;:7::i;:::-;17967:15;17845:138;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18001:13;;;;;;;;;;;17994:29;;;18032:16;18051:14;17994:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18091:4;18077:11;;:18;;;;;;;;;;;;;;;;;;18120:4;18106:11;;:18;;;;;;;;;;;;;;;;;;17393:739::o:0;16101:27::-;;;;:::o;19104:167::-;1331:13;:11;:13::i;:::-;19178:9:::1;19173:91;19197:5;:12;19193:1;:16;19173:91;;;19248:4;19231;:14;19236:5;19242:1;19236:8;;;;;;;;:::i;:::-;;;;;;;;19231:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;19211:3;;;;;;;19173:91;;;;19104:167:::0;:::o;22755:318::-;22822:23;22848:12;:22;;;22879:4;22848:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22822:63;;22922:1;22904:15;:19;22896:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;22987:15;;;;;;;;;;;22971:31;;:12;:10;:12::i;:::-;:31;;;22963:40;;;;;;23014:12;:21;;;15581:6;23049:15;23014:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;22811:262;22755:318;:::o;11281:151::-;11370:7;11397:11;:18;11409:5;11397:18;;;;;;;;;;;;;;;:27;11416:7;11397:27;;;;;;;;;;;;;;;;11390:34;;11281:151;;;;:::o;16068:26::-;;;;:::o;15933:48::-;;;;:::o;1718:201::-;1331:13;:11;:13::i;:::-;1827:1:::1;1807:22;;:8;:22;;::::0;1799:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1883:28;1902:8;1883:18;:28::i;:::-;1718:201:::0;:::o;15887:39::-;;;;:::o;15990:31::-;;;;;;;;;;;;;:::o;1467:132::-;1542:12;:10;:12::i;:::-;1531:23;;:7;:5;:7::i;:::-;:23;;;1523:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1467:132::o;845:98::-;898:7;925:10;918:17;;845:98;:::o;14303:346::-;14422:1;14405:19;;:5;:19;;;14397:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14503:1;14484:21;;:7;:21;;;14476:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14587:6;14557:11;:18;14569:5;14557:18;;;;;;;;;;;;;;;:27;14576:7;14557:27;;;;;;;;;;;;;;;:36;;;;14625:7;14609:32;;14618:5;14609:32;;;14634:6;14609:32;;;;;;:::i;:::-;;;;;;;;14303:346;;;:::o;14657:419::-;14758:24;14785:25;14795:5;14802:7;14785:9;:25::i;:::-;14758:52;;14845:17;14825:16;:37;14821:248;;14907:6;14887:16;:26;;14879:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14991:51;15000:5;15007:7;15035:6;15016:16;:25;14991:8;:51::i;:::-;14821:248;14747:329;14657:419;;;:::o;19458:2367::-;19574:1;19558:18;;:4;:18;;;19550:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19651:1;19637:16;;:2;:16;;;19629:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19728:1;19718:6;:11;19714:93;;19746:28;19762:4;19768:2;19772:1;19746:15;:28::i;:::-;19789:7;;19714:93;19831:7;:5;:7::i;:::-;19823:15;;:4;:15;;;;:32;;;;;19848:7;:5;:7::i;:::-;19842:13;;:2;:13;;;;19823:32;:52;;;;;19873:1;19859:16;;:2;:16;;;;19823:52;:77;;;;;19893:6;19879:21;;:2;:21;;;;19823:77;:90;;;;;19905:8;;;;;;;;;;;19904:9;19823:90;19819:1046;;;19941:4;:10;19946:4;19941:10;;;;;;;;;;;;;;;;;;;;;;;;;19940:11;:24;;;;;19956:4;:8;19961:2;19956:8;;;;;;;;;;;;;;;;;;;;;;;;;19955:9;19940:24;19932:33;;;;;;19987:11;;;;;;;;;;;19982:140;;20027:19;:25;20047:4;20027:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;20056:19;:23;20076:2;20056:23;;;;;;;;;;;;;;;;;;;;;;;;;20027:52;20019:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19982:140;20142:25;:31;20168:4;20142:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20178:31;:35;20210:2;20178:35;;;;;;;;;;;;;;;;;;;;;;;;;20177:36;20142:71;20138:716;;;20266:20;;20256:6;:30;;20248:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20397:9;;20380:13;20390:2;20380:9;:13::i;:::-;20371:6;:22;;;;:::i;:::-;:35;;20363:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20138:716;;;20471:25;:29;20497:2;20471:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20505:31;:37;20537:4;20505:37;;;;;;;;;;;;;;;;;;;;;;;;;20504:38;20471:71;20467:387;;;20581:20;;20571:6;:30;;20563:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20467:387;;;20715:31;:35;20747:2;20715:35;;;;;;;;;;;;;;;;;;;;;;;;;20710:144;;20805:9;;20788:13;20798:2;20788:9;:13::i;:::-;20779:6;:22;;;;:::i;:::-;:35;;20771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20710:144;20467:387;20138:716;19819:1046;20877:28;20908:24;20926:4;20908:9;:24::i;:::-;20877:55;;20945:12;20983:1;20960:20;:24;20945:39;;21001:7;:22;;;;;21012:11;;;;;;;;;;;21001:22;:35;;;;;21028:8;;;;;;;;;;;21027:9;21001:35;:71;;;;;21041:25;:31;21067:4;21041:31;;;;;;;;;;;;;;;;;;;;;;;;;21040:32;21001:71;:101;;;;;21077:19;:25;21097:4;21077:25;;;;;;;;;;;;;;;;;;;;;;;;;21076:26;21001:101;:129;;;;;21107:19;:23;21127:2;21107:23;;;;;;;;;;;;;;;;;;;;;;;;;21106:24;21001:129;20997:239;;;21158:4;21147:8;;:15;;;;;;;;;;;;;;;;;;21177:16;21186:6;21177:8;:16::i;:::-;21219:5;21208:8;;:16;;;;;;;;;;;;;;;;;;20997:239;21248:12;21264:8;;;;;;;;;;;21263:9;21248:24;;21289:19;:25;21309:4;21289:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21318:19;:23;21338:2;21318:23;;;;;;;;;;;;;;;;;;;;;;;;;21289:52;21285:100;;;21368:5;21358:15;;21285:100;21397:12;21430:7;21426:348;;;21458:25;:29;21484:2;21458:29;;;;;;;;;;;;;;;;;;;;;;;;;21454:193;;;21515:28;21539:3;21515:19;21526:7;;21515:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;21508:35;;21454:193;;;21604:27;21627:3;21604:18;21615:6;;21604;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;21597:34;;21454:193;21670:1;21663:4;:8;21659:83;;;21688:42;21704:4;21718;21725;21688:15;:42::i;:::-;21659:83;21762:4;21752:14;;;;;:::i;:::-;;;21426:348;21784:33;21800:4;21806:2;21810:6;21784:15;:33::i;:::-;19537:2288;;;;19458:2367;;;;:::o;21833:478::-;21901:21;21939:1;21925:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21901:40;;21970:4;21952;21957:1;21952:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;21996:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21986:4;21991:1;21986:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;22030:63;22047:4;22062:16;22081:11;22030:8;:63::i;:::-;22104:16;:67;;;22186:11;22212:1;22228:4;22247:15;;;;;;;;;;;22277;22104:199;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21888:423;21833:478;:::o;1927:191::-;2001:16;2020:6;;;;;;;;;;;2001:25;;2046:8;2037:6;;:17;;;;;;;;;;;;;;;;;;2101:8;2070:40;;2091:8;2070:40;;;;;;;;;;;;1990:128;1927:191;:::o;18776:186::-;18893:5;18859:25;:31;18885:4;18859:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;18948:5;18914:40;;18942:4;18914:40;;;;;;;;;;;;18776:186;;:::o;9497:172::-;9555:7;9588:3;9583:1;:8;;9575:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9658:3;9654:1;9650;:5;;;;:::i;:::-;:11;;;;:::i;:::-;9643:18;;9497:172;;;;:::o;12608:641::-;12721:1;12705:18;;:4;:18;;;12697:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12798:1;12784:16;;:2;:16;;;12776:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12853:38;12874:4;12880:2;12884:6;12853:20;:38::i;:::-;12904:19;12926:9;:15;12936:4;12926:15;;;;;;;;;;;;;;;;12904:37;;12975:6;12960:11;:21;;12952:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13092:6;13078:11;:20;13060:9;:15;13070:4;13060:15;;;;;;;;;;;;;;;:38;;;;13130:6;13113:9;:13;13123:2;13113:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;13180:2;13165:26;;13174:4;13165:26;;;13184:6;13165:26;;;;;;:::i;:::-;;;;;;;;13204:37;13224:4;13230:2;13234:6;13204:19;:37::i;:::-;12686:563;12608:641;;;:::o;23849:632::-;23902:23;23928:24;23946:4;23928:9;:24::i;:::-;23902:50;;23963:20;24013:1;23994:15;:20;23990:449;;24027:7;;;;23990:449;24074:1;24056:15;:19;:59;;;;;24097:18;;24079:15;:36;24056:59;24053:386;;;24143:15;24128:30;;24053:386;;;24188:21;24212:28;24236:3;24212:19;24223:7;;24212:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;24188:52;;24261:13;24251:23;;;;;:::i;:::-;;;24298:18;;24289:6;:27;24285:147;;;24348:18;;24333:33;;24285:147;;;24414:6;24399:21;;24285:147;24177:262;24053:386;24445:30;24462:12;24445:16;:30::i;:::-;23891:590;;23849:632;;:::o;8965:98::-;9023:7;9054:1;9050;:5;;;;:::i;:::-;9043:12;;8965:98;;;;:::o;9071:::-;9129:7;9160:1;9156;:5;;;;:::i;:::-;9149:12;;9071:98;;;;:::o;15084:91::-;;;;:::o;15183:90::-;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:474::-;758:6;766;815:2;803:9;794:7;790:23;786:32;783:119;;;821:79;;:::i;:::-;783:119;941:1;966:53;1011:7;1002:6;991:9;987:22;966:53;:::i;:::-;956:63;;912:117;1068:2;1094:53;1139:7;1130:6;1119:9;1115:22;1094:53;:::i;:::-;1084:63;;1039:118;690:474;;;;;:::o;1170:99::-;1222:6;1256:5;1250:12;1240:22;;1170:99;;;:::o;1275:169::-;1359:11;1393:6;1388:3;1381:19;1433:4;1428:3;1424:14;1409:29;;1275:169;;;;:::o;1450:246::-;1531:1;1541:113;1555:6;1552:1;1549:13;1541:113;;;1640:1;1635:3;1631:11;1625:18;1621:1;1616:3;1612:11;1605:39;1577:2;1574:1;1570:10;1565:15;;1541:113;;;1688:1;1679:6;1674:3;1670:16;1663:27;1512:184;1450:246;;;:::o;1702:102::-;1743:6;1794:2;1790:7;1785:2;1778:5;1774:14;1770:28;1760:38;;1702:102;;;:::o;1810:377::-;1898:3;1926:39;1959:5;1926:39;:::i;:::-;1981:71;2045:6;2040:3;1981:71;:::i;:::-;1974:78;;2061:65;2119:6;2114:3;2107:4;2100:5;2096:16;2061:65;:::i;:::-;2151:29;2173:6;2151:29;:::i;:::-;2146:3;2142:39;2135:46;;1902:285;1810:377;;;;:::o;2193:313::-;2306:4;2344:2;2333:9;2329:18;2321:26;;2393:9;2387:4;2383:20;2379:1;2368:9;2364:17;2357:47;2421:78;2494:4;2485:6;2421:78;:::i;:::-;2413:86;;2193:313;;;;:::o;2512:126::-;2549:7;2589:42;2582:5;2578:54;2567:65;;2512:126;;;:::o;2644:96::-;2681:7;2710:24;2728:5;2710:24;:::i;:::-;2699:35;;2644:96;;;:::o;2746:122::-;2819:24;2837:5;2819:24;:::i;:::-;2812:5;2809:35;2799:63;;2858:1;2855;2848:12;2799:63;2746:122;:::o;2874:139::-;2920:5;2958:6;2945:20;2936:29;;2974:33;3001:5;2974:33;:::i;:::-;2874:139;;;;:::o;3019:474::-;3087:6;3095;3144:2;3132:9;3123:7;3119:23;3115:32;3112:119;;;3150:79;;:::i;:::-;3112:119;3270:1;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3241:117;3397:2;3423:53;3468:7;3459:6;3448:9;3444:22;3423:53;:::i;:::-;3413:63;;3368:118;3019:474;;;;;:::o;3499:90::-;3533:7;3576:5;3569:13;3562:21;3551:32;;3499:90;;;:::o;3595:109::-;3676:21;3691:5;3676:21;:::i;:::-;3671:3;3664:34;3595:109;;:::o;3710:210::-;3797:4;3835:2;3824:9;3820:18;3812:26;;3848:65;3910:1;3899:9;3895:17;3886:6;3848:65;:::i;:::-;3710:210;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:117::-;5442:1;5439;5432:12;5456:180;5504:77;5501:1;5494:88;5601:4;5598:1;5591:15;5625:4;5622:1;5615:15;5642:281;5725:27;5747:4;5725:27;:::i;:::-;5717:6;5713:40;5855:6;5843:10;5840:22;5819:18;5807:10;5804:34;5801:62;5798:88;;;5866:18;;:::i;:::-;5798:88;5906:10;5902:2;5895:22;5685:238;5642:281;;:::o;5929:129::-;5963:6;5990:20;;:::i;:::-;5980:30;;6019:33;6047:4;6039:6;6019:33;:::i;:::-;5929:129;;;:::o;6064:311::-;6141:4;6231:18;6223:6;6220:30;6217:56;;;6253:18;;:::i;:::-;6217:56;6303:4;6295:6;6291:17;6283:25;;6363:4;6357;6353:15;6345:23;;6064:311;;;:::o;6381:117::-;6490:1;6487;6480:12;6521:710;6617:5;6642:81;6658:64;6715:6;6658:64;:::i;:::-;6642:81;:::i;:::-;6633:90;;6743:5;6772:6;6765:5;6758:21;6806:4;6799:5;6795:16;6788:23;;6859:4;6851:6;6847:17;6839:6;6835:30;6888:3;6880:6;6877:15;6874:122;;;6907:79;;:::i;:::-;6874:122;7022:6;7005:220;7039:6;7034:3;7031:15;7005:220;;;7114:3;7143:37;7176:3;7164:10;7143:37;:::i;:::-;7138:3;7131:50;7210:4;7205:3;7201:14;7194:21;;7081:144;7065:4;7060:3;7056:14;7049:21;;7005:220;;;7009:21;6623:608;;6521:710;;;;;:::o;7254:370::-;7325:5;7374:3;7367:4;7359:6;7355:17;7351:27;7341:122;;7382:79;;:::i;:::-;7341:122;7499:6;7486:20;7524:94;7614:3;7606:6;7599:4;7591:6;7587:17;7524:94;:::i;:::-;7515:103;;7331:293;7254:370;;;;:::o;7630:539::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7917:1;7906:9;7902:17;7889:31;7947:18;7939:6;7936:30;7933:117;;;7969:79;;:::i;:::-;7933:117;8074:78;8144:7;8135:6;8124:9;8120:22;8074:78;:::i;:::-;8064:88;;7860:302;7630:539;;;;:::o;8175:118::-;8262:24;8280:5;8262:24;:::i;:::-;8257:3;8250:37;8175:118;;:::o;8299:222::-;8392:4;8430:2;8419:9;8415:18;8407:26;;8443:71;8511:1;8500:9;8496:17;8487:6;8443:71;:::i;:::-;8299:222;;;;:::o;8527:329::-;8586:6;8635:2;8623:9;8614:7;8610:23;8606:32;8603:119;;;8641:79;;:::i;:::-;8603:119;8761:1;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8732:117;8527:329;;;;:::o;8862:::-;8921:6;8970:2;8958:9;8949:7;8945:23;8941:32;8938:119;;;8976:79;;:::i;:::-;8938:119;9096:1;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9067:117;8862:329;;;;:::o;9197:60::-;9225:3;9246:5;9239:12;;9197:60;;;:::o;9263:142::-;9313:9;9346:53;9364:34;9373:24;9391:5;9373:24;:::i;:::-;9364:34;:::i;:::-;9346:53;:::i;:::-;9333:66;;9263:142;;;:::o;9411:126::-;9461:9;9494:37;9525:5;9494:37;:::i;:::-;9481:50;;9411:126;;;:::o;9543:152::-;9619:9;9652:37;9683:5;9652:37;:::i;:::-;9639:50;;9543:152;;;:::o;9701:183::-;9814:63;9871:5;9814:63;:::i;:::-;9809:3;9802:76;9701:183;;:::o;9890:274::-;10009:4;10047:2;10036:9;10032:18;10024:26;;10060:97;10154:1;10143:9;10139:17;10130:6;10060:97;:::i;:::-;9890:274;;;;:::o;10170:116::-;10240:21;10255:5;10240:21;:::i;:::-;10233:5;10230:32;10220:60;;10276:1;10273;10266:12;10220:60;10170:116;:::o;10292:133::-;10335:5;10373:6;10360:20;10351:29;;10389:30;10413:5;10389:30;:::i;:::-;10292:133;;;;:::o;10431:468::-;10496:6;10504;10553:2;10541:9;10532:7;10528:23;10524:32;10521:119;;;10559:79;;:::i;:::-;10521:119;10679:1;10704:53;10749:7;10740:6;10729:9;10725:22;10704:53;:::i;:::-;10694:63;;10650:117;10806:2;10832:50;10874:7;10865:6;10854:9;10850:22;10832:50;:::i;:::-;10822:60;;10777:115;10431:468;;;;;:::o;10905:110::-;10956:7;10985:24;11003:5;10985:24;:::i;:::-;10974:35;;10905:110;;;:::o;11021:150::-;11108:38;11140:5;11108:38;:::i;:::-;11101:5;11098:49;11088:77;;11161:1;11158;11151:12;11088:77;11021:150;:::o;11177:167::-;11237:5;11275:6;11262:20;11253:29;;11291:47;11332:5;11291:47;:::i;:::-;11177:167;;;;:::o;11350:357::-;11423:6;11472:2;11460:9;11451:7;11447:23;11443:32;11440:119;;;11478:79;;:::i;:::-;11440:119;11598:1;11623:67;11682:7;11673:6;11662:9;11658:22;11623:67;:::i;:::-;11613:77;;11569:131;11350:357;;;;:::o;11713:474::-;11781:6;11789;11838:2;11826:9;11817:7;11813:23;11809:32;11806:119;;;11844:79;;:::i;:::-;11806:119;11964:1;11989:53;12034:7;12025:6;12014:9;12010:22;11989:53;:::i;:::-;11979:63;;11935:117;12091:2;12117:53;12162:7;12153:6;12142:9;12138:22;12117:53;:::i;:::-;12107:63;;12062:118;11713:474;;;;;:::o;12193:172::-;12333:24;12329:1;12321:6;12317:14;12310:48;12193:172;:::o;12371:366::-;12513:3;12534:67;12598:2;12593:3;12534:67;:::i;:::-;12527:74;;12610:93;12699:3;12610:93;:::i;:::-;12728:2;12723:3;12719:12;12712:19;;12371:366;;;:::o;12743:419::-;12909:4;12947:2;12936:9;12932:18;12924:26;;12996:9;12990:4;12986:20;12982:1;12971:9;12967:17;12960:47;13024:131;13150:4;13024:131;:::i;:::-;13016:139;;12743:419;;;:::o;13168:180::-;13216:77;13213:1;13206:88;13313:4;13310:1;13303:15;13337:4;13334:1;13327:15;13354:320;13398:6;13435:1;13429:4;13425:12;13415:22;;13482:1;13476:4;13472:12;13503:18;13493:81;;13559:4;13551:6;13547:17;13537:27;;13493:81;13621:2;13613:6;13610:14;13590:18;13587:38;13584:84;;13640:18;;:::i;:::-;13584:84;13405:269;13354:320;;;:::o;13680:180::-;13728:77;13725:1;13718:88;13825:4;13822:1;13815:15;13849:4;13846:1;13839:15;13866:180;13914:77;13911:1;13904:88;14011:4;14008:1;14001:15;14035:4;14032:1;14025:15;14052:191;14092:3;14111:20;14129:1;14111:20;:::i;:::-;14106:25;;14145:20;14163:1;14145:20;:::i;:::-;14140:25;;14188:1;14185;14181:9;14174:16;;14209:3;14206:1;14203:10;14200:36;;;14216:18;;:::i;:::-;14200:36;14052:191;;;;:::o;14249:410::-;14289:7;14312:20;14330:1;14312:20;:::i;:::-;14307:25;;14346:20;14364:1;14346:20;:::i;:::-;14341:25;;14401:1;14398;14394:9;14423:30;14441:11;14423:30;:::i;:::-;14412:41;;14602:1;14593:7;14589:15;14586:1;14583:22;14563:1;14556:9;14536:83;14513:139;;14632:18;;:::i;:::-;14513:139;14297:362;14249:410;;;;:::o;14665:180::-;14713:77;14710:1;14703:88;14810:4;14807:1;14800:15;14834:4;14831:1;14824:15;14851:185;14891:1;14908:20;14926:1;14908:20;:::i;:::-;14903:25;;14942:20;14960:1;14942:20;:::i;:::-;14937:25;;14981:1;14971:35;;14986:18;;:::i;:::-;14971:35;15028:1;15025;15021:9;15016:14;;14851:185;;;;:::o;15042:167::-;15182:19;15178:1;15170:6;15166:14;15159:43;15042:167;:::o;15215:366::-;15357:3;15378:67;15442:2;15437:3;15378:67;:::i;:::-;15371:74;;15454:93;15543:3;15454:93;:::i;:::-;15572:2;15567:3;15563:12;15556:19;;15215:366;;;:::o;15587:419::-;15753:4;15791:2;15780:9;15776:18;15768:26;;15840:9;15834:4;15830:20;15826:1;15815:9;15811:17;15804:47;15868:131;15994:4;15868:131;:::i;:::-;15860:139;;15587:419;;;:::o;16012:172::-;16152:24;16148:1;16140:6;16136:14;16129:48;16012:172;:::o;16190:366::-;16332:3;16353:67;16417:2;16412:3;16353:67;:::i;:::-;16346:74;;16429:93;16518:3;16429:93;:::i;:::-;16547:2;16542:3;16538:12;16531:19;;16190:366;;;:::o;16562:419::-;16728:4;16766:2;16755:9;16751:18;16743:26;;16815:9;16809:4;16805:20;16801:1;16790:9;16786:17;16779:47;16843:131;16969:4;16843:131;:::i;:::-;16835:139;;16562:419;;;:::o;16987:244::-;17127:34;17123:1;17115:6;17111:14;17104:58;17196:27;17191:2;17183:6;17179:15;17172:52;16987:244;:::o;17237:366::-;17379:3;17400:67;17464:2;17459:3;17400:67;:::i;:::-;17393:74;;17476:93;17565:3;17476:93;:::i;:::-;17594:2;17589:3;17585:12;17578:19;;17237:366;;;:::o;17609:419::-;17775:4;17813:2;17802:9;17798:18;17790:26;;17862:9;17856:4;17852:20;17848:1;17837:9;17833:17;17826:47;17890:131;18016:4;17890:131;:::i;:::-;17882:139;;17609:419;;;:::o;18034:224::-;18174:34;18170:1;18162:6;18158:14;18151:58;18243:7;18238:2;18230:6;18226:15;18219:32;18034:224;:::o;18264:366::-;18406:3;18427:67;18491:2;18486:3;18427:67;:::i;:::-;18420:74;;18503:93;18592:3;18503:93;:::i;:::-;18621:2;18616:3;18612:12;18605:19;;18264:366;;;:::o;18636:419::-;18802:4;18840:2;18829:9;18825:18;18817:26;;18889:9;18883:4;18879:20;18875:1;18864:9;18860:17;18853:47;18917:131;19043:4;18917:131;:::i;:::-;18909:139;;18636:419;;;:::o;19061:173::-;19201:25;19197:1;19189:6;19185:14;19178:49;19061:173;:::o;19240:366::-;19382:3;19403:67;19467:2;19462:3;19403:67;:::i;:::-;19396:74;;19479:93;19568:3;19479:93;:::i;:::-;19597:2;19592:3;19588:12;19581:19;;19240:366;;;:::o;19612:419::-;19778:4;19816:2;19805:9;19801:18;19793:26;;19865:9;19859:4;19855:20;19851:1;19840:9;19836:17;19829:47;19893:131;20019:4;19893:131;:::i;:::-;19885:139;;19612:419;;;:::o;20037:143::-;20094:5;20125:6;20119:13;20110:22;;20141:33;20168:5;20141:33;:::i;:::-;20037:143;;;;:::o;20186:351::-;20256:6;20305:2;20293:9;20284:7;20280:23;20276:32;20273:119;;;20311:79;;:::i;:::-;20273:119;20431:1;20456:64;20512:7;20503:6;20492:9;20488:22;20456:64;:::i;:::-;20446:74;;20402:128;20186:351;;;;:::o;20543:332::-;20664:4;20702:2;20691:9;20687:18;20679:26;;20715:71;20783:1;20772:9;20768:17;20759:6;20715:71;:::i;:::-;20796:72;20864:2;20853:9;20849:18;20840:6;20796:72;:::i;:::-;20543:332;;;;;:::o;20881:85::-;20926:7;20955:5;20944:16;;20881:85;;;:::o;20972:158::-;21030:9;21063:61;21081:42;21090:32;21116:5;21090:32;:::i;:::-;21081:42;:::i;:::-;21063:61;:::i;:::-;21050:74;;20972:158;;;:::o;21136:147::-;21231:45;21270:5;21231:45;:::i;:::-;21226:3;21219:58;21136:147;;:::o;21289:807::-;21538:4;21576:3;21565:9;21561:19;21553:27;;21590:71;21658:1;21647:9;21643:17;21634:6;21590:71;:::i;:::-;21671:72;21739:2;21728:9;21724:18;21715:6;21671:72;:::i;:::-;21753:80;21829:2;21818:9;21814:18;21805:6;21753:80;:::i;:::-;21843;21919:2;21908:9;21904:18;21895:6;21843:80;:::i;:::-;21933:73;22001:3;21990:9;21986:19;21977:6;21933:73;:::i;:::-;22016;22084:3;22073:9;22069:19;22060:6;22016:73;:::i;:::-;21289:807;;;;;;;;;:::o;22102:143::-;22159:5;22190:6;22184:13;22175:22;;22206:33;22233:5;22206:33;:::i;:::-;22102:143;;;;:::o;22251:663::-;22339:6;22347;22355;22404:2;22392:9;22383:7;22379:23;22375:32;22372:119;;;22410:79;;:::i;:::-;22372:119;22530:1;22555:64;22611:7;22602:6;22591:9;22587:22;22555:64;:::i;:::-;22545:74;;22501:128;22668:2;22694:64;22750:7;22741:6;22730:9;22726:22;22694:64;:::i;:::-;22684:74;;22639:129;22807:2;22833:64;22889:7;22880:6;22869:9;22865:22;22833:64;:::i;:::-;22823:74;;22778:129;22251:663;;;;;:::o;22920:332::-;23041:4;23079:2;23068:9;23064:18;23056:26;;23092:71;23160:1;23149:9;23145:17;23136:6;23092:71;:::i;:::-;23173:72;23241:2;23230:9;23226:18;23217:6;23173:72;:::i;:::-;22920:332;;;;;:::o;23258:137::-;23312:5;23343:6;23337:13;23328:22;;23359:30;23383:5;23359:30;:::i;:::-;23258:137;;;;:::o;23401:345::-;23468:6;23517:2;23505:9;23496:7;23492:23;23488:32;23485:119;;;23523:79;;:::i;:::-;23485:119;23643:1;23668:61;23721:7;23712:6;23701:9;23697:22;23668:61;:::i;:::-;23658:71;;23614:125;23401:345;;;;:::o;23752:351::-;23822:6;23871:2;23859:9;23850:7;23846:23;23842:32;23839:119;;;23877:79;;:::i;:::-;23839:119;23997:1;24022:64;24078:7;24069:6;24058:9;24054:22;24022:64;:::i;:::-;24012:74;;23968:128;23752:351;;;;:::o;24109:174::-;24249:26;24245:1;24237:6;24233:14;24226:50;24109:174;:::o;24289:366::-;24431:3;24452:67;24516:2;24511:3;24452:67;:::i;:::-;24445:74;;24528:93;24617:3;24528:93;:::i;:::-;24646:2;24641:3;24637:12;24630:19;;24289:366;;;:::o;24661:419::-;24827:4;24865:2;24854:9;24850:18;24842:26;;24914:9;24908:4;24904:20;24900:1;24889:9;24885:17;24878:47;24942:131;25068:4;24942:131;:::i;:::-;24934:139;;24661:419;;;:::o;25086:225::-;25226:34;25222:1;25214:6;25210:14;25203:58;25295:8;25290:2;25282:6;25278:15;25271:33;25086:225;:::o;25317:366::-;25459:3;25480:67;25544:2;25539:3;25480:67;:::i;:::-;25473:74;;25556:93;25645:3;25556:93;:::i;:::-;25674:2;25669:3;25665:12;25658:19;;25317:366;;;:::o;25689:419::-;25855:4;25893:2;25882:9;25878:18;25870:26;;25942:9;25936:4;25932:20;25928:1;25917:9;25913:17;25906:47;25970:131;26096:4;25970:131;:::i;:::-;25962:139;;25689:419;;;:::o;26114:182::-;26254:34;26250:1;26242:6;26238:14;26231:58;26114:182;:::o;26302:366::-;26444:3;26465:67;26529:2;26524:3;26465:67;:::i;:::-;26458:74;;26541:93;26630:3;26541:93;:::i;:::-;26659:2;26654:3;26650:12;26643:19;;26302:366;;;:::o;26674:419::-;26840:4;26878:2;26867:9;26863:18;26855:26;;26927:9;26921:4;26917:20;26913:1;26902:9;26898:17;26891:47;26955:131;27081:4;26955:131;:::i;:::-;26947:139;;26674:419;;;:::o;27099:223::-;27239:34;27235:1;27227:6;27223:14;27216:58;27308:6;27303:2;27295:6;27291:15;27284:31;27099:223;:::o;27328:366::-;27470:3;27491:67;27555:2;27550:3;27491:67;:::i;:::-;27484:74;;27567:93;27656:3;27567:93;:::i;:::-;27685:2;27680:3;27676:12;27669:19;;27328:366;;;:::o;27700:419::-;27866:4;27904:2;27893:9;27889:18;27881:26;;27953:9;27947:4;27943:20;27939:1;27928:9;27924:17;27917:47;27981:131;28107:4;27981:131;:::i;:::-;27973:139;;27700:419;;;:::o;28125:221::-;28265:34;28261:1;28253:6;28249:14;28242:58;28334:4;28329:2;28321:6;28317:15;28310:29;28125:221;:::o;28352:366::-;28494:3;28515:67;28579:2;28574:3;28515:67;:::i;:::-;28508:74;;28591:93;28680:3;28591:93;:::i;:::-;28709:2;28704:3;28700:12;28693:19;;28352:366;;;:::o;28724:419::-;28890:4;28928:2;28917:9;28913:18;28905:26;;28977:9;28971:4;28967:20;28963:1;28952:9;28948:17;28941:47;29005:131;29131:4;29005:131;:::i;:::-;28997:139;;28724:419;;;:::o;29149:179::-;29289:31;29285:1;29277:6;29273:14;29266:55;29149:179;:::o;29334:366::-;29476:3;29497:67;29561:2;29556:3;29497:67;:::i;:::-;29490:74;;29573:93;29662:3;29573:93;:::i;:::-;29691:2;29686:3;29682:12;29675:19;;29334:366;;;:::o;29706:419::-;29872:4;29910:2;29899:9;29895:18;29887:26;;29959:9;29953:4;29949:20;29945:1;29934:9;29930:17;29923:47;29987:131;30113:4;29987:131;:::i;:::-;29979:139;;29706:419;;;:::o;30131:224::-;30271:34;30267:1;30259:6;30255:14;30248:58;30340:7;30335:2;30327:6;30323:15;30316:32;30131:224;:::o;30361:366::-;30503:3;30524:67;30588:2;30583:3;30524:67;:::i;:::-;30517:74;;30600:93;30689:3;30600:93;:::i;:::-;30718:2;30713:3;30709:12;30702:19;;30361:366;;;:::o;30733:419::-;30899:4;30937:2;30926:9;30922:18;30914:26;;30986:9;30980:4;30976:20;30972:1;30961:9;30957:17;30950:47;31014:131;31140:4;31014:131;:::i;:::-;31006:139;;30733:419;;;:::o;31158:222::-;31298:34;31294:1;31286:6;31282:14;31275:58;31367:5;31362:2;31354:6;31350:15;31343:30;31158:222;:::o;31386:366::-;31528:3;31549:67;31613:2;31608:3;31549:67;:::i;:::-;31542:74;;31625:93;31714:3;31625:93;:::i;:::-;31743:2;31738:3;31734:12;31727:19;;31386:366;;;:::o;31758:419::-;31924:4;31962:2;31951:9;31947:18;31939:26;;32011:9;32005:4;32001:20;31997:1;31986:9;31982:17;31975:47;32039:131;32165:4;32039:131;:::i;:::-;32031:139;;31758:419;;;:::o;32183:172::-;32323:24;32319:1;32311:6;32307:14;32300:48;32183:172;:::o;32361:366::-;32503:3;32524:67;32588:2;32583:3;32524:67;:::i;:::-;32517:74;;32600:93;32689:3;32600:93;:::i;:::-;32718:2;32713:3;32709:12;32702:19;;32361:366;;;:::o;32733:419::-;32899:4;32937:2;32926:9;32922:18;32914:26;;32986:9;32980:4;32976:20;32972:1;32961:9;32957:17;32950:47;33014:131;33140:4;33014:131;:::i;:::-;33006:139;;32733:419;;;:::o;33158:240::-;33298:34;33294:1;33286:6;33282:14;33275:58;33367:23;33362:2;33354:6;33350:15;33343:48;33158:240;:::o;33404:366::-;33546:3;33567:67;33631:2;33626:3;33567:67;:::i;:::-;33560:74;;33643:93;33732:3;33643:93;:::i;:::-;33761:2;33756:3;33752:12;33745:19;;33404:366;;;:::o;33776:419::-;33942:4;33980:2;33969:9;33965:18;33957:26;;34029:9;34023:4;34019:20;34015:1;34004:9;34000:17;33993:47;34057:131;34183:4;34057:131;:::i;:::-;34049:139;;33776:419;;;:::o;34201:169::-;34341:21;34337:1;34329:6;34325:14;34318:45;34201:169;:::o;34376:366::-;34518:3;34539:67;34603:2;34598:3;34539:67;:::i;:::-;34532:74;;34615:93;34704:3;34615:93;:::i;:::-;34733:2;34728:3;34724:12;34717:19;;34376:366;;;:::o;34748:419::-;34914:4;34952:2;34941:9;34937:18;34929:26;;35001:9;34995:4;34991:20;34987:1;34976:9;34972:17;34965:47;35029:131;35155:4;35029:131;:::i;:::-;35021:139;;34748:419;;;:::o;35173:241::-;35313:34;35309:1;35301:6;35297:14;35290:58;35382:24;35377:2;35369:6;35365:15;35358:49;35173:241;:::o;35420:366::-;35562:3;35583:67;35647:2;35642:3;35583:67;:::i;:::-;35576:74;;35659:93;35748:3;35659:93;:::i;:::-;35777:2;35772:3;35768:12;35761:19;;35420:366;;;:::o;35792:419::-;35958:4;35996:2;35985:9;35981:18;35973:26;;36045:9;36039:4;36035:20;36031:1;36020:9;36016:17;36009:47;36073:131;36199:4;36073:131;:::i;:::-;36065:139;;35792:419;;;:::o;36217:194::-;36257:4;36277:20;36295:1;36277:20;:::i;:::-;36272:25;;36311:20;36329:1;36311:20;:::i;:::-;36306:25;;36355:1;36352;36348:9;36340:17;;36379:1;36373:4;36370:11;36367:37;;;36384:18;;:::i;:::-;36367:37;36217:194;;;;:::o;36417:114::-;36484:6;36518:5;36512:12;36502:22;;36417:114;;;:::o;36537:184::-;36636:11;36670:6;36665:3;36658:19;36710:4;36705:3;36701:14;36686:29;;36537:184;;;;:::o;36727:132::-;36794:4;36817:3;36809:11;;36847:4;36842:3;36838:14;36830:22;;36727:132;;;:::o;36865:108::-;36942:24;36960:5;36942:24;:::i;:::-;36937:3;36930:37;36865:108;;:::o;36979:179::-;37048:10;37069:46;37111:3;37103:6;37069:46;:::i;:::-;37147:4;37142:3;37138:14;37124:28;;36979:179;;;;:::o;37164:113::-;37234:4;37266;37261:3;37257:14;37249:22;;37164:113;;;:::o;37313:732::-;37432:3;37461:54;37509:5;37461:54;:::i;:::-;37531:86;37610:6;37605:3;37531:86;:::i;:::-;37524:93;;37641:56;37691:5;37641:56;:::i;:::-;37720:7;37751:1;37736:284;37761:6;37758:1;37755:13;37736:284;;;37837:6;37831:13;37864:63;37923:3;37908:13;37864:63;:::i;:::-;37857:70;;37950:60;38003:6;37950:60;:::i;:::-;37940:70;;37796:224;37783:1;37780;37776:9;37771:14;;37736:284;;;37740:14;38036:3;38029:10;;37437:608;;;37313:732;;;;:::o;38051:831::-;38314:4;38352:3;38341:9;38337:19;38329:27;;38366:71;38434:1;38423:9;38419:17;38410:6;38366:71;:::i;:::-;38447:80;38523:2;38512:9;38508:18;38499:6;38447:80;:::i;:::-;38574:9;38568:4;38564:20;38559:2;38548:9;38544:18;38537:48;38602:108;38705:4;38696:6;38602:108;:::i;:::-;38594:116;;38720:72;38788:2;38777:9;38773:18;38764:6;38720:72;:::i;:::-;38802:73;38870:3;38859:9;38855:19;38846:6;38802:73;:::i;:::-;38051:831;;;;;;;;:::o;38888:223::-;39028:34;39024:1;39016:6;39012:14;39005:58;39097:6;39092:2;39084:6;39080:15;39073:31;38888:223;:::o;39117:366::-;39259:3;39280:67;39344:2;39339:3;39280:67;:::i;:::-;39273:74;;39356:93;39445:3;39356:93;:::i;:::-;39474:2;39469:3;39465:12;39458:19;;39117:366;;;:::o;39489:419::-;39655:4;39693:2;39682:9;39678:18;39670:26;;39742:9;39736:4;39732:20;39728:1;39717:9;39713:17;39706:47;39770:131;39896:4;39770:131;:::i;:::-;39762:139;;39489:419;;;:::o;39914:225::-;40054:34;40050:1;40042:6;40038:14;40031:58;40123:8;40118:2;40110:6;40106:15;40099:33;39914:225;:::o;40145:366::-;40287:3;40308:67;40372:2;40367:3;40308:67;:::i;:::-;40301:74;;40384:93;40473:3;40384:93;:::i;:::-;40502:2;40497:3;40493:12;40486:19;;40145:366;;;:::o;40517:419::-;40683:4;40721:2;40710:9;40706:18;40698:26;;40770:9;40764:4;40760:20;40756:1;40745:9;40741:17;40734:47;40798:131;40924:4;40798:131;:::i;:::-;40790:139;;40517:419;;;:::o

Swarm Source

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