ETH Price: $3,382.60 (+3.90%)
 

Overview

Max Total Supply

1,000,000,000,000 XRMOON

Holders

64

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,356,098,531.222348383271815323 XRMOON

Value
$0.00
0x9648B5a014dd9821f5E477E8b02391d37Ea7497d
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:
XRMOON

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-14
*/

/**

__  ______  __  __  ___   ___  _   _ 
 \ \/ /  _ \|  \/  |/ _ \ / _ \| \ | |
  \  /| |_) | |\/| | | | | | | |  \| |
  /  \|  _ <| |  | | |_| | |_| | |\  |
 /_/\_\_| \_\_|  |_|\___/ \___/|_| \_|
                                      

💬Telegram: https://t.me/XRMoontoken
🐦Twitter: https://twitter.com/xrp_moon_erc20

**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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

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

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

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

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 Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    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 burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    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 IUniswapV2Router01 {
    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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract XRMOON is Ownable, IERC20 {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcludedFromWalletHoldingLimit;
    mapping(address => bool) private _isAutomaticMarketMaker;
    mapping(address => bool) private _isAccountLimited;

    uint256 public _decimals = 18;
    uint256 public _totalSupply = 1000000 * 10**6 * 10**_decimals;
    string private _name = "XRMOON";
    string private _symbol = "XRMOON";

    address public immutable DeadWalletAddress =
        0x000000000000000000000000000000000000dEaD;
    address payable public MarketingWalletAddress;

    uint256 public _BuyingMarketingFee = 20;

    uint256 public _SellingMarketingFee = 80;

    uint256 internal feeDenominator = 100;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool internal inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;

    uint256 public numTokensSellToAddToLiquidity = (_totalSupply * 150) / 10**4;
    uint256 public _maxWalletHoldingLimit = (_totalSupply * 2) / 10**2;

    event MaxWalletHoldingAmountUpdated(uint256 updatedMaxWalletHoldingAmount);
    event AutomaticMarketMakerPairUpdated(address account, bool status);
    event BuyingTaxFeeUpdated(uint256 TaxFees);
    event SellingTaxFeeUpdated(uint256 TaxFees);
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ETHReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        _balances[owner()] = _totalSupply;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;
        //DeployerWallet
        MarketingWalletAddress = payable(address(msg.sender));
        //exclude owner and this contract from fee and Wallet holding Limits
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromWalletHoldingLimit[owner()] = true;
        _isExcludedFromWalletHoldingLimit[uniswapV2Pair] = true;
        _isExcludedFromWalletHoldingLimit[address(this)] = true;
        _isAutomaticMarketMaker[uniswapV2Pair] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

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

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

    function decimals() external view returns (uint256) {
        return _decimals;
    }

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

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "IERC20: approve from the zero address");
        require(spender != address(0), "IERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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

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

    function ExcludeFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function IncludeInFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = false;
    }

    function IsExcludedFromTax(address account) external view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function isExcludedFromWalletLimit(address WalletAddress)
        external
        view
        returns (bool)
    {
        return _isExcludedFromWalletHoldingLimit[WalletAddress];
    }

    function excludeFromMaxWalletHoldingLimit(address account)
        external
        onlyOwner
    {
        _isExcludedFromWalletHoldingLimit[account] = true;
    }

    function includeInMaxWalletHoldingLimit(address account)
        external
        onlyOwner
    {
        require(
            account != uniswapV2Pair,
            "You can't play with Liquidity pair address"
        );
        _isExcludedFromWalletHoldingLimit[account] = false;
    }

    function UpdateAccountLimition(address account, bool status)
        external
        onlyOwner
    {
        _isAccountLimited[account] = status;
    }

    function isAccountLimited(address account) external view returns (bool) {
        return _isAccountLimited[account];
    }

    function UpdateWallets(address payable newMarketingWallet)
        external
        onlyOwner
    {
        require(newMarketingWallet != address(0), "You can't set zero address");
        MarketingWalletAddress = newMarketingWallet;
    }

    function UpdateBuyingTaxFees(uint256 newMarketingFee) external onlyOwner {
        _BuyingMarketingFee = newMarketingFee;
        emit BuyingTaxFeeUpdated(_BuyingMarketingFee);
    }

    function UpdateSellingTaxFees(uint256 newMarketingFee) external onlyOwner {
        _SellingMarketingFee = newMarketingFee;
        emit SellingTaxFeeUpdated(_SellingMarketingFee);
    }

    function UpdateNoOfTokensSellToGetReward(uint256 thresholdValue)
        external
        onlyOwner
    {
        numTokensSellToAddToLiquidity = thresholdValue * 10**_decimals;
        emit MinTokensBeforeSwapUpdated(numTokensSellToAddToLiquidity);
    }

    function removeWalletHoldingLimit() external onlyOwner {
        _maxWalletHoldingLimit = (_totalSupply * 100) / 10**2;
    }

    function setSwapAndLiquifyEnabled(bool _enabled) external onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "IERC20: transfer amount exceeds allowance"
        );
        return true;
    }

    // To receive BNB from PancakeswapV2 when swapping
    receive() external payable {}

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "IERC20: transfer from the zero address");
        require(
            recipient != address(0),
            "IERC20: transfer to the zero address"
        );
        require(
            !_isAccountLimited[sender] && !_isAccountLimited[recipient],
            "Sorry your account is limiited"
        );
        require(_balances[sender] >= amount, "You don't have enough balance");

        if (
            !_isExcludedFromWalletHoldingLimit[recipient] && sender != owner()
        ) {
            require(
                balanceOf(recipient) + amount <= _maxWalletHoldingLimit,
                "Wallet Holding limit exceeded"
            );
        }

        uint256 totalTax = 0;

        if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) {
            totalTax = 0;
        } else {
            if (_isAutomaticMarketMaker[recipient]) {
                totalTax = (amount * (_SellingMarketingFee)) / (feeDenominator);
            } else if (_isAutomaticMarketMaker[sender]) {
                totalTax = (amount * (_BuyingMarketingFee)) / (feeDenominator);
            } else {
                totalTax = 0;
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >=
            numTokensSellToAddToLiquidity;
        if (
            !inSwapAndLiquify &&
            recipient == uniswapV2Pair &&
            swapAndLiquifyEnabled &&
            balanceOf(uniswapV2Pair) > numTokensSellToAddToLiquidity
        ) {
            if (overMinTokenBalance) {
                contractTokenBalance = numTokensSellToAddToLiquidity;
                swapTokens(contractTokenBalance);
            }
        }

        uint256 amountReceived = amount - (totalTax);
        _balances[address(this)] += totalTax;
        _balances[sender] = _balances[sender] - amount;
        _balances[recipient] += amountReceived;

        if (totalTax > 0) {
            emit Transfer(sender, address(this), totalTax);
        }
        emit Transfer(sender, recipient, amountReceived);
    }

    function swapTokens(uint256 _contractTokenBalance) private lockTheSwap {
        swapTokensForETH(_contractTokenBalance);
        uint256 MarketingBalance = address(this).balance;
        if (MarketingBalance > 0) {
            MarketingWalletAddress.transfer(address(this).balance);
        }
    }

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

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

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"AutomaticMarketMakerPairUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"TaxFees","type":"uint256"}],"name":"BuyingTaxFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"updatedMaxWalletHoldingAmount","type":"uint256"}],"name":"MaxWalletHoldingAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"TaxFees","type":"uint256"}],"name":"SellingTaxFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ETHReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"DeadWalletAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"IncludeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"IsExcludedFromTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"UpdateAccountLimition","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"UpdateBuyingTaxFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdValue","type":"uint256"}],"name":"UpdateNoOfTokensSellToGetReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"UpdateSellingTaxFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingWallet","type":"address"}],"name":"UpdateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_BuyingMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SellingMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletHoldingLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"account","type":"address"}],"name":"excludeFromMaxWalletHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxWalletHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isAccountLimited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"WalletAddress","type":"address"}],"name":"isExcludedFromWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeWalletHoldingLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526012600755600754600a6200001a91906200097e565b64e8d4a510006200002c9190620009cf565b6008556040518060400160405280600681526020017f58524d4f4f4e00000000000000000000000000000000000000000000000000008152506009908162000075919062000c8a565b506040518060400160405280600681526020017f58524d4f4f4e0000000000000000000000000000000000000000000000000000815250600a9081620000bc919062000c8a565b5061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506014600c556050600d556064600e556001601060156101000a81548160ff0219169083151502179055506127106096600854620001309190620009cf565b6200013c919062000da0565b60115560646002600854620001529190620009cf565b6200015e919062000da0565b6012553480156200016e57600080fd5b506200017f620007c060201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36008546001600062000250620007c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000319919062000e42565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000381573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a7919062000e42565b6040518363ffffffff1660e01b8152600401620003c692919062000e85565b6020604051808303816000875af1158015620003e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040c919062000e42565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620004e4620007c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620005a3620007c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000750620007c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600854604051620007b1919062000ec3565b60405180910390a35062000ee0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200087f57808604811115620008575762000856620007f1565b5b6001851615620008675780820291505b8081029050620008778562000820565b945062000837565b94509492505050565b6000826200089a57600190506200096d565b81620008aa57600090506200096d565b8160018114620008c35760028114620008ce5762000904565b60019150506200096d565b60ff841115620008e357620008e2620007f1565b5b8360020a915084821115620008fd57620008fc620007f1565b5b506200096d565b5060208310610133831016604e8410600b84101617156200093e5782820a905083811115620009385762000937620007f1565b5b6200096d565b6200094d84848460016200082d565b92509050818404811115620009675762000966620007f1565b5b81810290505b9392505050565b6000819050919050565b60006200098b8262000974565b9150620009988362000974565b9250620009c77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000888565b905092915050565b6000620009dc8262000974565b9150620009e98362000974565b9250828202620009f98162000974565b9150828204841483151762000a135762000a12620007f1565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a9c57607f821691505b60208210810362000ab25762000ab162000a54565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000b1c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000add565b62000b28868362000add565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000b6b62000b6562000b5f8462000974565b62000b40565b62000974565b9050919050565b6000819050919050565b62000b878362000b4a565b62000b9f62000b968262000b72565b84845462000aea565b825550505050565b600090565b62000bb662000ba7565b62000bc381848462000b7c565b505050565b5b8181101562000beb5762000bdf60008262000bac565b60018101905062000bc9565b5050565b601f82111562000c3a5762000c048162000ab8565b62000c0f8462000acd565b8101602085101562000c1f578190505b62000c3762000c2e8562000acd565b83018262000bc8565b50505b505050565b600082821c905092915050565b600062000c5f6000198460080262000c3f565b1980831691505092915050565b600062000c7a838362000c4c565b9150826002028217905092915050565b62000c958262000a1a565b67ffffffffffffffff81111562000cb15762000cb062000a25565b5b62000cbd825462000a83565b62000cca82828562000bef565b600060209050601f83116001811462000d02576000841562000ced578287015190505b62000cf9858262000c6c565b86555062000d69565b601f19841662000d128662000ab8565b60005b8281101562000d3c5784890151825560018201915060208501945060208101905062000d15565b8683101562000d5c578489015162000d58601f89168262000c4c565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dad8262000974565b915062000dba8362000974565b92508262000dcd5762000dcc62000d71565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000e0a8262000ddd565b9050919050565b62000e1c8162000dfd565b811462000e2857600080fd5b50565b60008151905062000e3c8162000e11565b92915050565b60006020828403121562000e5b5762000e5a62000dd8565b5b600062000e6b8482850162000e2b565b91505092915050565b62000e7f8162000dfd565b82525050565b600060408201905062000e9c600083018562000e74565b62000eab602083018462000e74565b9392505050565b62000ebd8162000974565b82525050565b600060208201905062000eda600083018462000eb2565b92915050565b6080516139e062000efc60003960006109f501526139e06000f3fe6080604052600436106102345760003560e01c80635c38fdfd1161012e578063a9059cbb116100ab578063c49b9a801161006f578063c49b9a8014610860578063d12a768814610889578063d81e1cb0146108b4578063dd62ed3e146108dd578063f2fde38b1461091a5761023b565b8063a9059cbb1461077b578063abdadf62146107b8578063b40f9469146107e3578063b7a9a0af14610820578063c1b60b17146108495761023b565b80639429b9fe116100f25780639429b9fe1461069657806395d89b41146106bf578063a27f656d146106ea578063a2cefe6d14610713578063a457c2d71461073e5761023b565b80635c38fdfd146105b157806370035ba5146105ee57806370a0823114610617578063715018a6146106545780638da5cb5b1461066b5761023b565b806332424aa3116101bc5780634108fd4f116101805780634108fd4f146104e057806349bd5a5e146105095780634a74bb02146105345780634f6a6b6e1461055f57806358c3e050146105885761023b565b806332424aa3146103f957806338a1da5c14610424578063395093511461044d57806339e6cd661461048a5780633eaaf86b146104b55761023b565b80631694505e116102035780631694505e146102fe57806318160ddd1461032957806323b872dd146103545780632672fb9414610391578063313ce567146103ce5761023b565b806306fdde0314610240578063095ea7b31461026b5780630a6a7548146102a8578063124035a8146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610943565b60405161026291906129da565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612a95565b6109d5565b60405161029f9190612af0565b60405180910390f35b3480156102b457600080fd5b506102bd6109f3565b6040516102ca9190612b1a565b60405180910390f35b3480156102df57600080fd5b506102e8610a17565b6040516102f59190612b44565b60405180910390f35b34801561030a57600080fd5b50610313610a1d565b6040516103209190612bbe565b60405180910390f35b34801561033557600080fd5b5061033e610a43565b60405161034b9190612b44565b60405180910390f35b34801561036057600080fd5b5061037b60048036038101906103769190612bd9565b610a4d565b6040516103889190612af0565b60405180910390f35b34801561039d57600080fd5b506103b860048036038101906103b39190612c2c565b610b31565b6040516103c59190612af0565b60405180910390f35b3480156103da57600080fd5b506103e3610b87565b6040516103f09190612b44565b60405180910390f35b34801561040557600080fd5b5061040e610b91565b60405161041b9190612b44565b60405180910390f35b34801561043057600080fd5b5061044b60048036038101906104469190612c85565b610b97565b005b34801561045957600080fd5b50610474600480360381019061046f9190612a95565b610c6e565b6040516104819190612af0565b60405180910390f35b34801561049657600080fd5b5061049f610d1a565b6040516104ac9190612ce6565b60405180910390f35b3480156104c157600080fd5b506104ca610d40565b6040516104d79190612b44565b60405180910390f35b3480156104ec57600080fd5b5061050760048036038101906105029190612d01565b610d46565b005b34801561051557600080fd5b5061051e610e05565b60405161052b9190612b1a565b60405180910390f35b34801561054057600080fd5b50610549610e2b565b6040516105569190612af0565b60405180910390f35b34801561056b57600080fd5b5061058660048036038101906105819190612c2c565b610e3e565b005b34801561059457600080fd5b506105af60048036038101906105aa9190612c2c565b610f15565b005b3480156105bd57600080fd5b506105d860048036038101906105d39190612c2c565b610fec565b6040516105e59190612af0565b60405180910390f35b3480156105fa57600080fd5b5061061560048036038101906106109190612c2c565b611042565b005b34801561062357600080fd5b5061063e60048036038101906106399190612c2c565b611119565b60405161064b9190612b44565b60405180910390f35b34801561066057600080fd5b50610669611162565b005b34801561067757600080fd5b5061068061129c565b60405161068d9190612b1a565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612d01565b6112c5565b005b3480156106cb57600080fd5b506106d461139d565b6040516106e191906129da565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c9190612d5a565b61142f565b005b34801561071f57600080fd5b5061072861155e565b6040516107359190612b44565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190612a95565b611564565b6040516107729190612af0565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190612a95565b611658565b6040516107af9190612af0565b60405180910390f35b3480156107c457600080fd5b506107cd611676565b6040516107da9190612b44565b60405180910390f35b3480156107ef57600080fd5b5061080a60048036038101906108059190612c2c565b61167c565b6040516108179190612af0565b60405180910390f35b34801561082c57600080fd5b5061084760048036038101906108429190612c2c565b6116d2565b005b34801561085557600080fd5b5061085e611839565b005b34801561086c57600080fd5b5061088760048036038101906108829190612d87565b6118d7565b005b34801561089557600080fd5b5061089e6119a7565b6040516108ab9190612b44565b60405180910390f35b3480156108c057600080fd5b506108db60048036038101906108d69190612d01565b6119ad565b005b3480156108e957600080fd5b5061090460048036038101906108ff9190612db4565b611a6c565b6040516109119190612b44565b60405180910390f35b34801561092657600080fd5b50610941600480360381019061093c9190612c2c565b611af3565b005b60606009805461095290612e23565b80601f016020809104026020016040519081016040528092919081815260200182805461097e90612e23565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b60006109e96109e2611c9b565b8484611ca3565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60125481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600854905090565b6000610a5a848484611e6c565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aa5611c9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612ec6565b60405180910390fd5b60019150509392505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600754905090565b60075481565b610b9f611c9b565b73ffffffffffffffffffffffffffffffffffffffff16610bbd61129c565b73ffffffffffffffffffffffffffffffffffffffff1614610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a90612f32565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610d10610c7b611c9b565b848460026000610c89611c9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d0b9190612f81565b611ca3565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b610d4e611c9b565b73ffffffffffffffffffffffffffffffffffffffff16610d6c61129c565b73ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990612f32565b60405180910390fd5b80600d819055507f4babbcf4831921e3525c5cad678d0379401b05da366a608803a6a79910969066600d54604051610dfa9190612b44565b60405180910390a150565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060159054906101000a900460ff1681565b610e46611c9b565b73ffffffffffffffffffffffffffffffffffffffff16610e6461129c565b73ffffffffffffffffffffffffffffffffffffffff1614610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190612f32565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f1d611c9b565b73ffffffffffffffffffffffffffffffffffffffff16610f3b61129c565b73ffffffffffffffffffffffffffffffffffffffff1614610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890612f32565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61104a611c9b565b73ffffffffffffffffffffffffffffffffffffffff1661106861129c565b73ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612f32565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61116a611c9b565b73ffffffffffffffffffffffffffffffffffffffff1661118861129c565b73ffffffffffffffffffffffffffffffffffffffff16146111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d590612f32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112cd611c9b565b73ffffffffffffffffffffffffffffffffffffffff166112eb61129c565b73ffffffffffffffffffffffffffffffffffffffff1614611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612f32565b60405180910390fd5b600754600a61135091906130e8565b8161135b9190613133565b6011819055507f5948780118f41f7c4577ae4619d5cbd064057bd8562d9f7b7e60324053375c006011546040516113929190612b44565b60405180910390a150565b6060600a80546113ac90612e23565b80601f01602080910402602001604051908101604052809291908181526020018280546113d890612e23565b80156114255780601f106113fa57610100808354040283529160200191611425565b820191906000526020600020905b81548152906001019060200180831161140857829003601f168201915b5050505050905090565b611437611c9b565b73ffffffffffffffffffffffffffffffffffffffff1661145561129c565b73ffffffffffffffffffffffffffffffffffffffff16146114ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a290612f32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361151a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611511906131c1565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b60008060026000611573611c9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790613253565b60405180910390fd5b61164d61163b611c9b565b8585846116489190613273565b611ca3565b600191505092915050565b600061166c611665611c9b565b8484611e6c565b6001905092915050565b600d5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6116da611c9b565b73ffffffffffffffffffffffffffffffffffffffff166116f861129c565b73ffffffffffffffffffffffffffffffffffffffff161461174e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174590612f32565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d590613319565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611841611c9b565b73ffffffffffffffffffffffffffffffffffffffff1661185f61129c565b73ffffffffffffffffffffffffffffffffffffffff16146118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac90612f32565b60405180910390fd5b6064806008546118c59190613133565b6118cf9190613368565b601281905550565b6118df611c9b565b73ffffffffffffffffffffffffffffffffffffffff166118fd61129c565b73ffffffffffffffffffffffffffffffffffffffff1614611953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194a90612f32565b60405180910390fd5b80601060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161199c9190612af0565b60405180910390a150565b60115481565b6119b5611c9b565b73ffffffffffffffffffffffffffffffffffffffff166119d361129c565b73ffffffffffffffffffffffffffffffffffffffff1614611a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2090612f32565b60405180910390fd5b80600c819055507f0e67b9e2db5ac83e278ae529ba7f8d72a1f5e732cb9fa988e8289587a08c1ed4600c54604051611a619190612b44565b60405180910390a150565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611afb611c9b565b73ffffffffffffffffffffffffffffffffffffffff16611b1961129c565b73ffffffffffffffffffffffffffffffffffffffff1614611b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6690612f32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd59061340b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d099061349d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d789061352f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e5f9190612b44565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed2906135c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613653565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fee5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61202d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612024906136bf565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156120af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a69061372b565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561213c575061210c61129c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561219a576012548161214e84611119565b6121589190612f81565b1115612199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219090613797565b60405180910390fd5b5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061223d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561224b576000905061233a565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122bf57600e54600d54836122ae9190613133565b6122b89190613368565b9050612339565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561233357600e54600c54836123229190613133565b61232c9190613368565b9050612338565b600090505b5b5b600061234530611119565b905060006011548210159050601060149054906101000a900460ff161580156123bb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156123d35750601060159054906101000a900460ff165b801561240a5750601154612408601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611119565b115b156124255780156124245760115491506124238261264c565b5b5b600083856124339190613273565b905083600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124849190612f81565b9250508190555084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124d69190613273565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125689190612f81565b9250508190555060008411156125de573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516125d59190612b44565b60405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161263b9190612b44565b60405180910390a350505050505050565b6001601060146101000a81548160ff02191690831515021790555061267081612707565b600047905060008111156126e857600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156126e6573d6000803e3d6000fd5b505b506000601060146101000a81548160ff02191690831515021790555050565b6000600267ffffffffffffffff811115612724576127236137b7565b5b6040519080825280602002602001820160405280156127525781602001602082028036833780820191505090505b509050308160008151811061276a576127696137e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612811573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612835919061382a565b81600181518110612849576128486137e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128b030600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ca3565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612914959493929190613950565b600060405180830381600087803b15801561292e57600080fd5b505af1158015612942573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612984578082015181840152602081019050612969565b60008484015250505050565b6000601f19601f8301169050919050565b60006129ac8261294a565b6129b68185612955565b93506129c6818560208601612966565b6129cf81612990565b840191505092915050565b600060208201905081810360008301526129f481846129a1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a2c82612a01565b9050919050565b612a3c81612a21565b8114612a4757600080fd5b50565b600081359050612a5981612a33565b92915050565b6000819050919050565b612a7281612a5f565b8114612a7d57600080fd5b50565b600081359050612a8f81612a69565b92915050565b60008060408385031215612aac57612aab6129fc565b5b6000612aba85828601612a4a565b9250506020612acb85828601612a80565b9150509250929050565b60008115159050919050565b612aea81612ad5565b82525050565b6000602082019050612b056000830184612ae1565b92915050565b612b1481612a21565b82525050565b6000602082019050612b2f6000830184612b0b565b92915050565b612b3e81612a5f565b82525050565b6000602082019050612b596000830184612b35565b92915050565b6000819050919050565b6000612b84612b7f612b7a84612a01565b612b5f565b612a01565b9050919050565b6000612b9682612b69565b9050919050565b6000612ba882612b8b565b9050919050565b612bb881612b9d565b82525050565b6000602082019050612bd36000830184612baf565b92915050565b600080600060608486031215612bf257612bf16129fc565b5b6000612c0086828701612a4a565b9350506020612c1186828701612a4a565b9250506040612c2286828701612a80565b9150509250925092565b600060208284031215612c4257612c416129fc565b5b6000612c5084828501612a4a565b91505092915050565b612c6281612ad5565b8114612c6d57600080fd5b50565b600081359050612c7f81612c59565b92915050565b60008060408385031215612c9c57612c9b6129fc565b5b6000612caa85828601612a4a565b9250506020612cbb85828601612c70565b9150509250929050565b6000612cd082612a01565b9050919050565b612ce081612cc5565b82525050565b6000602082019050612cfb6000830184612cd7565b92915050565b600060208284031215612d1757612d166129fc565b5b6000612d2584828501612a80565b91505092915050565b612d3781612cc5565b8114612d4257600080fd5b50565b600081359050612d5481612d2e565b92915050565b600060208284031215612d7057612d6f6129fc565b5b6000612d7e84828501612d45565b91505092915050565b600060208284031215612d9d57612d9c6129fc565b5b6000612dab84828501612c70565b91505092915050565b60008060408385031215612dcb57612dca6129fc565b5b6000612dd985828601612a4a565b9250506020612dea85828601612a4a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e3b57607f821691505b602082108103612e4e57612e4d612df4565b5b50919050565b7f4945524332303a207472616e7366657220616d6f756e7420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b6000612eb0602983612955565b9150612ebb82612e54565b604082019050919050565b60006020820190508181036000830152612edf81612ea3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f1c602083612955565b9150612f2782612ee6565b602082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f8c82612a5f565b9150612f9783612a5f565b9250828201905080821115612faf57612fae612f52565b5b92915050565b60008160011c9050919050565b6000808291508390505b600185111561300c57808604811115612fe857612fe7612f52565b5b6001851615612ff75780820291505b808102905061300585612fb5565b9450612fcc565b94509492505050565b60008261302557600190506130e1565b8161303357600090506130e1565b8160018114613049576002811461305357613082565b60019150506130e1565b60ff84111561306557613064612f52565b5b8360020a91508482111561307c5761307b612f52565b5b506130e1565b5060208310610133831016604e8410600b84101617156130b75782820a9050838111156130b2576130b1612f52565b5b6130e1565b6130c48484846001612fc2565b925090508184048111156130db576130da612f52565b5b81810290505b9392505050565b60006130f382612a5f565b91506130fe83612a5f565b925061312b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613015565b905092915050565b600061313e82612a5f565b915061314983612a5f565b925082820261315781612a5f565b9150828204841483151761316e5761316d612f52565b5b5092915050565b7f596f752063616e277420736574207a65726f2061646472657373000000000000600082015250565b60006131ab601a83612955565b91506131b682613175565b602082019050919050565b600060208201905081810360008301526131da8161319e565b9050919050565b7f4945524332303a2064656372656173656420616c6c6f77616e63652062656c6f60008201527f77207a65726f0000000000000000000000000000000000000000000000000000602082015250565b600061323d602683612955565b9150613248826131e1565b604082019050919050565b6000602082019050818103600083015261326c81613230565b9050919050565b600061327e82612a5f565b915061328983612a5f565b92508282039050818111156132a1576132a0612f52565b5b92915050565b7f596f752063616e277420706c61792077697468204c697175696469747920706160008201527f6972206164647265737300000000000000000000000000000000000000000000602082015250565b6000613303602a83612955565b915061330e826132a7565b604082019050919050565b60006020820190508181036000830152613332816132f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061337382612a5f565b915061337e83612a5f565b92508261338e5761338d613339565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133f5602683612955565b915061340082613399565b604082019050919050565b60006020820190508181036000830152613424816133e8565b9050919050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613487602583612955565b91506134928261342b565b604082019050919050565b600060208201905081810360008301526134b68161347a565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613519602383612955565b9150613524826134bd565b604082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f4945524332303a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135ab602683612955565b91506135b68261354f565b604082019050919050565b600060208201905081810360008301526135da8161359e565b9050919050565b7f4945524332303a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061363d602483612955565b9150613648826135e1565b604082019050919050565b6000602082019050818103600083015261366c81613630565b9050919050565b7f536f72727920796f7572206163636f756e74206973206c696d69697465640000600082015250565b60006136a9601e83612955565b91506136b482613673565b602082019050919050565b600060208201905081810360008301526136d88161369c565b9050919050565b7f596f7520646f6e2774206861766520656e6f7567682062616c616e6365000000600082015250565b6000613715601d83612955565b9150613720826136df565b602082019050919050565b6000602082019050818103600083015261374481613708565b9050919050565b7f57616c6c657420486f6c64696e67206c696d6974206578636565646564000000600082015250565b6000613781601d83612955565b915061378c8261374b565b602082019050919050565b600060208201905081810360008301526137b081613774565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061382481612a33565b92915050565b6000602082840312156138405761383f6129fc565b5b600061384e84828501613815565b91505092915050565b6000819050919050565b600061387c61387761387284613857565b612b5f565b612a5f565b9050919050565b61388c81613861565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138c781612a21565b82525050565b60006138d983836138be565b60208301905092915050565b6000602082019050919050565b60006138fd82613892565b613907818561389d565b9350613912836138ae565b8060005b8381101561394357815161392a88826138cd565b9750613935836138e5565b925050600181019050613916565b5085935050505092915050565b600060a0820190506139656000830188612b35565b6139726020830187613883565b818103604083015261398481866138f2565b90506139936060830185612b0b565b6139a06080830184612b35565b969550505050505056fea2646970667358221220a2a3db2c7e270e13e2ac84c9e13927ff48443c8fc0796234ee76fb8903a2e76d64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80635c38fdfd1161012e578063a9059cbb116100ab578063c49b9a801161006f578063c49b9a8014610860578063d12a768814610889578063d81e1cb0146108b4578063dd62ed3e146108dd578063f2fde38b1461091a5761023b565b8063a9059cbb1461077b578063abdadf62146107b8578063b40f9469146107e3578063b7a9a0af14610820578063c1b60b17146108495761023b565b80639429b9fe116100f25780639429b9fe1461069657806395d89b41146106bf578063a27f656d146106ea578063a2cefe6d14610713578063a457c2d71461073e5761023b565b80635c38fdfd146105b157806370035ba5146105ee57806370a0823114610617578063715018a6146106545780638da5cb5b1461066b5761023b565b806332424aa3116101bc5780634108fd4f116101805780634108fd4f146104e057806349bd5a5e146105095780634a74bb02146105345780634f6a6b6e1461055f57806358c3e050146105885761023b565b806332424aa3146103f957806338a1da5c14610424578063395093511461044d57806339e6cd661461048a5780633eaaf86b146104b55761023b565b80631694505e116102035780631694505e146102fe57806318160ddd1461032957806323b872dd146103545780632672fb9414610391578063313ce567146103ce5761023b565b806306fdde0314610240578063095ea7b31461026b5780630a6a7548146102a8578063124035a8146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b50610255610943565b60405161026291906129da565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612a95565b6109d5565b60405161029f9190612af0565b60405180910390f35b3480156102b457600080fd5b506102bd6109f3565b6040516102ca9190612b1a565b60405180910390f35b3480156102df57600080fd5b506102e8610a17565b6040516102f59190612b44565b60405180910390f35b34801561030a57600080fd5b50610313610a1d565b6040516103209190612bbe565b60405180910390f35b34801561033557600080fd5b5061033e610a43565b60405161034b9190612b44565b60405180910390f35b34801561036057600080fd5b5061037b60048036038101906103769190612bd9565b610a4d565b6040516103889190612af0565b60405180910390f35b34801561039d57600080fd5b506103b860048036038101906103b39190612c2c565b610b31565b6040516103c59190612af0565b60405180910390f35b3480156103da57600080fd5b506103e3610b87565b6040516103f09190612b44565b60405180910390f35b34801561040557600080fd5b5061040e610b91565b60405161041b9190612b44565b60405180910390f35b34801561043057600080fd5b5061044b60048036038101906104469190612c85565b610b97565b005b34801561045957600080fd5b50610474600480360381019061046f9190612a95565b610c6e565b6040516104819190612af0565b60405180910390f35b34801561049657600080fd5b5061049f610d1a565b6040516104ac9190612ce6565b60405180910390f35b3480156104c157600080fd5b506104ca610d40565b6040516104d79190612b44565b60405180910390f35b3480156104ec57600080fd5b5061050760048036038101906105029190612d01565b610d46565b005b34801561051557600080fd5b5061051e610e05565b60405161052b9190612b1a565b60405180910390f35b34801561054057600080fd5b50610549610e2b565b6040516105569190612af0565b60405180910390f35b34801561056b57600080fd5b5061058660048036038101906105819190612c2c565b610e3e565b005b34801561059457600080fd5b506105af60048036038101906105aa9190612c2c565b610f15565b005b3480156105bd57600080fd5b506105d860048036038101906105d39190612c2c565b610fec565b6040516105e59190612af0565b60405180910390f35b3480156105fa57600080fd5b5061061560048036038101906106109190612c2c565b611042565b005b34801561062357600080fd5b5061063e60048036038101906106399190612c2c565b611119565b60405161064b9190612b44565b60405180910390f35b34801561066057600080fd5b50610669611162565b005b34801561067757600080fd5b5061068061129c565b60405161068d9190612b1a565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612d01565b6112c5565b005b3480156106cb57600080fd5b506106d461139d565b6040516106e191906129da565b60405180910390f35b3480156106f657600080fd5b50610711600480360381019061070c9190612d5a565b61142f565b005b34801561071f57600080fd5b5061072861155e565b6040516107359190612b44565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190612a95565b611564565b6040516107729190612af0565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d9190612a95565b611658565b6040516107af9190612af0565b60405180910390f35b3480156107c457600080fd5b506107cd611676565b6040516107da9190612b44565b60405180910390f35b3480156107ef57600080fd5b5061080a60048036038101906108059190612c2c565b61167c565b6040516108179190612af0565b60405180910390f35b34801561082c57600080fd5b5061084760048036038101906108429190612c2c565b6116d2565b005b34801561085557600080fd5b5061085e611839565b005b34801561086c57600080fd5b5061088760048036038101906108829190612d87565b6118d7565b005b34801561089557600080fd5b5061089e6119a7565b6040516108ab9190612b44565b60405180910390f35b3480156108c057600080fd5b506108db60048036038101906108d69190612d01565b6119ad565b005b3480156108e957600080fd5b5061090460048036038101906108ff9190612db4565b611a6c565b6040516109119190612b44565b60405180910390f35b34801561092657600080fd5b50610941600480360381019061093c9190612c2c565b611af3565b005b60606009805461095290612e23565b80601f016020809104026020016040519081016040528092919081815260200182805461097e90612e23565b80156109cb5780601f106109a0576101008083540402835291602001916109cb565b820191906000526020600020905b8154815290600101906020018083116109ae57829003601f168201915b5050505050905090565b60006109e96109e2611c9b565b8484611ca3565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b60125481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600854905090565b6000610a5a848484611e6c565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610aa5611c9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1c90612ec6565b60405180910390fd5b60019150509392505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600754905090565b60075481565b610b9f611c9b565b73ffffffffffffffffffffffffffffffffffffffff16610bbd61129c565b73ffffffffffffffffffffffffffffffffffffffff1614610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a90612f32565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610d10610c7b611c9b565b848460026000610c89611c9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d0b9190612f81565b611ca3565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b610d4e611c9b565b73ffffffffffffffffffffffffffffffffffffffff16610d6c61129c565b73ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db990612f32565b60405180910390fd5b80600d819055507f4babbcf4831921e3525c5cad678d0379401b05da366a608803a6a79910969066600d54604051610dfa9190612b44565b60405180910390a150565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060159054906101000a900460ff1681565b610e46611c9b565b73ffffffffffffffffffffffffffffffffffffffff16610e6461129c565b73ffffffffffffffffffffffffffffffffffffffff1614610eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb190612f32565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f1d611c9b565b73ffffffffffffffffffffffffffffffffffffffff16610f3b61129c565b73ffffffffffffffffffffffffffffffffffffffff1614610f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8890612f32565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61104a611c9b565b73ffffffffffffffffffffffffffffffffffffffff1661106861129c565b73ffffffffffffffffffffffffffffffffffffffff16146110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612f32565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61116a611c9b565b73ffffffffffffffffffffffffffffffffffffffff1661118861129c565b73ffffffffffffffffffffffffffffffffffffffff16146111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d590612f32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112cd611c9b565b73ffffffffffffffffffffffffffffffffffffffff166112eb61129c565b73ffffffffffffffffffffffffffffffffffffffff1614611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612f32565b60405180910390fd5b600754600a61135091906130e8565b8161135b9190613133565b6011819055507f5948780118f41f7c4577ae4619d5cbd064057bd8562d9f7b7e60324053375c006011546040516113929190612b44565b60405180910390a150565b6060600a80546113ac90612e23565b80601f01602080910402602001604051908101604052809291908181526020018280546113d890612e23565b80156114255780601f106113fa57610100808354040283529160200191611425565b820191906000526020600020905b81548152906001019060200180831161140857829003601f168201915b5050505050905090565b611437611c9b565b73ffffffffffffffffffffffffffffffffffffffff1661145561129c565b73ffffffffffffffffffffffffffffffffffffffff16146114ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a290612f32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361151a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611511906131c1565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c5481565b60008060026000611573611c9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611630576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162790613253565b60405180910390fd5b61164d61163b611c9b565b8585846116489190613273565b611ca3565b600191505092915050565b600061166c611665611c9b565b8484611e6c565b6001905092915050565b600d5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6116da611c9b565b73ffffffffffffffffffffffffffffffffffffffff166116f861129c565b73ffffffffffffffffffffffffffffffffffffffff161461174e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174590612f32565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d590613319565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611841611c9b565b73ffffffffffffffffffffffffffffffffffffffff1661185f61129c565b73ffffffffffffffffffffffffffffffffffffffff16146118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac90612f32565b60405180910390fd5b6064806008546118c59190613133565b6118cf9190613368565b601281905550565b6118df611c9b565b73ffffffffffffffffffffffffffffffffffffffff166118fd61129c565b73ffffffffffffffffffffffffffffffffffffffff1614611953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194a90612f32565b60405180910390fd5b80601060156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1598160405161199c9190612af0565b60405180910390a150565b60115481565b6119b5611c9b565b73ffffffffffffffffffffffffffffffffffffffff166119d361129c565b73ffffffffffffffffffffffffffffffffffffffff1614611a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2090612f32565b60405180910390fd5b80600c819055507f0e67b9e2db5ac83e278ae529ba7f8d72a1f5e732cb9fa988e8289587a08c1ed4600c54604051611a619190612b44565b60405180910390a150565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611afb611c9b565b73ffffffffffffffffffffffffffffffffffffffff16611b1961129c565b73ffffffffffffffffffffffffffffffffffffffff1614611b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6690612f32565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd59061340b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d099061349d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d789061352f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e5f9190612b44565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed2906135c1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4190613653565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611fee5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61202d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612024906136bf565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156120af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a69061372b565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561213c575061210c61129c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561219a576012548161214e84611119565b6121589190612f81565b1115612199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219090613797565b60405180910390fd5b5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061223d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561224b576000905061233a565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122bf57600e54600d54836122ae9190613133565b6122b89190613368565b9050612339565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561233357600e54600c54836123229190613133565b61232c9190613368565b9050612338565b600090505b5b5b600061234530611119565b905060006011548210159050601060149054906101000a900460ff161580156123bb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156123d35750601060159054906101000a900460ff165b801561240a5750601154612408601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611119565b115b156124255780156124245760115491506124238261264c565b5b5b600083856124339190613273565b905083600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124849190612f81565b9250508190555084600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124d69190613273565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125689190612f81565b9250508190555060008411156125de573073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516125d59190612b44565b60405180910390a35b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161263b9190612b44565b60405180910390a350505050505050565b6001601060146101000a81548160ff02191690831515021790555061267081612707565b600047905060008111156126e857600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156126e6573d6000803e3d6000fd5b505b506000601060146101000a81548160ff02191690831515021790555050565b6000600267ffffffffffffffff811115612724576127236137b7565b5b6040519080825280602002602001820160405280156127525781602001602082028036833780820191505090505b509050308160008151811061276a576127696137e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612811573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612835919061382a565b81600181518110612849576128486137e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506128b030600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ca3565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612914959493929190613950565b600060405180830381600087803b15801561292e57600080fd5b505af1158015612942573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612984578082015181840152602081019050612969565b60008484015250505050565b6000601f19601f8301169050919050565b60006129ac8261294a565b6129b68185612955565b93506129c6818560208601612966565b6129cf81612990565b840191505092915050565b600060208201905081810360008301526129f481846129a1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a2c82612a01565b9050919050565b612a3c81612a21565b8114612a4757600080fd5b50565b600081359050612a5981612a33565b92915050565b6000819050919050565b612a7281612a5f565b8114612a7d57600080fd5b50565b600081359050612a8f81612a69565b92915050565b60008060408385031215612aac57612aab6129fc565b5b6000612aba85828601612a4a565b9250506020612acb85828601612a80565b9150509250929050565b60008115159050919050565b612aea81612ad5565b82525050565b6000602082019050612b056000830184612ae1565b92915050565b612b1481612a21565b82525050565b6000602082019050612b2f6000830184612b0b565b92915050565b612b3e81612a5f565b82525050565b6000602082019050612b596000830184612b35565b92915050565b6000819050919050565b6000612b84612b7f612b7a84612a01565b612b5f565b612a01565b9050919050565b6000612b9682612b69565b9050919050565b6000612ba882612b8b565b9050919050565b612bb881612b9d565b82525050565b6000602082019050612bd36000830184612baf565b92915050565b600080600060608486031215612bf257612bf16129fc565b5b6000612c0086828701612a4a565b9350506020612c1186828701612a4a565b9250506040612c2286828701612a80565b9150509250925092565b600060208284031215612c4257612c416129fc565b5b6000612c5084828501612a4a565b91505092915050565b612c6281612ad5565b8114612c6d57600080fd5b50565b600081359050612c7f81612c59565b92915050565b60008060408385031215612c9c57612c9b6129fc565b5b6000612caa85828601612a4a565b9250506020612cbb85828601612c70565b9150509250929050565b6000612cd082612a01565b9050919050565b612ce081612cc5565b82525050565b6000602082019050612cfb6000830184612cd7565b92915050565b600060208284031215612d1757612d166129fc565b5b6000612d2584828501612a80565b91505092915050565b612d3781612cc5565b8114612d4257600080fd5b50565b600081359050612d5481612d2e565b92915050565b600060208284031215612d7057612d6f6129fc565b5b6000612d7e84828501612d45565b91505092915050565b600060208284031215612d9d57612d9c6129fc565b5b6000612dab84828501612c70565b91505092915050565b60008060408385031215612dcb57612dca6129fc565b5b6000612dd985828601612a4a565b9250506020612dea85828601612a4a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e3b57607f821691505b602082108103612e4e57612e4d612df4565b5b50919050565b7f4945524332303a207472616e7366657220616d6f756e7420657863656564732060008201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b6000612eb0602983612955565b9150612ebb82612e54565b604082019050919050565b60006020820190508181036000830152612edf81612ea3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f1c602083612955565b9150612f2782612ee6565b602082019050919050565b60006020820190508181036000830152612f4b81612f0f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f8c82612a5f565b9150612f9783612a5f565b9250828201905080821115612faf57612fae612f52565b5b92915050565b60008160011c9050919050565b6000808291508390505b600185111561300c57808604811115612fe857612fe7612f52565b5b6001851615612ff75780820291505b808102905061300585612fb5565b9450612fcc565b94509492505050565b60008261302557600190506130e1565b8161303357600090506130e1565b8160018114613049576002811461305357613082565b60019150506130e1565b60ff84111561306557613064612f52565b5b8360020a91508482111561307c5761307b612f52565b5b506130e1565b5060208310610133831016604e8410600b84101617156130b75782820a9050838111156130b2576130b1612f52565b5b6130e1565b6130c48484846001612fc2565b925090508184048111156130db576130da612f52565b5b81810290505b9392505050565b60006130f382612a5f565b91506130fe83612a5f565b925061312b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613015565b905092915050565b600061313e82612a5f565b915061314983612a5f565b925082820261315781612a5f565b9150828204841483151761316e5761316d612f52565b5b5092915050565b7f596f752063616e277420736574207a65726f2061646472657373000000000000600082015250565b60006131ab601a83612955565b91506131b682613175565b602082019050919050565b600060208201905081810360008301526131da8161319e565b9050919050565b7f4945524332303a2064656372656173656420616c6c6f77616e63652062656c6f60008201527f77207a65726f0000000000000000000000000000000000000000000000000000602082015250565b600061323d602683612955565b9150613248826131e1565b604082019050919050565b6000602082019050818103600083015261326c81613230565b9050919050565b600061327e82612a5f565b915061328983612a5f565b92508282039050818111156132a1576132a0612f52565b5b92915050565b7f596f752063616e277420706c61792077697468204c697175696469747920706160008201527f6972206164647265737300000000000000000000000000000000000000000000602082015250565b6000613303602a83612955565b915061330e826132a7565b604082019050919050565b60006020820190508181036000830152613332816132f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061337382612a5f565b915061337e83612a5f565b92508261338e5761338d613339565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133f5602683612955565b915061340082613399565b604082019050919050565b60006020820190508181036000830152613424816133e8565b9050919050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613487602583612955565b91506134928261342b565b604082019050919050565b600060208201905081810360008301526134b68161347a565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613519602383612955565b9150613524826134bd565b604082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f4945524332303a207472616e736665722066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135ab602683612955565b91506135b68261354f565b604082019050919050565b600060208201905081810360008301526135da8161359e565b9050919050565b7f4945524332303a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061363d602483612955565b9150613648826135e1565b604082019050919050565b6000602082019050818103600083015261366c81613630565b9050919050565b7f536f72727920796f7572206163636f756e74206973206c696d69697465640000600082015250565b60006136a9601e83612955565b91506136b482613673565b602082019050919050565b600060208201905081810360008301526136d88161369c565b9050919050565b7f596f7520646f6e2774206861766520656e6f7567682062616c616e6365000000600082015250565b6000613715601d83612955565b9150613720826136df565b602082019050919050565b6000602082019050818103600083015261374481613708565b9050919050565b7f57616c6c657420486f6c64696e67206c696d6974206578636565646564000000600082015250565b6000613781601d83612955565b915061378c8261374b565b602082019050919050565b600060208201905081810360008301526137b081613774565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061382481612a33565b92915050565b6000602082840312156138405761383f6129fc565b5b600061384e84828501613815565b91505092915050565b6000819050919050565b600061387c61387761387284613857565b612b5f565b612a5f565b9050919050565b61388c81613861565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138c781612a21565b82525050565b60006138d983836138be565b60208301905092915050565b6000602082019050919050565b60006138fd82613892565b613907818561389d565b9350613912836138ae565b8060005b8381101561394357815161392a88826138cd565b9750613935836138e5565b925050600181019050613916565b5085935050505092915050565b600060a0820190506139656000830188612b35565b6139726020830187613883565b818103604083015261398481866138f2565b90506139936060830185612b0b565b6139a06080830184612b35565b969550505050505056fea2646970667358221220a2a3db2c7e270e13e2ac84c9e13927ff48443c8fc0796234ee76fb8903a2e76d64736f6c63430008130033

Deployed Bytecode Sourcemap

11653:11571:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14588:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15110:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12258:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12811:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12558:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14873:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19488:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16924:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14778:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12074:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17739:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15925:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12361:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12110:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18482:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12606:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12680:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16804:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16683:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17904:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17259:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14983:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2012:148;;;;;;;;;;;;;:::i;:::-;;1789:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18679:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14681:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18036:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12415:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16230:445;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19264:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12463:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17058:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17436:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18948:127;;;;;;;;;;;;;:::i;:::-;;19083:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12729:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18289:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15716:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2168:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14588:85;14627:13;14660:5;14653:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14588:85;:::o;15110:210::-;15229:4;15251:39;15260:12;:10;:12::i;:::-;15274:7;15283:6;15251:8;:39::i;:::-;15308:4;15301:11;;15110:210;;;;:::o;12258:96::-;;;:::o;12811:66::-;;;;:::o;12558:41::-;;;;;;;;;;;;;:::o;14873:102::-;14928:7;14955:12;;14948:19;;14873:102;:::o;19488:422::-;19628:4;19645:36;19655:6;19663:9;19674:6;19645:9;:36::i;:::-;19692:24;19719:11;:19;19731:6;19719:19;;;;;;;;;;;;;;;:33;19739:12;:10;:12::i;:::-;19719:33;;;;;;;;;;;;;;;;19692:60;;19805:6;19785:16;:26;;19763:117;;;;;;;;;;;;:::i;:::-;;;;;;;;;19898:4;19891:11;;;19488:422;;;;;:::o;16924:126::-;16991:4;17015:18;:27;17034:7;17015:27;;;;;;;;;;;;;;;;;;;;;;;;;17008:34;;16924:126;;;:::o;14778:87::-;14821:7;14848:9;;14841:16;;14778:87;:::o;12074:29::-;;;;:::o;17739:157::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17882:6:::1;17853:17;:26;17871:7;17853:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;17739:157:::0;;:::o;15925:297::-;16040:4;16062:130;16085:12;:10;:12::i;:::-;16112:7;16171:10;16134:11;:25;16146:12;:10;:12::i;:::-;16134:25;;;;;;;;;;;;;;;:34;16160:7;16134:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;16062:8;:130::i;:::-;16210:4;16203:11;;15925:297;;;;:::o;12361:45::-;;;;;;;;;;;;;:::o;12110:61::-;;;;:::o;18482:189::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18590:15:::1;18567:20;:38;;;;18621:42;18642:20;;18621:42;;;;;;:::i;:::-;;;;;;;;18482:189:::0;:::o;12606:28::-;;;;;;;;;;;;;:::o;12680:40::-;;;;;;;;;;;;;:::o;16804:112::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16903:5:::1;16873:18;:27;16892:7;16873:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16804:112:::0;:::o;16683:113::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16784:4:::1;16754:18;:27;16773:7;16754:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;16683:113:::0;:::o;17904:124::-;17970:4;17994:17;:26;18012:7;17994:26;;;;;;;;;;;;;;;;;;;;;;;;;17987:33;;17904:124;;;:::o;17259:169::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17416:4:::1;17371:33;:42;17405:7;17371:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;17259:169:::0;:::o;14983:119::-;15049:7;15076:9;:18;15086:7;15076:18;;;;;;;;;;;;;;;;15069:25;;14983:119;;;:::o;2012:148::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2119:1:::1;2082:40;;2103:6;::::0;::::1;;;;;;;;2082:40;;;;;;;;;;;;2150:1;2133:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2012:148::o:0;1789:87::-;1835:7;1862:6;;;;;;;;;;;1855:13;;1789:87;:::o;18679:261::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18850:9:::1;;18846:2;:13;;;;:::i;:::-;18829:14;:30;;;;:::i;:::-;18797:29;:62;;;;18875:57;18902:29;;18875:57;;;;;;:::i;:::-;;;;;;;;18679:261:::0;:::o;14681:89::-;14722:13;14755:7;14748:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14681:89;:::o;18036:245::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18186:1:::1;18156:32;;:18;:32;;::::0;18148:71:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18255:18;18230:22;;:43;;;;;;;;;;;;;;;;;;18036:245:::0;:::o;12415:39::-;;;;:::o;16230:445::-;16350:4;16372:24;16399:11;:25;16411:12;:10;:12::i;:::-;16399:25;;;;;;;;;;;;;;;:34;16425:7;16399:34;;;;;;;;;;;;;;;;16372:61;;16486:15;16466:16;:35;;16444:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;16578:67;16587:12;:10;:12::i;:::-;16601:7;16629:15;16610:16;:34;;;;:::i;:::-;16578:8;:67::i;:::-;16663:4;16656:11;;;16230:445;;;;:::o;19264:216::-;19386:4;19408:42;19418:12;:10;:12::i;:::-;19432:9;19443:6;19408:9;:42::i;:::-;19468:4;19461:11;;19264:216;;;;:::o;12463:40::-;;;;:::o;17058:193::-;17166:4;17195:33;:48;17229:13;17195:48;;;;;;;;;;;;;;;;;;;;;;;;;17188:55;;17058:193;;;:::o;17436:295::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17579:13:::1;;;;;;;;;;;17568:24;;:7;:24;;::::0;17546:116:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17718:5;17673:33;:42;17707:7;17673:42;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;17436:295:::0;:::o;18948:127::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19062:5:::1;19055:3:::0;19040:12:::1;;:18;;;;:::i;:::-;19039:28;;;;:::i;:::-;19014:22;:53;;;;18948:127::o:0;19083:173::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19186:8:::1;19162:21;;:32;;;;;;;;;;;;;;;;;;19210:38;19239:8;19210:38;;;;;;:::i;:::-;;;;;;;;19083:173:::0;:::o;12729:75::-;;;;:::o;18289:185::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18395:15:::1;18373:19;:37;;;;18426:40;18446:19;;18426:40;;;;;;:::i;:::-;;;;;;;;18289:185:::0;:::o;15716:201::-;15850:7;15882:11;:18;15894:5;15882:18;;;;;;;;;;;;;;;:27;15901:7;15882:27;;;;;;;;;;;;;;;;15875:34;;15716:201;;;;:::o;2168:281::-;1935:12;:10;:12::i;:::-;1924:23;;:7;:5;:7::i;:::-;:23;;;1916:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2291:1:::1;2271:22;;:8;:22;;::::0;2249:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2404:8;2375:38;;2396:6;::::0;::::1;;;;;;;;2375:38;;;;;;;;;;;;2433:8;2424:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2168:281:::0;:::o;1243:98::-;1296:7;1323:10;1316:17;;1243:98;:::o;15328:380::-;15481:1;15464:19;;:5;:19;;;15456:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15563:1;15544:21;;:7;:21;;;15536:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;15646:6;15616:11;:18;15628:5;15616:18;;;;;;;;;;;;;;;:27;15635:7;15616:27;;;;;;;;;;;;;;;:36;;;;15684:7;15668:32;;15677:5;15668:32;;;15693:6;15668:32;;;;;;:::i;:::-;;;;;;;;15328:380;;;:::o;20011:2300::-;20169:1;20151:20;;:6;:20;;;20143:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20268:1;20247:23;;:9;:23;;;20225:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;20368:17;:25;20386:6;20368:25;;;;;;;;;;;;;;;;;;;;;;;;;20367:26;:59;;;;;20398:17;:28;20416:9;20398:28;;;;;;;;;;;;;;;;;;;;;;;;;20397:29;20367:59;20345:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;20524:6;20503:9;:17;20513:6;20503:17;;;;;;;;;;;;;;;;:27;;20495:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;20596:33;:44;20630:9;20596:44;;;;;;;;;;;;;;;;;;;;;;;;;20595:45;:66;;;;;20654:7;:5;:7::i;:::-;20644:17;;:6;:17;;;;20595:66;20577:269;;;20747:22;;20737:6;20714:20;20724:9;20714;:20::i;:::-;:29;;;;:::i;:::-;:55;;20688:146;;;;;;;;;;;;:::i;:::-;;;;;;;;;20577:269;20858:16;20895:18;:26;20914:6;20895:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;20925:18;:29;20944:9;20925:29;;;;;;;;;;;;;;;;;;;;;;;;;20895:59;20891:467;;;20982:1;20971:12;;20891:467;;;21020:23;:34;21044:9;21020:34;;;;;;;;;;;;;;;;;;;;;;;;;21016:331;;;21123:14;;21097:20;;21087:6;:31;;;;:::i;:::-;21086:52;;;;:::i;:::-;21075:63;;21016:331;;;21164:23;:31;21188:6;21164:31;;;;;;;;;;;;;;;;;;;;;;;;;21160:187;;;21263:14;;21238:19;;21228:6;:30;;;;:::i;:::-;21227:51;;;;:::i;:::-;21216:62;;21160:187;;;21330:1;21319:12;;21160:187;21016:331;20891:467;21370:28;21401:24;21419:4;21401:9;:24::i;:::-;21370:55;;21438:24;21502:29;;21465:20;:66;;21438:93;;21561:16;;;;;;;;;;;21560:17;:60;;;;;21607:13;;;;;;;;;;;21594:26;;:9;:26;;;21560:60;:98;;;;;21637:21;;;;;;;;;;;21560:98;:171;;;;;21702:29;;21675:24;21685:13;;;;;;;;;;;21675:9;:24::i;:::-;:56;21560:171;21542:390;;;21762:19;21758:163;;;21825:29;;21802:52;;21873:32;21884:20;21873:10;:32::i;:::-;21758:163;21542:390;21944:22;21979:8;21969:6;:19;;;;:::i;:::-;21944:44;;22027:8;21999:9;:24;22017:4;21999:24;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;22086:6;22066:9;:17;22076:6;22066:17;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;22046:9;:17;22056:6;22046:17;;;;;;;;;;;;;;;:46;;;;22127:14;22103:9;:20;22113:9;22103:20;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;22169:1;22158:8;:12;22154:91;;;22217:4;22192:41;;22201:6;22192:41;;;22224:8;22192:41;;;;;;:::i;:::-;;;;;;;;22154:91;22277:9;22260:43;;22269:6;22260:43;;;22288:14;22260:43;;;;;;:::i;:::-;;;;;;;;20132:2179;;;;20011:2300;;;:::o;22319:305::-;13451:4;13432:16;;:23;;;;;;;;;;;;;;;;;;22401:39:::1;22418:21;22401:16;:39::i;:::-;22451:24;22478:21;22451:48;;22533:1;22514:16;:20;22510:107;;;22551:22;;;;;;;;;;;:31;;:54;22583:21;22551:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22510:107;22390:234;13497:5:::0;13478:16;;:24;;;;;;;;;;;;;;;;;;22319:305;:::o;22632:589::-;22758:21;22796:1;22782:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22758:40;;22827:4;22809;22814:1;22809:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22853:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22843:4;22848:1;22843:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;22888:62;22905:4;22920:15;;;;;;;;;;;22938:11;22888:8;:62::i;:::-;22989:15;;;;;;;;;;;:66;;;23070:11;23096:1;23140:4;23167;23187:15;22989:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22687:534;22632:589;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:60::-;4178:3;4199:5;4192:12;;4150:60;;;:::o;4216:142::-;4266:9;4299:53;4317:34;4326:24;4344:5;4326:24;:::i;:::-;4317:34;:::i;:::-;4299:53;:::i;:::-;4286:66;;4216:142;;;:::o;4364:126::-;4414:9;4447:37;4478:5;4447:37;:::i;:::-;4434:50;;4364:126;;;:::o;4496:152::-;4572:9;4605:37;4636:5;4605:37;:::i;:::-;4592:50;;4496:152;;;:::o;4654:183::-;4767:63;4824:5;4767:63;:::i;:::-;4762:3;4755:76;4654:183;;:::o;4843:274::-;4962:4;5000:2;4989:9;4985:18;4977:26;;5013:97;5107:1;5096:9;5092:17;5083:6;5013:97;:::i;:::-;4843:274;;;;:::o;5123:619::-;5200:6;5208;5216;5265:2;5253:9;5244:7;5240:23;5236:32;5233:119;;;5271:79;;:::i;:::-;5233:119;5391:1;5416:53;5461:7;5452:6;5441:9;5437:22;5416:53;:::i;:::-;5406:63;;5362:117;5518:2;5544:53;5589:7;5580:6;5569:9;5565:22;5544:53;:::i;:::-;5534:63;;5489:118;5646:2;5672:53;5717:7;5708:6;5697:9;5693:22;5672:53;:::i;:::-;5662:63;;5617:118;5123:619;;;;;:::o;5748:329::-;5807:6;5856:2;5844:9;5835:7;5831:23;5827:32;5824:119;;;5862:79;;:::i;:::-;5824:119;5982:1;6007:53;6052:7;6043:6;6032:9;6028:22;6007:53;:::i;:::-;5997:63;;5953:117;5748:329;;;;:::o;6083:116::-;6153:21;6168:5;6153:21;:::i;:::-;6146:5;6143:32;6133:60;;6189:1;6186;6179:12;6133:60;6083:116;:::o;6205:133::-;6248:5;6286:6;6273:20;6264:29;;6302:30;6326:5;6302:30;:::i;:::-;6205:133;;;;:::o;6344:468::-;6409:6;6417;6466:2;6454:9;6445:7;6441:23;6437:32;6434:119;;;6472:79;;:::i;:::-;6434:119;6592:1;6617:53;6662:7;6653:6;6642:9;6638:22;6617:53;:::i;:::-;6607:63;;6563:117;6719:2;6745:50;6787:7;6778:6;6767:9;6763:22;6745:50;:::i;:::-;6735:60;;6690:115;6344:468;;;;;:::o;6818:104::-;6863:7;6892:24;6910:5;6892:24;:::i;:::-;6881:35;;6818:104;;;:::o;6928:142::-;7031:32;7057:5;7031:32;:::i;:::-;7026:3;7019:45;6928:142;;:::o;7076:254::-;7185:4;7223:2;7212:9;7208:18;7200:26;;7236:87;7320:1;7309:9;7305:17;7296:6;7236:87;:::i;:::-;7076:254;;;;:::o;7336:329::-;7395:6;7444:2;7432:9;7423:7;7419:23;7415:32;7412:119;;;7450:79;;:::i;:::-;7412:119;7570:1;7595:53;7640:7;7631:6;7620:9;7616:22;7595:53;:::i;:::-;7585:63;;7541:117;7336:329;;;;:::o;7671:138::-;7752:32;7778:5;7752:32;:::i;:::-;7745:5;7742:43;7732:71;;7799:1;7796;7789:12;7732:71;7671:138;:::o;7815:155::-;7869:5;7907:6;7894:20;7885:29;;7923:41;7958:5;7923:41;:::i;:::-;7815:155;;;;:::o;7976:345::-;8043:6;8092:2;8080:9;8071:7;8067:23;8063:32;8060:119;;;8098:79;;:::i;:::-;8060:119;8218:1;8243:61;8296:7;8287:6;8276:9;8272:22;8243:61;:::i;:::-;8233:71;;8189:125;7976:345;;;;:::o;8327:323::-;8383:6;8432:2;8420:9;8411:7;8407:23;8403:32;8400:119;;;8438:79;;:::i;:::-;8400:119;8558:1;8583:50;8625:7;8616:6;8605:9;8601:22;8583:50;:::i;:::-;8573:60;;8529:114;8327:323;;;;:::o;8656:474::-;8724:6;8732;8781:2;8769:9;8760:7;8756:23;8752:32;8749:119;;;8787:79;;:::i;:::-;8749:119;8907:1;8932:53;8977:7;8968:6;8957:9;8953:22;8932:53;:::i;:::-;8922:63;;8878:117;9034:2;9060:53;9105:7;9096:6;9085:9;9081:22;9060:53;:::i;:::-;9050:63;;9005:118;8656:474;;;;;:::o;9136:180::-;9184:77;9181:1;9174:88;9281:4;9278:1;9271:15;9305:4;9302:1;9295:15;9322:320;9366:6;9403:1;9397:4;9393:12;9383:22;;9450:1;9444:4;9440:12;9471:18;9461:81;;9527:4;9519:6;9515:17;9505:27;;9461:81;9589:2;9581:6;9578:14;9558:18;9555:38;9552:84;;9608:18;;:::i;:::-;9552:84;9373:269;9322:320;;;:::o;9648:228::-;9788:34;9784:1;9776:6;9772:14;9765:58;9857:11;9852:2;9844:6;9840:15;9833:36;9648:228;:::o;9882:366::-;10024:3;10045:67;10109:2;10104:3;10045:67;:::i;:::-;10038:74;;10121:93;10210:3;10121:93;:::i;:::-;10239:2;10234:3;10230:12;10223:19;;9882:366;;;:::o;10254:419::-;10420:4;10458:2;10447:9;10443:18;10435:26;;10507:9;10501:4;10497:20;10493:1;10482:9;10478:17;10471:47;10535:131;10661:4;10535:131;:::i;:::-;10527:139;;10254:419;;;:::o;10679:182::-;10819:34;10815:1;10807:6;10803:14;10796:58;10679:182;:::o;10867:366::-;11009:3;11030:67;11094:2;11089:3;11030:67;:::i;:::-;11023:74;;11106:93;11195:3;11106:93;:::i;:::-;11224:2;11219:3;11215:12;11208:19;;10867:366;;;:::o;11239:419::-;11405:4;11443:2;11432:9;11428:18;11420:26;;11492:9;11486:4;11482:20;11478:1;11467:9;11463:17;11456:47;11520:131;11646:4;11520:131;:::i;:::-;11512:139;;11239:419;;;:::o;11664:180::-;11712:77;11709:1;11702:88;11809:4;11806:1;11799:15;11833:4;11830:1;11823:15;11850:191;11890:3;11909:20;11927:1;11909:20;:::i;:::-;11904:25;;11943:20;11961:1;11943:20;:::i;:::-;11938:25;;11986:1;11983;11979:9;11972:16;;12007:3;12004:1;12001:10;11998:36;;;12014:18;;:::i;:::-;11998:36;11850:191;;;;:::o;12047:102::-;12089:8;12136:5;12133:1;12129:13;12108:34;;12047:102;;;:::o;12155:848::-;12216:5;12223:4;12247:6;12238:15;;12271:5;12262:14;;12285:712;12306:1;12296:8;12293:15;12285:712;;;12401:4;12396:3;12392:14;12386:4;12383:24;12380:50;;;12410:18;;:::i;:::-;12380:50;12460:1;12450:8;12446:16;12443:451;;;12875:4;12868:5;12864:16;12855:25;;12443:451;12925:4;12919;12915:15;12907:23;;12955:32;12978:8;12955:32;:::i;:::-;12943:44;;12285:712;;;12155:848;;;;;;;:::o;13009:1073::-;13063:5;13254:8;13244:40;;13275:1;13266:10;;13277:5;;13244:40;13303:4;13293:36;;13320:1;13311:10;;13322:5;;13293:36;13389:4;13437:1;13432:27;;;;13473:1;13468:191;;;;13382:277;;13432:27;13450:1;13441:10;;13452:5;;;13468:191;13513:3;13503:8;13500:17;13497:43;;;13520:18;;:::i;:::-;13497:43;13569:8;13566:1;13562:16;13553:25;;13604:3;13597:5;13594:14;13591:40;;;13611:18;;:::i;:::-;13591:40;13644:5;;;13382:277;;13768:2;13758:8;13755:16;13749:3;13743:4;13740:13;13736:36;13718:2;13708:8;13705:16;13700:2;13694:4;13691:12;13687:35;13671:111;13668:246;;;13824:8;13818:4;13814:19;13805:28;;13859:3;13852:5;13849:14;13846:40;;;13866:18;;:::i;:::-;13846:40;13899:5;;13668:246;13939:42;13977:3;13967:8;13961:4;13958:1;13939:42;:::i;:::-;13924:57;;;;14013:4;14008:3;14004:14;13997:5;13994:25;13991:51;;;14022:18;;:::i;:::-;13991:51;14071:4;14064:5;14060:16;14051:25;;13009:1073;;;;;;:::o;14088:285::-;14148:5;14172:23;14190:4;14172:23;:::i;:::-;14164:31;;14216:27;14234:8;14216:27;:::i;:::-;14204:39;;14262:104;14299:66;14289:8;14283:4;14262:104;:::i;:::-;14253:113;;14088:285;;;;:::o;14379:410::-;14419:7;14442:20;14460:1;14442:20;:::i;:::-;14437:25;;14476:20;14494:1;14476:20;:::i;:::-;14471:25;;14531:1;14528;14524:9;14553:30;14571:11;14553:30;:::i;:::-;14542:41;;14732:1;14723:7;14719:15;14716:1;14713:22;14693:1;14686:9;14666:83;14643:139;;14762:18;;:::i;:::-;14643:139;14427:362;14379:410;;;;:::o;14795:176::-;14935:28;14931:1;14923:6;14919:14;14912:52;14795:176;:::o;14977:366::-;15119:3;15140:67;15204:2;15199:3;15140:67;:::i;:::-;15133:74;;15216:93;15305:3;15216:93;:::i;:::-;15334:2;15329:3;15325:12;15318:19;;14977:366;;;:::o;15349:419::-;15515:4;15553:2;15542:9;15538:18;15530:26;;15602:9;15596:4;15592:20;15588:1;15577:9;15573:17;15566:47;15630:131;15756:4;15630:131;:::i;:::-;15622:139;;15349:419;;;:::o;15774:225::-;15914:34;15910:1;15902:6;15898:14;15891:58;15983:8;15978:2;15970:6;15966:15;15959:33;15774:225;:::o;16005:366::-;16147:3;16168:67;16232:2;16227:3;16168:67;:::i;:::-;16161:74;;16244:93;16333:3;16244:93;:::i;:::-;16362:2;16357:3;16353:12;16346:19;;16005:366;;;:::o;16377:419::-;16543:4;16581:2;16570:9;16566:18;16558:26;;16630:9;16624:4;16620:20;16616:1;16605:9;16601:17;16594:47;16658:131;16784:4;16658:131;:::i;:::-;16650:139;;16377:419;;;:::o;16802:194::-;16842:4;16862:20;16880:1;16862:20;:::i;:::-;16857:25;;16896:20;16914:1;16896:20;:::i;:::-;16891:25;;16940:1;16937;16933:9;16925:17;;16964:1;16958:4;16955:11;16952:37;;;16969:18;;:::i;:::-;16952:37;16802:194;;;;:::o;17002:229::-;17142:34;17138:1;17130:6;17126:14;17119:58;17211:12;17206:2;17198:6;17194:15;17187:37;17002:229;:::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:180::-;18082:77;18079:1;18072:88;18179:4;18176:1;18169:15;18203:4;18200:1;18193:15;18220:185;18260:1;18277:20;18295:1;18277:20;:::i;:::-;18272:25;;18311:20;18329:1;18311:20;:::i;:::-;18306:25;;18350:1;18340:35;;18355:18;;:::i;:::-;18340:35;18397:1;18394;18390:9;18385:14;;18220:185;;;;:::o;18411:225::-;18551:34;18547:1;18539:6;18535:14;18528:58;18620:8;18615:2;18607:6;18603:15;18596:33;18411:225;:::o;18642:366::-;18784:3;18805:67;18869:2;18864:3;18805:67;:::i;:::-;18798:74;;18881:93;18970:3;18881:93;:::i;:::-;18999:2;18994:3;18990:12;18983:19;;18642:366;;;:::o;19014:419::-;19180:4;19218:2;19207:9;19203:18;19195:26;;19267:9;19261:4;19257:20;19253:1;19242:9;19238:17;19231:47;19295:131;19421:4;19295:131;:::i;:::-;19287:139;;19014:419;;;:::o;19439:224::-;19579:34;19575:1;19567:6;19563:14;19556:58;19648:7;19643:2;19635:6;19631:15;19624:32;19439:224;:::o;19669:366::-;19811:3;19832:67;19896:2;19891:3;19832:67;:::i;:::-;19825:74;;19908:93;19997:3;19908:93;:::i;:::-;20026:2;20021:3;20017:12;20010:19;;19669:366;;;:::o;20041:419::-;20207:4;20245:2;20234:9;20230:18;20222:26;;20294:9;20288:4;20284:20;20280:1;20269:9;20265:17;20258:47;20322:131;20448:4;20322:131;:::i;:::-;20314:139;;20041:419;;;:::o;20466:222::-;20606:34;20602:1;20594:6;20590:14;20583:58;20675:5;20670:2;20662:6;20658:15;20651:30;20466:222;:::o;20694:366::-;20836:3;20857:67;20921:2;20916:3;20857:67;:::i;:::-;20850:74;;20933:93;21022:3;20933:93;:::i;:::-;21051:2;21046:3;21042:12;21035:19;;20694:366;;;:::o;21066:419::-;21232:4;21270:2;21259:9;21255:18;21247:26;;21319:9;21313:4;21309:20;21305:1;21294:9;21290:17;21283:47;21347:131;21473:4;21347:131;:::i;:::-;21339:139;;21066:419;;;:::o;21491:225::-;21631:34;21627:1;21619:6;21615:14;21608:58;21700:8;21695:2;21687:6;21683:15;21676:33;21491:225;:::o;21722:366::-;21864:3;21885:67;21949:2;21944:3;21885:67;:::i;:::-;21878:74;;21961:93;22050:3;21961:93;:::i;:::-;22079:2;22074:3;22070:12;22063:19;;21722:366;;;:::o;22094:419::-;22260:4;22298:2;22287:9;22283:18;22275:26;;22347:9;22341:4;22337:20;22333:1;22322:9;22318:17;22311:47;22375:131;22501:4;22375:131;:::i;:::-;22367:139;;22094:419;;;:::o;22519:223::-;22659:34;22655:1;22647:6;22643:14;22636:58;22728:6;22723:2;22715:6;22711:15;22704:31;22519:223;:::o;22748:366::-;22890:3;22911:67;22975:2;22970:3;22911:67;:::i;:::-;22904:74;;22987:93;23076:3;22987:93;:::i;:::-;23105:2;23100:3;23096:12;23089:19;;22748:366;;;:::o;23120:419::-;23286:4;23324:2;23313:9;23309:18;23301:26;;23373:9;23367:4;23363:20;23359:1;23348:9;23344:17;23337:47;23401:131;23527:4;23401:131;:::i;:::-;23393:139;;23120:419;;;:::o;23545:180::-;23685:32;23681:1;23673:6;23669:14;23662:56;23545:180;:::o;23731:366::-;23873:3;23894:67;23958:2;23953:3;23894:67;:::i;:::-;23887:74;;23970:93;24059:3;23970:93;:::i;:::-;24088:2;24083:3;24079:12;24072:19;;23731:366;;;:::o;24103:419::-;24269:4;24307:2;24296:9;24292:18;24284:26;;24356:9;24350:4;24346:20;24342:1;24331:9;24327:17;24320:47;24384:131;24510:4;24384:131;:::i;:::-;24376:139;;24103:419;;;:::o;24528:179::-;24668:31;24664:1;24656:6;24652:14;24645:55;24528:179;:::o;24713:366::-;24855:3;24876:67;24940:2;24935:3;24876:67;:::i;:::-;24869:74;;24952:93;25041:3;24952:93;:::i;:::-;25070:2;25065:3;25061:12;25054:19;;24713:366;;;:::o;25085:419::-;25251:4;25289:2;25278:9;25274:18;25266:26;;25338:9;25332:4;25328:20;25324:1;25313:9;25309:17;25302:47;25366:131;25492:4;25366:131;:::i;:::-;25358:139;;25085:419;;;:::o;25510:179::-;25650:31;25646:1;25638:6;25634:14;25627:55;25510:179;:::o;25695:366::-;25837:3;25858:67;25922:2;25917:3;25858:67;:::i;:::-;25851:74;;25934:93;26023:3;25934:93;:::i;:::-;26052:2;26047:3;26043:12;26036:19;;25695:366;;;:::o;26067:419::-;26233:4;26271:2;26260:9;26256:18;26248:26;;26320:9;26314:4;26310:20;26306:1;26295:9;26291:17;26284:47;26348:131;26474:4;26348:131;:::i;:::-;26340:139;;26067:419;;;:::o;26492:180::-;26540:77;26537:1;26530:88;26637:4;26634:1;26627:15;26661:4;26658:1;26651:15;26678:180;26726:77;26723:1;26716:88;26823:4;26820:1;26813:15;26847:4;26844:1;26837:15;26864:143;26921:5;26952:6;26946:13;26937:22;;26968:33;26995:5;26968:33;:::i;:::-;26864:143;;;;:::o;27013:351::-;27083:6;27132:2;27120:9;27111:7;27107:23;27103:32;27100:119;;;27138:79;;:::i;:::-;27100:119;27258:1;27283:64;27339:7;27330:6;27319:9;27315:22;27283:64;:::i;:::-;27273:74;;27229:128;27013:351;;;;:::o;27370:85::-;27415:7;27444:5;27433:16;;27370:85;;;:::o;27461:158::-;27519:9;27552:61;27570:42;27579:32;27605:5;27579:32;:::i;:::-;27570:42;:::i;:::-;27552:61;:::i;:::-;27539:74;;27461:158;;;:::o;27625:147::-;27720:45;27759:5;27720:45;:::i;:::-;27715:3;27708:58;27625:147;;:::o;27778:114::-;27845:6;27879:5;27873:12;27863:22;;27778:114;;;:::o;27898:184::-;27997:11;28031:6;28026:3;28019:19;28071:4;28066:3;28062:14;28047:29;;27898:184;;;;:::o;28088:132::-;28155:4;28178:3;28170:11;;28208:4;28203:3;28199:14;28191:22;;28088:132;;;:::o;28226:108::-;28303:24;28321:5;28303:24;:::i;:::-;28298:3;28291:37;28226:108;;:::o;28340:179::-;28409:10;28430:46;28472:3;28464:6;28430:46;:::i;:::-;28508:4;28503:3;28499:14;28485:28;;28340:179;;;;:::o;28525:113::-;28595:4;28627;28622:3;28618:14;28610:22;;28525:113;;;:::o;28674:732::-;28793:3;28822:54;28870:5;28822:54;:::i;:::-;28892:86;28971:6;28966:3;28892:86;:::i;:::-;28885:93;;29002:56;29052:5;29002:56;:::i;:::-;29081:7;29112:1;29097:284;29122:6;29119:1;29116:13;29097:284;;;29198:6;29192:13;29225:63;29284:3;29269:13;29225:63;:::i;:::-;29218:70;;29311:60;29364:6;29311:60;:::i;:::-;29301:70;;29157:224;29144:1;29141;29137:9;29132:14;;29097:284;;;29101:14;29397:3;29390:10;;28798:608;;;28674:732;;;;:::o;29412:831::-;29675:4;29713:3;29702:9;29698:19;29690:27;;29727:71;29795:1;29784:9;29780:17;29771:6;29727:71;:::i;:::-;29808:80;29884:2;29873:9;29869:18;29860:6;29808:80;:::i;:::-;29935:9;29929:4;29925:20;29920:2;29909:9;29905:18;29898:48;29963:108;30066:4;30057:6;29963:108;:::i;:::-;29955:116;;30081:72;30149:2;30138:9;30134:18;30125:6;30081:72;:::i;:::-;30163:73;30231:3;30220:9;30216:19;30207:6;30163:73;:::i;:::-;29412:831;;;;;;;;:::o

Swarm Source

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