ETH Price: $3,155.24 (-8.19%)
Gas: 9 Gwei

Token

Chusky Inu (CHUSKY)
 

Overview

Max Total Supply

100,000 CHUSKY

Holders

109

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.027708202312676085 CHUSKY

Value
$0.00
0x10485927ff4b9d5d4e99225118e72dc2a8155657
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:
ChuskyInu

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.9.0;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface Initializer {
    function setLaunch(address _initialLpPair, uint32 _liqAddBlock, uint64 _liqAddStamp, uint8 dec) external;
    function getConfig() external returns (address, address);
    function getInits(uint256 amount) external returns (uint256, uint256);
    function setLpPair(address pair, bool enabled) external;
}

contract ChuskyInu is IERC20 {
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) lpPairs;
    uint256 private timeSinceLastPair = 0;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _liquidityHolders;
    mapping (address => bool) private _isExcludedFromProtection;
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) private _isExcludedFromLimits;
    mapping (address => bool) private presaleAddresses;
    bool private allowedPresaleExclusion = true;
   
    uint256 constant private startingSupply = 100_000;
    string constant private _name = "Chusky Inu";
    string constant private _symbol = "CHUSKY";
    uint8 constant private _decimals = 18;
    uint256 constant private _tTotal = startingSupply * 10**_decimals;

    struct Fees {
        uint16 buyFee;
        uint16 sellFee;
        uint16 transferFee;
    }

    Fees public _taxRates = Fees({
        buyFee: 100,
        sellFee: 100,
        transferFee: 0
    });

    uint256 constant public maxBuyTaxes = 100;
    uint256 constant public maxSellTaxes = 100;
    uint256 constant public maxTransferTaxes = 100;
    uint256 constant masterTaxDivisor = 10000;

    bool public taxesAreLocked;
    IRouter02 public dexRouter;
    address public lpPair;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address payable public marketingWallet = payable(0x5F44c15541cd25bBe1DF3521992D23A69e030E79);
    
    bool inSwap;
    bool public contractSwapEnabled = false;
    uint256 public swapThreshold;
    uint256 public swapAmount;
    bool public piContractSwapsEnabled;
    uint256 public piSwapPercent = 10;
    uint256 private _maxWalletSize = (_tTotal * 25) / 1000;
    bool public tradingEnabled = false;
    bool public _hasLiqBeenAdded = false;
    Initializer initializer;
    uint256 public launchStamp;

    event ContractSwapEnabledUpdated(bool enabled);
    event AutoLiquify(uint256 amountCurrency, uint256 amountTokens);

    modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        // Set the owner.
        _owner = msg.sender;
        _tOwned[_owner] = _tTotal;
        emit Transfer(address(0), _owner, _tTotal);

        _isExcludedFromFees[_owner] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[DEAD] = true;
        _liquidityHolders[_owner] = true;
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================
    // Ownable removed as a lib and added here to allow for custom transfers and renouncements.
    // This allows for removal of ownership privileges from the owner once renounced or transferred.

    address private _owner;

    modifier onlyOwner() { require(_owner == msg.sender, "Caller =/= owner."); _; }
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    function transferOwner(address newOwner) external onlyOwner {
        require(newOwner != address(0), "Call renounceOwnership to transfer owner to the zero address.");
        require(newOwner != DEAD, "Call renounceOwnership to transfer owner to the zero address.");
        setExcludedFromFees(_owner, false);
        setExcludedFromFees(newOwner, true);
        
        if (balanceOf(_owner) > 0) {
            finalizeTransfer(_owner, newOwner, balanceOf(_owner), false, false, true);
        }
        
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
        
    }

    function renounceOwnership() external onlyOwner {
        require(tradingEnabled, "Cannot renounce until trading has been enabled.");
        setExcludedFromFees(_owner, false);
        address oldOwner = _owner;
        _owner = address(0);
        emit OwnershipTransferred(oldOwner, address(0));
    }

//===============================================================================================================
//===============================================================================================================
//===============================================================================================================

    
    receive() external payable {}
    function totalSupply() external pure override returns (uint256) { return _tTotal; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return _owner; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

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

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

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

    function approveContractContingency() external onlyOwner returns (bool) {
        _approve(address(this), address(dexRouter), type(uint256).max);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function setNewRouter(address newRouter) external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot change after liquidity.");
        IRouter02 _newRouter = IRouter02(newRouter);
        address get_pair = IFactoryV2(_newRouter.factory()).getPair(address(this), _newRouter.WETH());
        lpPairs[lpPair] = false;
        if (get_pair == address(0)) {
            lpPair = IFactoryV2(_newRouter.factory()).createPair(address(this), _newRouter.WETH());
        }
        else {
            lpPair = get_pair;
        }
        dexRouter = _newRouter;
        lpPairs[lpPair] = true;
        _approve(address(this), address(dexRouter), type(uint256).max);
    }

    function setLpPair(address pair, bool enabled) external onlyOwner {
        if (!enabled) {
            lpPairs[pair] = false;
            initializer.setLpPair(pair, false);
        } else {
            if (timeSinceLastPair != 0) {
                require(block.timestamp - timeSinceLastPair > 3 days, "3 Day cooldown.");
            }
            require(!lpPairs[pair], "Pair already added to list.");
            lpPairs[pair] = true;
            timeSinceLastPair = block.timestamp;
            initializer.setLpPair(pair, true);
        }
    }

    function setInitializer(address init) public onlyOwner {
        require(!tradingEnabled);
        require(init != address(this), "Can't be self.");
        initializer = Initializer(init);
        try initializer.getConfig() returns (address router, address constructorLP) {
            dexRouter = IRouter02(router); lpPair = constructorLP; lpPairs[lpPair] = true; 
            _approve(_owner, address(dexRouter), type(uint256).max);
            _approve(address(this), address(dexRouter), type(uint256).max);
        } catch { revert(); }
    }

    function isExcludedFromLimits(address account) external view returns (bool) {
        return _isExcludedFromLimits[account];
    }

    function setExcludedFromLimits(address account, bool enabled) external onlyOwner {
        _isExcludedFromLimits[account] = enabled;
    }

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

    function setExcludedFromFees(address account, bool enabled) public onlyOwner {
        _isExcludedFromFees[account] = enabled;
    }

    function isExcludedFromProtection(address account) external view returns (bool) {
        return _isExcludedFromProtection[account];
    }

    function setExcludedFromProtection(address account, bool enabled) external onlyOwner {
        _isExcludedFromProtection[account] = enabled;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (_tTotal - (balanceOf(DEAD) + balanceOf(address(0))));
    }

    function lockTaxes() external onlyOwner {
        // This will lock taxes at their current value forever, do not call this unless you're sure.
        taxesAreLocked = true;
    }

    function setTaxes(uint16 buyFee, uint16 sellFee, uint16 transferFee) external onlyOwner {
        require(!taxesAreLocked, "Taxes are locked.");
        require(buyFee <= maxBuyTaxes
                && sellFee <= maxSellTaxes
                && transferFee <= maxTransferTaxes,
                "Cannot exceed maximums.");
        _taxRates.buyFee = buyFee;
        _taxRates.sellFee = sellFee;
        _taxRates.transferFee = transferFee;
    }

    function setWallets(address payable marketing) external onlyOwner {
        require(marketing != address(0), "Cannot be zero address.");
        marketingWallet = payable(marketing);
    }

    function setMaxWalletSize(uint256 percent, uint256 divisor) external onlyOwner {
        require((_tTotal * percent) / divisor >= (_tTotal / 100), "Max Wallet amt must be above 1% of total supply.");
        _maxWalletSize = (_tTotal * percent) / divisor;
    }

    function getMaxWallet() external view returns (uint256) {
        return _maxWalletSize / (10**_decimals);
    }

    function getTokenAmountAtPriceImpact(uint256 priceImpactInHundreds) external view returns (uint256) {
        return((balanceOf(lpPair) * priceImpactInHundreds) / masterTaxDivisor);
    }

    function setSwapSettings(uint256 thresholdPercent, uint256 thresholdDivisor, uint256 amountPercent, uint256 amountDivisor) external onlyOwner {
        swapThreshold = (_tTotal * thresholdPercent) / thresholdDivisor;
        swapAmount = (_tTotal * amountPercent) / amountDivisor;
        require(swapThreshold <= swapAmount, "Threshold cannot be above amount.");
        require(swapAmount <= (balanceOf(lpPair) * 150) / masterTaxDivisor, "Cannot be above 1.5% of current PI.");
        require(swapAmount >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
        require(swapThreshold >= _tTotal / 1_000_000, "Cannot be lower than 0.00001% of total supply.");
    }

    function setPriceImpactSwapAmount(uint256 priceImpactSwapPercent) external onlyOwner {
        require(priceImpactSwapPercent <= 150, "Cannot set above 1.5%.");
        piSwapPercent = priceImpactSwapPercent;
    }

    function setContractSwapEnabled(bool swapEnabled, bool priceImpactSwapEnabled) external onlyOwner {
        contractSwapEnabled = swapEnabled;
        piContractSwapsEnabled = priceImpactSwapEnabled;
        emit ContractSwapEnabledUpdated(swapEnabled);
    }

    function _hasLimits(address from, address to) internal view returns (bool) {
        return from != _owner
            && to != _owner
            && tx.origin != _owner
            && !_liquidityHolders[to]
            && !_liquidityHolders[from]
            && to != DEAD
            && to != address(0)
            && from != address(this)
            && from != address(initializer)
            && to != address(initializer);
    }

    function _transfer(address from, address to, uint256 amount) internal returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool buy = false;
        bool sell = false;
        bool other = false;
        if (lpPairs[from]) {
            buy = true;
        } else if (lpPairs[to]) {
            sell = true;
        } else {
            other = true;
        }
        if (_hasLimits(from, to)) {
            if(!tradingEnabled) {
                if (!other) {
                    revert("Trading not yet enabled!");
                } else if (!_isExcludedFromProtection[from] && !_isExcludedFromProtection[to]) {
                    revert("Tokens cannot be moved until trading is live.");
                }
            }
            if (to != address(dexRouter) && !sell) {
                if (!_isExcludedFromLimits[to]) {
                    require(balanceOf(to) + amount <= _maxWalletSize, "Transfer amount exceeds the maxWalletSize.");
                }
            }
        }

        if (sell) {
            if (!inSwap) {
                if (contractSwapEnabled) {
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance >= swapThreshold) {
                        uint256 swapAmt = swapAmount;
                        if (piContractSwapsEnabled) { swapAmt = (balanceOf(lpPair) * piSwapPercent) / masterTaxDivisor; }
                        if (contractTokenBalance >= swapAmt) { contractTokenBalance = swapAmt; }
                        contractSwap(contractTokenBalance);
                    }
                }
            }
        }
        return finalizeTransfer(from, to, amount, buy, sell, other);
    }

    function contractSwap(uint256 contractTokenBalance) internal inSwapFlag {
        if (_allowances[address(this)][address(dexRouter)] != type(uint256).max) {
            _allowances[address(this)][address(dexRouter)] = type(uint256).max;
        }
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        try dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        bool success;
        (success,) = marketingWallet.call{value: address(this).balance, gas: 55000}("");
    }

    function _checkLiquidityAdd(address from, address to) internal {
        require(!_hasLiqBeenAdded, "Liquidity already added and marked.");
        if (!_hasLimits(from, to) && to == lpPair) {
            _liquidityHolders[from] = true;
            _isExcludedFromFees[from] = true;
            _hasLiqBeenAdded = true;
            if (address(initializer) == address(0)){
                initializer = Initializer(address(this));
            }
            contractSwapEnabled = true;
            emit ContractSwapEnabledUpdated(true);
        }
    }

    function enableTrading() public onlyOwner {
        require(!tradingEnabled, "Trading already enabled!");
        require(_hasLiqBeenAdded, "Liquidity must be added.");
        if (address(initializer) == address(0)){
            initializer = Initializer(address(this));
        }
        try initializer.setLaunch(lpPair, uint32(block.number), uint64(block.timestamp), _decimals) {} catch {}
        try initializer.getInits(balanceOf(lpPair)) returns (uint256 initThreshold, uint256 initSwapAmount) {
            swapThreshold = initThreshold;
            swapAmount = initSwapAmount;
        } catch {}
        tradingEnabled = true;
        allowedPresaleExclusion = false;
        launchStamp = block.timestamp;
    }

    function sweepContingency() external onlyOwner {
        require(!_hasLiqBeenAdded, "Cannot call after liquidity.");
        payable(_owner).transfer(address(this).balance);
    }

    function sweepExternalTokens(address token) external onlyOwner {
        if (_hasLiqBeenAdded) {
            require(token != address(this), "Cannot sweep native tokens.");
        }
        IERC20 TOKEN = IERC20(token);
        TOKEN.transfer(_owner, TOKEN.balanceOf(address(this)));
    }

    function multiSendTokens(address[] memory accounts, uint256[] memory amounts) external onlyOwner {
        require(accounts.length == amounts.length, "Lengths do not match.");
        for (uint16 i = 0; i < accounts.length; i++) {
            require(balanceOf(msg.sender) >= amounts[i]*10**_decimals, "Not enough tokens.");
            finalizeTransfer(msg.sender, accounts[i], amounts[i]*10**_decimals, false, false, true);
        }
    }

    function finalizeTransfer(address from, address to, uint256 amount, bool buy, bool sell, bool other) internal returns (bool) {
        bool takeFee = true;
        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]){
            takeFee = false;
        }
        _tOwned[from] -= amount;
        uint256 amountReceived = (takeFee) ? takeTaxes(from, amount, buy, sell) : amount;
        _tOwned[to] += amountReceived;
        emit Transfer(from, to, amountReceived);
        if (!_hasLiqBeenAdded) {
            _checkLiquidityAdd(from, to);
            if (!_hasLiqBeenAdded && _hasLimits(from, to) && !_isExcludedFromProtection[from] && !_isExcludedFromProtection[to] && !other) {
                revert("Pre-liquidity transfer protection.");
            }
        }
        return true;
    }

    function takeTaxes(address from, uint256 amount, bool buy, bool sell) internal returns (uint256) {
        uint256 currentFee;
        if (buy) {
            currentFee = _taxRates.buyFee;
        } else if (sell) {
            currentFee = _taxRates.sellFee;
        } else {
            currentFee = _taxRates.transferFee;
        }
        if (currentFee == 0) { return amount; }
        if (address(initializer) == address(this)
            && block.chainid != 97) { currentFee = 4500; }
        uint256 feeAmount = amount * currentFee / masterTaxDivisor;
        if (feeAmount > 0) {
            _tOwned[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }

        return amount - feeAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ContractSwapEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_hasLiqBeenAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxRates","outputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":[],"name":"approveContractContingency","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":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactInHundreds","type":"uint256"}],"name":"getTokenAmountAtPriceImpact","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromProtection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchStamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransferTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"multiSendTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"piContractSwapsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"piSwapPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapEnabled","type":"bool"},{"internalType":"bool","name":"priceImpactSwapEnabled","type":"bool"}],"name":"setContractSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setExcludedFromProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"init","type":"address"}],"name":"setInitializer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"setNewRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceImpactSwapPercent","type":"uint256"}],"name":"setPriceImpactSwapAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thresholdPercent","type":"uint256"},{"internalType":"uint256","name":"thresholdDivisor","type":"uint256"},{"internalType":"uint256","name":"amountPercent","type":"uint256"},{"internalType":"uint256","name":"amountDivisor","type":"uint256"}],"name":"setSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"buyFee","type":"uint16"},{"internalType":"uint16","name":"sellFee","type":"uint16"},{"internalType":"uint16","name":"transferFee","type":"uint16"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sweepContingency","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"sweepExternalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxesAreLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

600060028190556009805460ff1916600117905560e06040526064608081905260a05260c052600a805465ffffffffffff191662640064178155600d8054600161ff0160a01b031916735f44c15541cd25bbe1df3521992d23a69e030e7917905560118190556103e8906200007790601290620002e8565b6200008690620186a062000300565b6200009390601962000300565b6200009f91906200031a565b60129081556013805461ffff19169055601580546001600160a01b03191633179055620000ce90600a620002e8565b620000dd90620186a062000300565b601580546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001316012600a620002e8565b6200014090620186a062000300565b60405190815260200160405180910390a3601580546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e228054821683179055955490941683526004909152902080549092161790556200033d565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200022a5781600019048211156200020e576200020e620001d3565b808516156200021c57918102915b93841c9390800290620001ee565b509250929050565b6000826200024357506001620002e2565b816200025257506000620002e2565b81600181146200026b5760028114620002765762000296565b6001915050620002e2565b60ff8411156200028a576200028a620001d3565b50506001821b620002e2565b5060208310610133831016604e8410600b8410161715620002bb575081810a620002e2565b620002c78383620001e9565b8060001904821115620002de57620002de620001d3565b0290505b92915050565b6000620002f960ff84168362000232565b9392505050565b8082028115828204841417620002e257620002e2620001d3565b6000826200033857634e487b7160e01b600052601260045260246000fd5b500490565b613a95806200034d6000396000f3fe60806040526004361061034e5760003560e01c806350a8e016116101bb57806395d89b41116100f7578063dd62ed3e11610095578063ee5d9c2d1161006f578063ee5d9c2d146109c1578063fb78680d146109d6578063fdb78c0e146109f6578063feadde9c14610a1757600080fd5b8063dd62ed3e1461093b578063eafb5a3c14610981578063eb50e70e146109a157600080fd5b8063b1b08f71116100d1578063b1b08f71146105a2578063b3d514fb146105a2578063b7df8b3614610901578063bfc2fc351461091b57600080fd5b806395d89b4114610892578063a9059cbb146108c1578063ab558e4d146108e157600080fd5b8063715018a61161016457806380c581d11161013e57806380c581d11461082a578063893d20e81461084a5780638a63bd9b146108685780638a8c523c1461087d57600080fd5b8063715018a6146107e057806375f0a874146107f557806378648edf1461081557600080fd5b80635c24b074116101955780635c24b074146107515780635cce86cd1461077157806370a08231146107aa57600080fd5b806350a8e016146106fc578063590ffdce1461071b5780635a6f09181461073b57600080fd5b8063285777511161028a57806336fddb04116102335780634bbb93eb1161020d5780634bbb93eb146106635780634e718e48146106835780634fb2e45d146106a35780634fbee193146106c357600080fd5b806336fddb0414610609578063452ed4f1146106295780634ada218b1461064957600080fd5b80632e8fa821116102645780632e8fa821146105b7578063313ce567146105cd57806332cde664146105e957600080fd5b806328577751146105775780632b112e491461058d5780632b28fc7a146105a257600080fd5b8063095ea7b3116102f757806318160ddd116102d157806318160ddd1461050057806323b872dd1461051557806326003957146105355780632610eaca1461055757600080fd5b8063095ea7b3146104925780630dcbcf1c146104b25780630fa604e4146104eb57600080fd5b806306fdde031161032857806306fdde03146104075780630758d9241461044357806307dd79e01461046857600080fd5b806303fd2a451461035a5780630445b6671461038d578063069d955f146103b157600080fd5b3661035557005b600080fd5b34801561036657600080fd5b5061037061dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561039957600080fd5b506103a3600e5481565b604051908152602001610384565b3480156103bd57600080fd5b50600a546103e29061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610384565b34801561041357600080fd5b5060408051808201909152600a815269436875736b7920496e7560b01b60208201525b60405161038491906133aa565b34801561044f57600080fd5b50600b546103709061010090046001600160a01b031681565b34801561047457600080fd5b50600b546104829060ff1681565b6040519015158152602001610384565b34801561049e57600080fd5b506104826104ad36600461340d565b610a37565b3480156104be57600080fd5b506104826104cd366004613439565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104f757600080fd5b506103a3610a4e565b34801561050c57600080fd5b506103a3610a6e565b34801561052157600080fd5b50610482610530366004613456565b610a89565b34801561054157600080fd5b50610555610550366004613497565b610b01565b005b34801561056357600080fd5b5061055561057236600461358f565b610c4c565b34801561058357600080fd5b506103a360115481565b34801561059957600080fd5b506103a3610e01565b3480156105ae57600080fd5b506103a3606481565b3480156105c357600080fd5b506103a3600f5481565b3480156105d957600080fd5b5060405160128152602001610384565b3480156105f557600080fd5b50610555610604366004613668565b610e7e565b34801561061557600080fd5b506105556106243660046136b9565b610fcf565b34801561063557600080fd5b50600c54610370906001600160a01b031681565b34801561065557600080fd5b506013546104829060ff1681565b34801561066f57600080fd5b506103a361067e3660046136f2565b611042565b34801561068f57600080fd5b5061055561069e3660046136f2565b611076565b3480156106af57600080fd5b506105556106be366004613439565b611114565b3480156106cf57600080fd5b506104826106de366004613439565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561070857600080fd5b5060135461048290610100900460ff1681565b34801561072757600080fd5b506105556107363660046136b9565b611316565b34801561074757600080fd5b506103a360145481565b34801561075d57600080fd5b5061055561076c366004613439565b611389565b34801561077d57600080fd5b5061048261078c366004613439565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156107b657600080fd5b506103a36107c5366004613439565b6001600160a01b031660009081526020819052604090205490565b3480156107ec57600080fd5b50610555611567565b34801561080157600080fd5b50600d54610370906001600160a01b031681565b34801561082157600080fd5b5061055561168c565b34801561083657600080fd5b506105556108453660046136b9565b6116e3565b34801561085657600080fd5b506015546001600160a01b0316610370565b34801561087457600080fd5b506104826118ee565b34801561088957600080fd5b5061055561195e565b34801561089e57600080fd5b50604080518082019091526006815265434855534b5960d01b6020820152610436565b3480156108cd57600080fd5b506104826108dc36600461340d565b611bb4565b3480156108ed57600080fd5b506105556108fc366004613439565b611bcb565b34801561090d57600080fd5b506010546104829060ff1681565b34801561092757600080fd5b5061055561093636600461370b565b611d65565b34801561094757600080fd5b506103a3610956366004613729565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561098d57600080fd5b5061055561099c366004613439565b611e10565b3480156109ad57600080fd5b506105556109bc366004613439565b612211565b3480156109cd57600080fd5b506105556122d1565b3480156109e257600080fd5b506105556109f1366004613757565b6123aa565b348015610a0257600080fd5b50600d5461048290600160a81b900460ff1681565b348015610a2357600080fd5b50610555610a323660046136b9565b612668565b6000610a443384846126db565b5060015b92915050565b6000610a5c6012600a613883565b601254610a699190613892565b905090565b6000610a7c6012600a613883565b610a6990620186a06138b4565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610aee576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610ae89084906138cb565b90915550505b610af98484846127d4565b949350505050565b6015546001600160a01b03163314610b4e5760405162461bcd60e51b81526020600482015260116024820152600080516020613a4083398151915260448201526064015b60405180910390fd5b6064610b5c6012600a613883565b610b6990620186a06138b4565b610b739190613892565b8183610b816012600a613883565b610b8e90620186a06138b4565b610b9891906138b4565b610ba29190613892565b1015610c165760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610b45565b8082610c246012600a613883565b610c3190620186a06138b4565b610c3b91906138b4565b610c459190613892565b6012555050565b6015546001600160a01b03163314610c945760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b8051825114610ce55760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b45565b60005b82518161ffff161015610dfc57610d016012600a613883565b828261ffff1681518110610d1757610d176138de565b6020026020010151610d2991906138b4565b336000908152602081905260409020541015610d875760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610b45565b610de933848361ffff1681518110610da157610da16138de565b60200260200101516012600a610db79190613883565b858561ffff1681518110610dcd57610dcd6138de565b6020026020010151610ddf91906138b4565b6000806001612bf2565b5080610df4816138f4565b915050610ce8565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610e5b9190613915565b610e676012600a613883565b610e7490620186a06138b4565b610a6991906138cb565b6015546001600160a01b03163314610ec65760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b600b5460ff1615610f195760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610b45565b60648361ffff1611158015610f33575060648261ffff1611155b8015610f44575060648161ffff1611155b610f905760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610b45565b600a805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6015546001600160a01b031633146110175760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b600c546001600160a01b03166000908152602081905260408120546127109061106c9084906138b4565b610a489190613892565b6015546001600160a01b031633146110be5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b609681111561110f5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610b45565b601155565b6015546001600160a01b0316331461115c5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b6001600160a01b0381166111d85760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b45565b61deac196001600160a01b038216016112595760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b45565b601554611270906001600160a01b03166000611316565b61127b816001611316565b6015546001600160a01b0316600090815260208190526040902054156112c4576015546001600160a01b03166000818152602081905260409020546112c291908390610ddf565b505b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6015546001600160a01b0316331461135e5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6015546001600160a01b031633146113d15760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b60135460ff16156113e157600080fd5b306001600160a01b038216036114395760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b45565b6013805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af19250505080156114bf575060408051601f3d908101601f191682019092526114bc91810190613928565b60015b6114c857600080fd5b600b805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600c80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff19169091179055601554925461154593831692919004166000196126db565b600b54610dfc90309061010090046001600160a01b03166000196126db565b50565b6015546001600160a01b031633146115af5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b60135460ff166116275760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610b45565b60155461163e906001600160a01b03166000611316565b601580546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546001600160a01b031633146116d45760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b600b805460ff19166001179055565b6015546001600160a01b0316331461172b5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b806117bb576001600160a01b03828116600081815260016020526040808220805460ff1916905560135490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d1906044015b600060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050505050565b60025415611822576203f480600254426117d591906138cb565b116118225760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610b45565b6001600160a01b03821660009081526001602052604090205460ff161561188b5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610b45565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560135491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401611785565b5050565b6015546000906001600160a01b031633146119395760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b600b5461195890309061010090046001600160a01b03166000196126db565b50600190565b6015546001600160a01b031633146119a65760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b60135460ff16156119f95760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b45565b601354610100900460ff16611a505760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b45565b6013546201000090046001600160a01b0316611a80576013805462010000600160b01b0319163062010000021790555b601354600c54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611af257600080fd5b505af1925050508015611b03575060015b50601354600c546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611b86575060408051601f3d908101601f19168201909252611b8391810190613957565b60015b15611b9557600e91909155600f555b6013805460ff1990811660011790915560098054909116905542601455565b6000611bc13384846127d4565b5060019392505050565b6015546001600160a01b03163314611c135760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b601354610100900460ff1615611c7b57306001600160a01b03821603611c7b5760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610b45565b6015546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf6919061397b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc9190613994565b6015546001600160a01b03163314611dad5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b600d805460ff60a81b1916600160a81b841515908102919091179091556010805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6015546001600160a01b03163314611e585760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b601354610100900460ff1615611eb05760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610b45565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1991906139b1565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8a91906139b1565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff991906139b1565b600c546001600160a01b039081166000908152600160205260409020805460ff19169055909150811661218f57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612064573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208891906139b1565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f991906139b1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216a91906139b1565b600c80546001600160a01b0319166001600160a01b03929092169190911790556121ab565b600c80546001600160a01b0319166001600160a01b0383161790555b600b805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600c5482166000908152600160208190526040909120805460ff191690911790559154610dfc9230929104166000196126db565b6015546001600160a01b031633146122595760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b6001600160a01b0381166122af5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610b45565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6015546001600160a01b031633146123195760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b601354610100900460ff16156123715760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b45565b6015546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611564573d6000803e3d6000fd5b6015546001600160a01b031633146123f25760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b82846124006012600a613883565b61240d90620186a06138b4565b61241791906138b4565b6124219190613892565b600e5580826124326012600a613883565b61243f90620186a06138b4565b61244991906138b4565b6124539190613892565b600f819055600e5411156124b35760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610b45565b600c546001600160a01b0316600090815260208190526040902054612710906124dd9060966138b4565b6124e79190613892565b600f5411156125445760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610b45565b620f42406125546012600a613883565b61256190620186a06138b4565b61256b9190613892565b600f5410156125d35760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b45565b620f42406125e36012600a613883565b6125f090620186a06138b4565b6125fa9190613892565b600e5410156126625760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b45565b50505050565b6015546001600160a01b031633146126b05760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166127275760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b45565b6001600160a01b0382166127735760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b45565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661283a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b45565b6001600160a01b03831661289c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b45565b600082116128fe5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b45565b6001600160a01b0384166000908152600160205260408120548190819060ff161561292c576001925061295a565b6001600160a01b03861660009081526001602052604090205460ff1615612956576001915061295a565b5060015b6129648787612dff565b15612b395760135460ff16612a6557806129c05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b45565b6001600160a01b03871660009081526005602052604090205460ff16158015612a0257506001600160a01b03861660009081526005602052604090205460ff16155b15612a655760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610b45565b600b546001600160a01b038781166101009092041614801590612a86575081155b15612b39576001600160a01b03861660009081526007602052604090205460ff16612b395760125485612ace886001600160a01b031660009081526020819052604090205490565b612ad89190613915565b1115612b395760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610b45565b8115612bd957600d54600160a01b900460ff16612bd957600d54600160a81b900460ff1615612bd95730600090815260208190526040902054600e548110612bd757600f5460105460ff1615612bc157601154600c546001600160a01b031660009081526020819052604090205461271091612bb4916138b4565b612bbe9190613892565b90505b808210612bcc578091505b612bd582612f16565b505b505b612be7878787868686612bf2565b979650505050505050565b6001600160a01b03861660009081526006602052604081205460019060ff1680612c3457506001600160a01b03871660009081526006602052604090205460ff165b15612c3d575060005b6001600160a01b03881660009081526020819052604081208054889290612c659084906138cb565b909155506000905081612c785786612c84565b612c848988888861315a565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612cba9190613915565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d0691815260200190565b60405180910390a3601354610100900460ff16612df057612d278989613266565b601354610100900460ff16158015612d445750612d448989612dff565b8015612d6957506001600160a01b03891660009081526005602052604090205460ff16155b8015612d8e57506001600160a01b03881660009081526005602052604090205460ff16155b8015612d98575083155b15612df05760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610b45565b50600198975050505050505050565b6015546000906001600160a01b03848116911614801590612e2e57506015546001600160a01b03838116911614155b8015612e4557506015546001600160a01b03163214155b8015612e6a57506001600160a01b03821660009081526004602052604090205460ff16155b8015612e8f57506001600160a01b03831660009081526004602052604090205460ff16155b8015612ea657506001600160a01b03821661dead14155b8015612eba57506001600160a01b03821615155b8015612ecf57506001600160a01b0383163014155b8015612eef57506013546001600160a01b03848116620100009092041614155b8015612f0f57506013546001600160a01b03838116620100009092041614155b9392505050565b600d805460ff60a01b1916600160a01b179055306000908152600360209081526040808320600b5461010090046001600160a01b0316845290915290205460001914612f8c57306000908152600360209081526040808320600b5461010090046001600160a01b03168452909152902060001990555b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612fc157612fc16138de565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613034573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305891906139b1565b8160018151811061306b5761306b6138de565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b81526101009091049091169063791ac947906130b89085906000908690309042906004016139ce565b600060405180830381600087803b1580156130d257600080fd5b505af19250505080156130e3575060015b6130ed575061314a565b600d546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d806000811461313f576040519150601f19603f3d011682016040523d82523d6000602084013e613144565b606091505b50505050505b50600d805460ff60a01b19169055565b60008083156131705750600a5461ffff1661319a565b82156131895750600a5462010000900461ffff1661319a565b50600a54640100000000900461ffff165b806000036131ab5784915050610af9565b6013546201000090046001600160a01b0316301480156131cc575046606114155b156131d657506111945b60006127106131e583886138b4565b6131ef9190613892565b9050801561325c573060009081526020819052604081208054839290613216908490613915565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612be781876138cb565b601354610100900460ff16156132ca5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610b45565b6132d48282612dff565b1580156132ee5750600c546001600160a01b038281169116145b156118ea576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556013805461ff001916610100179081905562010000900416613366576013805462010000600160b01b0319163062010000021790555b600d805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611e04565b600060208083528351808285015260005b818110156133d7578581018301518582016040015282016133bb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461156457600080fd5b6000806040838503121561342057600080fd5b823561342b816133f8565b946020939093013593505050565b60006020828403121561344b57600080fd5b8135612f0f816133f8565b60008060006060848603121561346b57600080fd5b8335613476816133f8565b92506020840135613486816133f8565b929592945050506040919091013590565b600080604083850312156134aa57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156134f8576134f86134b9565b604052919050565b600067ffffffffffffffff82111561351a5761351a6134b9565b5060051b60200190565b600082601f83011261353557600080fd5b8135602061354a61354583613500565b6134cf565b82815260059290921b8401810191818101908684111561356957600080fd5b8286015b84811015613584578035835291830191830161356d565b509695505050505050565b600080604083850312156135a257600080fd5b823567ffffffffffffffff808211156135ba57600080fd5b818501915085601f8301126135ce57600080fd5b813560206135de61354583613500565b82815260059290921b840181019181810190898411156135fd57600080fd5b948201945b83861015613624578535613615816133f8565b82529482019490820190613602565b9650508601359250508082111561363a57600080fd5b5061364785828601613524565b9150509250929050565b803561ffff8116811461366357600080fd5b919050565b60008060006060848603121561367d57600080fd5b61368684613651565b925061369460208501613651565b91506136a260408501613651565b90509250925092565b801515811461156457600080fd5b600080604083850312156136cc57600080fd5b82356136d7816133f8565b915060208301356136e7816136ab565b809150509250929050565b60006020828403121561370457600080fd5b5035919050565b6000806040838503121561371e57600080fd5b82356136d7816136ab565b6000806040838503121561373c57600080fd5b8235613747816133f8565b915060208301356136e7816133f8565b6000806000806080858703121561376d57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156137da5781600019048211156137c0576137c0613789565b808516156137cd57918102915b93841c93908002906137a4565b509250929050565b6000826137f157506001610a48565b816137fe57506000610a48565b8160018114613814576002811461381e5761383a565b6001915050610a48565b60ff84111561382f5761382f613789565b50506001821b610a48565b5060208310610133831016604e8410600b841016171561385d575081810a610a48565b613867838361379f565b806000190482111561387b5761387b613789565b029392505050565b6000612f0f60ff8416836137e2565b6000826138af57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610a4857610a48613789565b81810381811115610a4857610a48613789565b634e487b7160e01b600052603260045260246000fd5b600061ffff80831681810361390b5761390b613789565b6001019392505050565b80820180821115610a4857610a48613789565b6000806040838503121561393b57600080fd5b8251613946816133f8565b60208401519092506136e7816133f8565b6000806040838503121561396a57600080fd5b505080516020909101519092909150565b60006020828403121561398d57600080fd5b5051919050565b6000602082840312156139a657600080fd5b8151612f0f816136ab565b6000602082840312156139c357600080fd5b8151612f0f816133f8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613a1e5784516001600160a01b0316835293830193918301916001016139f9565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a2646970667358221220712b9fee1389973597ed971ff58d2a3d572e00aa72571c87c6ec422484668f8664736f6c63430008130033

Deployed Bytecode

0x60806040526004361061034e5760003560e01c806350a8e016116101bb57806395d89b41116100f7578063dd62ed3e11610095578063ee5d9c2d1161006f578063ee5d9c2d146109c1578063fb78680d146109d6578063fdb78c0e146109f6578063feadde9c14610a1757600080fd5b8063dd62ed3e1461093b578063eafb5a3c14610981578063eb50e70e146109a157600080fd5b8063b1b08f71116100d1578063b1b08f71146105a2578063b3d514fb146105a2578063b7df8b3614610901578063bfc2fc351461091b57600080fd5b806395d89b4114610892578063a9059cbb146108c1578063ab558e4d146108e157600080fd5b8063715018a61161016457806380c581d11161013e57806380c581d11461082a578063893d20e81461084a5780638a63bd9b146108685780638a8c523c1461087d57600080fd5b8063715018a6146107e057806375f0a874146107f557806378648edf1461081557600080fd5b80635c24b074116101955780635c24b074146107515780635cce86cd1461077157806370a08231146107aa57600080fd5b806350a8e016146106fc578063590ffdce1461071b5780635a6f09181461073b57600080fd5b8063285777511161028a57806336fddb04116102335780634bbb93eb1161020d5780634bbb93eb146106635780634e718e48146106835780634fb2e45d146106a35780634fbee193146106c357600080fd5b806336fddb0414610609578063452ed4f1146106295780634ada218b1461064957600080fd5b80632e8fa821116102645780632e8fa821146105b7578063313ce567146105cd57806332cde664146105e957600080fd5b806328577751146105775780632b112e491461058d5780632b28fc7a146105a257600080fd5b8063095ea7b3116102f757806318160ddd116102d157806318160ddd1461050057806323b872dd1461051557806326003957146105355780632610eaca1461055757600080fd5b8063095ea7b3146104925780630dcbcf1c146104b25780630fa604e4146104eb57600080fd5b806306fdde031161032857806306fdde03146104075780630758d9241461044357806307dd79e01461046857600080fd5b806303fd2a451461035a5780630445b6671461038d578063069d955f146103b157600080fd5b3661035557005b600080fd5b34801561036657600080fd5b5061037061dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561039957600080fd5b506103a3600e5481565b604051908152602001610384565b3480156103bd57600080fd5b50600a546103e29061ffff808216916201000081048216916401000000009091041683565b6040805161ffff94851681529284166020840152921691810191909152606001610384565b34801561041357600080fd5b5060408051808201909152600a815269436875736b7920496e7560b01b60208201525b60405161038491906133aa565b34801561044f57600080fd5b50600b546103709061010090046001600160a01b031681565b34801561047457600080fd5b50600b546104829060ff1681565b6040519015158152602001610384565b34801561049e57600080fd5b506104826104ad36600461340d565b610a37565b3480156104be57600080fd5b506104826104cd366004613439565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104f757600080fd5b506103a3610a4e565b34801561050c57600080fd5b506103a3610a6e565b34801561052157600080fd5b50610482610530366004613456565b610a89565b34801561054157600080fd5b50610555610550366004613497565b610b01565b005b34801561056357600080fd5b5061055561057236600461358f565b610c4c565b34801561058357600080fd5b506103a360115481565b34801561059957600080fd5b506103a3610e01565b3480156105ae57600080fd5b506103a3606481565b3480156105c357600080fd5b506103a3600f5481565b3480156105d957600080fd5b5060405160128152602001610384565b3480156105f557600080fd5b50610555610604366004613668565b610e7e565b34801561061557600080fd5b506105556106243660046136b9565b610fcf565b34801561063557600080fd5b50600c54610370906001600160a01b031681565b34801561065557600080fd5b506013546104829060ff1681565b34801561066f57600080fd5b506103a361067e3660046136f2565b611042565b34801561068f57600080fd5b5061055561069e3660046136f2565b611076565b3480156106af57600080fd5b506105556106be366004613439565b611114565b3480156106cf57600080fd5b506104826106de366004613439565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561070857600080fd5b5060135461048290610100900460ff1681565b34801561072757600080fd5b506105556107363660046136b9565b611316565b34801561074757600080fd5b506103a360145481565b34801561075d57600080fd5b5061055561076c366004613439565b611389565b34801561077d57600080fd5b5061048261078c366004613439565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156107b657600080fd5b506103a36107c5366004613439565b6001600160a01b031660009081526020819052604090205490565b3480156107ec57600080fd5b50610555611567565b34801561080157600080fd5b50600d54610370906001600160a01b031681565b34801561082157600080fd5b5061055561168c565b34801561083657600080fd5b506105556108453660046136b9565b6116e3565b34801561085657600080fd5b506015546001600160a01b0316610370565b34801561087457600080fd5b506104826118ee565b34801561088957600080fd5b5061055561195e565b34801561089e57600080fd5b50604080518082019091526006815265434855534b5960d01b6020820152610436565b3480156108cd57600080fd5b506104826108dc36600461340d565b611bb4565b3480156108ed57600080fd5b506105556108fc366004613439565b611bcb565b34801561090d57600080fd5b506010546104829060ff1681565b34801561092757600080fd5b5061055561093636600461370b565b611d65565b34801561094757600080fd5b506103a3610956366004613729565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561098d57600080fd5b5061055561099c366004613439565b611e10565b3480156109ad57600080fd5b506105556109bc366004613439565b612211565b3480156109cd57600080fd5b506105556122d1565b3480156109e257600080fd5b506105556109f1366004613757565b6123aa565b348015610a0257600080fd5b50600d5461048290600160a81b900460ff1681565b348015610a2357600080fd5b50610555610a323660046136b9565b612668565b6000610a443384846126db565b5060015b92915050565b6000610a5c6012600a613883565b601254610a699190613892565b905090565b6000610a7c6012600a613883565b610a6990620186a06138b4565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610aee576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610ae89084906138cb565b90915550505b610af98484846127d4565b949350505050565b6015546001600160a01b03163314610b4e5760405162461bcd60e51b81526020600482015260116024820152600080516020613a4083398151915260448201526064015b60405180910390fd5b6064610b5c6012600a613883565b610b6990620186a06138b4565b610b739190613892565b8183610b816012600a613883565b610b8e90620186a06138b4565b610b9891906138b4565b610ba29190613892565b1015610c165760405162461bcd60e51b815260206004820152603060248201527f4d61782057616c6c657420616d74206d7573742062652061626f76652031252060448201527f6f6620746f74616c20737570706c792e000000000000000000000000000000006064820152608401610b45565b8082610c246012600a613883565b610c3190620186a06138b4565b610c3b91906138b4565b610c459190613892565b6012555050565b6015546001600160a01b03163314610c945760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b8051825114610ce55760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610b45565b60005b82518161ffff161015610dfc57610d016012600a613883565b828261ffff1681518110610d1757610d176138de565b6020026020010151610d2991906138b4565b336000908152602081905260409020541015610d875760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610b45565b610de933848361ffff1681518110610da157610da16138de565b60200260200101516012600a610db79190613883565b858561ffff1681518110610dcd57610dcd6138de565b6020026020010151610ddf91906138b4565b6000806001612bf2565b5080610df4816138f4565b915050610ce8565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610e5b9190613915565b610e676012600a613883565b610e7490620186a06138b4565b610a6991906138cb565b6015546001600160a01b03163314610ec65760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b600b5460ff1615610f195760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610b45565b60648361ffff1611158015610f33575060648261ffff1611155b8015610f44575060648161ffff1611155b610f905760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610b45565b600a805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6015546001600160a01b031633146110175760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b600c546001600160a01b03166000908152602081905260408120546127109061106c9084906138b4565b610a489190613892565b6015546001600160a01b031633146110be5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b609681111561110f5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610b45565b601155565b6015546001600160a01b0316331461115c5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b6001600160a01b0381166111d85760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b45565b61deac196001600160a01b038216016112595760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610b45565b601554611270906001600160a01b03166000611316565b61127b816001611316565b6015546001600160a01b0316600090815260208190526040902054156112c4576015546001600160a01b03166000818152602081905260409020546112c291908390610ddf565b505b601580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6015546001600160a01b0316331461135e5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6015546001600160a01b031633146113d15760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b60135460ff16156113e157600080fd5b306001600160a01b038216036114395760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610b45565b6013805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af19250505080156114bf575060408051601f3d908101601f191682019092526114bc91810190613928565b60015b6114c857600080fd5b600b805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600c80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff19169091179055601554925461154593831692919004166000196126db565b600b54610dfc90309061010090046001600160a01b03166000196126db565b50565b6015546001600160a01b031633146115af5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b60135460ff166116275760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610b45565b60155461163e906001600160a01b03166000611316565b601580546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6015546001600160a01b031633146116d45760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b600b805460ff19166001179055565b6015546001600160a01b0316331461172b5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b806117bb576001600160a01b03828116600081815260016020526040808220805460ff1916905560135490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d1906044015b600060405180830381600087803b15801561179f57600080fd5b505af11580156117b3573d6000803e3d6000fd5b505050505050565b60025415611822576203f480600254426117d591906138cb565b116118225760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610b45565b6001600160a01b03821660009081526001602052604090205460ff161561188b5760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610b45565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560135491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401611785565b5050565b6015546000906001600160a01b031633146119395760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b600b5461195890309061010090046001600160a01b03166000196126db565b50600190565b6015546001600160a01b031633146119a65760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b60135460ff16156119f95760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610b45565b601354610100900460ff16611a505760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610b45565b6013546201000090046001600160a01b0316611a80576013805462010000600160b01b0319163062010000021790555b601354600c54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611af257600080fd5b505af1925050508015611b03575060015b50601354600c546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611b86575060408051601f3d908101601f19168201909252611b8391810190613957565b60015b15611b9557600e91909155600f555b6013805460ff1990811660011790915560098054909116905542601455565b6000611bc13384846127d4565b5060019392505050565b6015546001600160a01b03163314611c135760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b601354610100900460ff1615611c7b57306001600160a01b03821603611c7b5760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610b45565b6015546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611cd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf6919061397b565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfc9190613994565b6015546001600160a01b03163314611dad5760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b600d805460ff60a81b1916600160a81b841515908102919091179091556010805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6015546001600160a01b03163314611e585760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b601354610100900460ff1615611eb05760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610b45565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f1991906139b1565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f8a91906139b1565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611fd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff991906139b1565b600c546001600160a01b039081166000908152600160205260409020805460ff19169055909150811661218f57816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015612064573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208891906139b1565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f991906139b1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612146573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216a91906139b1565b600c80546001600160a01b0319166001600160a01b03929092169190911790556121ab565b600c80546001600160a01b0319166001600160a01b0383161790555b600b805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600c5482166000908152600160208190526040909120805460ff191690911790559154610dfc9230929104166000196126db565b6015546001600160a01b031633146122595760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b6001600160a01b0381166122af5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74206265207a65726f20616464726573732e0000000000000000006044820152606401610b45565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6015546001600160a01b031633146123195760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b601354610100900460ff16156123715760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610b45565b6015546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611564573d6000803e3d6000fd5b6015546001600160a01b031633146123f25760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b82846124006012600a613883565b61240d90620186a06138b4565b61241791906138b4565b6124219190613892565b600e5580826124326012600a613883565b61243f90620186a06138b4565b61244991906138b4565b6124539190613892565b600f819055600e5411156124b35760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610b45565b600c546001600160a01b0316600090815260208190526040902054612710906124dd9060966138b4565b6124e79190613892565b600f5411156125445760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610b45565b620f42406125546012600a613883565b61256190620186a06138b4565b61256b9190613892565b600f5410156125d35760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b45565b620f42406125e36012600a613883565b6125f090620186a06138b4565b6125fa9190613892565b600e5410156126625760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610b45565b50505050565b6015546001600160a01b031633146126b05760405162461bcd60e51b81526020600482015260116024820152600080516020613a408339815191526044820152606401610b45565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166127275760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b45565b6001600160a01b0382166127735760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610b45565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661283a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b45565b6001600160a01b03831661289c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b45565b600082116128fe5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610b45565b6001600160a01b0384166000908152600160205260408120548190819060ff161561292c576001925061295a565b6001600160a01b03861660009081526001602052604090205460ff1615612956576001915061295a565b5060015b6129648787612dff565b15612b395760135460ff16612a6557806129c05760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610b45565b6001600160a01b03871660009081526005602052604090205460ff16158015612a0257506001600160a01b03861660009081526005602052604090205460ff16155b15612a655760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610b45565b600b546001600160a01b038781166101009092041614801590612a86575081155b15612b39576001600160a01b03861660009081526007602052604090205460ff16612b395760125485612ace886001600160a01b031660009081526020819052604090205490565b612ad89190613915565b1115612b395760405162461bcd60e51b815260206004820152602a60248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526930b63632ba29b4bd329760b11b6064820152608401610b45565b8115612bd957600d54600160a01b900460ff16612bd957600d54600160a81b900460ff1615612bd95730600090815260208190526040902054600e548110612bd757600f5460105460ff1615612bc157601154600c546001600160a01b031660009081526020819052604090205461271091612bb4916138b4565b612bbe9190613892565b90505b808210612bcc578091505b612bd582612f16565b505b505b612be7878787868686612bf2565b979650505050505050565b6001600160a01b03861660009081526006602052604081205460019060ff1680612c3457506001600160a01b03871660009081526006602052604090205460ff165b15612c3d575060005b6001600160a01b03881660009081526020819052604081208054889290612c659084906138cb565b909155506000905081612c785786612c84565b612c848988888861315a565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612cba9190613915565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d0691815260200190565b60405180910390a3601354610100900460ff16612df057612d278989613266565b601354610100900460ff16158015612d445750612d448989612dff565b8015612d6957506001600160a01b03891660009081526005602052604090205460ff16155b8015612d8e57506001600160a01b03881660009081526005602052604090205460ff16155b8015612d98575083155b15612df05760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610b45565b50600198975050505050505050565b6015546000906001600160a01b03848116911614801590612e2e57506015546001600160a01b03838116911614155b8015612e4557506015546001600160a01b03163214155b8015612e6a57506001600160a01b03821660009081526004602052604090205460ff16155b8015612e8f57506001600160a01b03831660009081526004602052604090205460ff16155b8015612ea657506001600160a01b03821661dead14155b8015612eba57506001600160a01b03821615155b8015612ecf57506001600160a01b0383163014155b8015612eef57506013546001600160a01b03848116620100009092041614155b8015612f0f57506013546001600160a01b03838116620100009092041614155b9392505050565b600d805460ff60a01b1916600160a01b179055306000908152600360209081526040808320600b5461010090046001600160a01b0316845290915290205460001914612f8c57306000908152600360209081526040808320600b5461010090046001600160a01b03168452909152902060001990555b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612fc157612fc16138de565b60200260200101906001600160a01b031690816001600160a01b031681525050600b60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613034573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305891906139b1565b8160018151811061306b5761306b6138de565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b81526101009091049091169063791ac947906130b89085906000908690309042906004016139ce565b600060405180830381600087803b1580156130d257600080fd5b505af19250505080156130e3575060015b6130ed575061314a565b600d546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d806000811461313f576040519150601f19603f3d011682016040523d82523d6000602084013e613144565b606091505b50505050505b50600d805460ff60a01b19169055565b60008083156131705750600a5461ffff1661319a565b82156131895750600a5462010000900461ffff1661319a565b50600a54640100000000900461ffff165b806000036131ab5784915050610af9565b6013546201000090046001600160a01b0316301480156131cc575046606114155b156131d657506111945b60006127106131e583886138b4565b6131ef9190613892565b9050801561325c573060009081526020819052604081208054839290613216908490613915565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612be781876138cb565b601354610100900460ff16156132ca5760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610b45565b6132d48282612dff565b1580156132ee5750600c546001600160a01b038281169116145b156118ea576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556013805461ff001916610100179081905562010000900416613366576013805462010000600160b01b0319163062010000021790555b600d805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611e04565b600060208083528351808285015260005b818110156133d7578581018301518582016040015282016133bb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461156457600080fd5b6000806040838503121561342057600080fd5b823561342b816133f8565b946020939093013593505050565b60006020828403121561344b57600080fd5b8135612f0f816133f8565b60008060006060848603121561346b57600080fd5b8335613476816133f8565b92506020840135613486816133f8565b929592945050506040919091013590565b600080604083850312156134aa57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156134f8576134f86134b9565b604052919050565b600067ffffffffffffffff82111561351a5761351a6134b9565b5060051b60200190565b600082601f83011261353557600080fd5b8135602061354a61354583613500565b6134cf565b82815260059290921b8401810191818101908684111561356957600080fd5b8286015b84811015613584578035835291830191830161356d565b509695505050505050565b600080604083850312156135a257600080fd5b823567ffffffffffffffff808211156135ba57600080fd5b818501915085601f8301126135ce57600080fd5b813560206135de61354583613500565b82815260059290921b840181019181810190898411156135fd57600080fd5b948201945b83861015613624578535613615816133f8565b82529482019490820190613602565b9650508601359250508082111561363a57600080fd5b5061364785828601613524565b9150509250929050565b803561ffff8116811461366357600080fd5b919050565b60008060006060848603121561367d57600080fd5b61368684613651565b925061369460208501613651565b91506136a260408501613651565b90509250925092565b801515811461156457600080fd5b600080604083850312156136cc57600080fd5b82356136d7816133f8565b915060208301356136e7816136ab565b809150509250929050565b60006020828403121561370457600080fd5b5035919050565b6000806040838503121561371e57600080fd5b82356136d7816136ab565b6000806040838503121561373c57600080fd5b8235613747816133f8565b915060208301356136e7816133f8565b6000806000806080858703121561376d57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156137da5781600019048211156137c0576137c0613789565b808516156137cd57918102915b93841c93908002906137a4565b509250929050565b6000826137f157506001610a48565b816137fe57506000610a48565b8160018114613814576002811461381e5761383a565b6001915050610a48565b60ff84111561382f5761382f613789565b50506001821b610a48565b5060208310610133831016604e8410600b841016171561385d575081810a610a48565b613867838361379f565b806000190482111561387b5761387b613789565b029392505050565b6000612f0f60ff8416836137e2565b6000826138af57634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610a4857610a48613789565b81810381811115610a4857610a48613789565b634e487b7160e01b600052603260045260246000fd5b600061ffff80831681810361390b5761390b613789565b6001019392505050565b80820180821115610a4857610a48613789565b6000806040838503121561393b57600080fd5b8251613946816133f8565b60208401519092506136e7816133f8565b6000806040838503121561396a57600080fd5b505080516020909101519092909150565b60006020828403121561398d57600080fd5b5051919050565b6000602082840312156139a657600080fd5b8151612f0f816136ab565b6000602082840312156139c357600080fd5b8151612f0f816133f8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613a1e5784516001600160a01b0316835293830193918301916001016139f9565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a2646970667358221220712b9fee1389973597ed971ff58d2a3d572e00aa72571c87c6ec422484668f8664736f6c63430008130033

Deployed Bytecode Sourcemap

3889:19081:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5284:73;;;;;;;;;;;;5315:42;5284:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5284:73:0;;;;;;;;5533:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;5533:28:0;245:177:1;4874:107:0;;;;;;;;;;-1:-1:-1;4874:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;633:6:1;666:15;;;648:34;;718:15;;;713:2;698:18;;691:43;770:15;;750:18;;;743:43;;;;611:2;596:18;4874:107:0;427:365:1;8870:80:0;;;;;;;;;;-1:-1:-1;8942:5:0;;;;;;;;;;;;-1:-1:-1;;;8942:5:0;;;;8870:80;;;;;;;:::i;5223:26::-;;;;;;;;;;-1:-1:-1;5223:26:0;;;;;;;-1:-1:-1;;;;;5223:26:0;;;5190;;;;;;;;;;-1:-1:-1;5190:26:0;;;;;;;;;;;1763:14:1;;1756:22;1738:41;;1726:2;1711:18;5190:26:0;1598:187:1;9478:161:0;;;;;;;;;;-1:-1:-1;9478:161:0;;;;;:::i;:::-;;:::i;12852:140::-;;;;;;;;;;-1:-1:-1;12852:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;12950:34:0;12926:4;12950:34;;;:25;:34;;;;;;;;;12852:140;14427:114;;;;;;;;;;;;;:::i;8605:83::-;;;;;;;;;;;;;:::i;10148:306::-;;;;;;;;;;-1:-1:-1;10148:306:0;;;;;:::i;:::-;;:::i;14155:264::-;;;;;;;;;;-1:-1:-1;14155:264:0;;;;;:::i;:::-;;:::i;:::-;;20920:447;;;;;;;;;;-1:-1:-1;20920:447:0;;;;;:::i;:::-;;:::i;5641:33::-;;;;;;;;;;;;;;;;13156:141;;;;;;;;;;;;;:::i;4990:41::-;;;;;;;;;;;;5028:3;4990:41;;5568:25;;;;;;;;;;;;;;;;8694:80;;;;;;;;;;-1:-1:-1;8694:80:0;;4685:2;5864:36:1;;5852:2;5837:18;8694:80:0;5722:184:1;13495:453:0;;;;;;;;;;-1:-1:-1;13495:453:0;;;;;:::i;:::-;;:::i;12427:140::-;;;;;;;;;;-1:-1:-1;12427:140:0;;;;;:::i;:::-;;:::i;5256:21::-;;;;;;;;;;-1:-1:-1;5256:21:0;;;;-1:-1:-1;;;;;5256:21:0;;;5742:34;;;;;;;;;;-1:-1:-1;5742:34:0;;;;;;;;14549:189;;;;;;;;;;-1:-1:-1;14549:189:0;;;;;:::i;:::-;;:::i;15453:217::-;;;;;;;;;;-1:-1:-1;15453:217:0;;;;;:::i;:::-;;:::i;7237:654::-;;;;;;;;;;-1:-1:-1;7237:654:0;;;;;:::i;:::-;;:::i;12575:127::-;;;;;;;;;;-1:-1:-1;12575:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;12666:28:0;12642:4;12666:28;;;:19;:28;;;;;;;;;12575:127;5783:36;;;;;;;;;;-1:-1:-1;5783:36:0;;;;;;;;;;;12710:134;;;;;;;;;;-1:-1:-1;12710:134:0;;;;;:::i;:::-;;:::i;5856:26::-;;;;;;;;;;;;;;;;11722:557;;;;;;;;;;-1:-1:-1;11722:557:0;;;;;:::i;:::-;;:::i;12287:132::-;;;;;;;;;;-1:-1:-1;12287:132:0;;;;;:::i;:::-;-1:-1:-1;;;;;12381:30:0;12357:4;12381:30;;;:21;:30;;;;;;;;;12287:132;9180:117;;;;;;;;;;-1:-1:-1;9180:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;9273:16:0;9246:7;9273:16;;;;;;;;;;;;9180:117;7899:310;;;;;;;;;;;;;:::i;5364:92::-;;;;;;;;;;-1:-1:-1;5364:92:0;;;;-1:-1:-1;;;;;5364:92:0;;;13305:182;;;;;;;;;;;;;:::i;11150:564::-;;;;;;;;;;-1:-1:-1;11150:564:0;;;;;:::i;:::-;;:::i;8956:79::-;;;;;;;;;;-1:-1:-1;9026:6:0;;-1:-1:-1;;;;;9026:6:0;8956:79;;9965:175;;;;;;;;;;;;;:::i;19681:737::-;;;;;;;;;;;;;:::i;8780:84::-;;;;;;;;;;-1:-1:-1;8854:7:0;;;;;;;;;;;;-1:-1:-1;;;8854:7:0;;;;8780:84;;9305:165;;;;;;;;;;-1:-1:-1;9305:165:0;;;;;:::i;:::-;;:::i;20616:296::-;;;;;;;;;;-1:-1:-1;20616:296:0;;;;;:::i;:::-;;:::i;5600:34::-;;;;;;;;;;-1:-1:-1;5600:34:0;;;;;;;;15678:263;;;;;;;;;;-1:-1:-1;15678:263:0;;;;;:::i;:::-;;:::i;9041:133::-;;;;;;;;;;-1:-1:-1;9041:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9143:19:0;;;9125:7;9143:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9041:133;10462:680;;;;;;;;;;-1:-1:-1;10462:680:0;;;;;:::i;:::-;;:::i;13956:191::-;;;;;;;;;;-1:-1:-1;13956:191:0;;;;;:::i;:::-;;:::i;20426:182::-;;;;;;;;;;;;;:::i;14746:699::-;;;;;;;;;;-1:-1:-1;14746:699:0;;;;;:::i;:::-;;:::i;5487:39::-;;;;;;;;;;-1:-1:-1;5487:39:0;;;;-1:-1:-1;;;5487:39:0;;;;;;13000:148;;;;;;;;;;-1:-1:-1;13000:148:0;;;;;:::i;:::-;;:::i;9478:161::-;9555:4;9572:37;9581:10;9593:7;9602:6;9572:8;:37::i;:::-;-1:-1:-1;9627:4:0;9478:161;;;;;:::o;14427:114::-;14474:7;14519:13;4685:2;14519;:13;:::i;:::-;14501:14;;:32;;;;:::i;:::-;14494:39;;14427:114;:::o;8605:83::-;8660:7;4746:13;4685:2;4746;:13;:::i;:::-;4729:30;;4536:7;4729:30;:::i;10148:306::-;-1:-1:-1;;;;;10269:19:0;;10248:4;10269:19;;;:11;:19;;;;;;;;10289:10;10269:31;;;;;;;;-1:-1:-1;;10269:52:0;10265:126;;-1:-1:-1;;;;;10338:19:0;;;;;;:11;:19;;;;;;;;10358:10;10338:31;;;;;;;:41;;10373:6;;10338:19;:41;;10373:6;;10338:41;:::i;:::-;;;;-1:-1:-1;;10265:126:0;10410:36;10420:6;10428:9;10439:6;10410:9;:36::i;:::-;10403:43;10148:306;-1:-1:-1;;;;10148:306:0:o;14155:264::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;;;;;;;;;14297:3:::1;4746:13;4685:2;4746;:13;:::i;:::-;4729:30;::::0;4536:7:::1;4729:30;:::i;:::-;14287:13;;;;:::i;:::-;14275:7:::0;14264;4746:13:::1;4685:2;4746;:13;:::i;:::-;4729:30;::::0;4536:7:::1;4729:30;:::i;:::-;14254:17;;;;:::i;:::-;14253:29;;;;:::i;:::-;:48;;14245:109;;;::::0;-1:-1:-1;;;14245:109:0;;11365:2:1;14245:109:0::1;::::0;::::1;11347:21:1::0;11404:2;11384:18;;;11377:30;11443:34;11423:18;;;11416:62;11514:18;11494;;;11487:46;11550:19;;14245:109:0::1;11163:412:1::0;14245:109:0::1;14404:7:::0;14393;4746:13:::1;4685:2;4746;:13;:::i;:::-;4729:30;::::0;4536:7:::1;4729:30;:::i;:::-;14383:17;;;;:::i;:::-;14382:29;;;;:::i;:::-;14365:14;:46:::0;-1:-1:-1;;14155:264:0:o;20920:447::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;21055:7:::1;:14;21036:8;:15;:33;21028:67;;;::::0;-1:-1:-1;;;21028:67:0;;11782:2:1;21028:67:0::1;::::0;::::1;11764:21:1::0;11821:2;11801:18;;;11794:30;11860:23;11840:18;;;11833:51;11901:18;;21028:67:0::1;11580:345:1::0;21028:67:0::1;21111:8;21106:254;21129:8;:15;21125:1;:19;;;21106:254;;;21210:13;4685:2;21210;:13;:::i;:::-;21199:7;21207:1;21199:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;21184:10;9246:7:::0;9273:16;;;;;;;;;;;21174:49:::1;;21166:80;;;::::0;-1:-1:-1;;;21166:80:0;;12264:2:1;21166:80:0::1;::::0;::::1;12246:21:1::0;12303:2;12283:18;;;12276:30;12342:20;12322:18;;;12315:48;12380:18;;21166:80:0::1;12062:342:1::0;21166:80:0::1;21261:87;21278:10;21290:8;21299:1;21290:11;;;;;;;;;;:::i;:::-;;;;;;;4685:2;21314;:13;;;;:::i;:::-;21303:7;21311:1;21303:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;21329:5;21336::::0;21343:4:::1;21261:16;:87::i;:::-;-1:-1:-1::0;21146:3:0;::::1;::::0;::::1;:::i;:::-;;;;21106:254;;;;20920:447:::0;;:::o;13156:141::-;13209:7;9273:16;;;;;;5315:42;9273:16;;;;13248:39;;9273:16;13248:39;:::i;:::-;4746:13;4685:2;4746;:13;:::i;:::-;4729:30;;4536:7;4729:30;:::i;:::-;13237:51;;;;:::i;13495:453::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;13603:14:::1;::::0;::::1;;13602:15;13594:45;;;::::0;-1:-1:-1;;;13594:45:0;;12943:2:1;13594:45:0::1;::::0;::::1;12925:21:1::0;12982:2;12962:18;;;12955:30;13021:19;13001:18;;;12994:47;13058:18;;13594:45:0::1;12741:341:1::0;13594:45:0::1;5028:3;13658:6;:21;;;;:65;;;;;5077:3;13700:7;:23;;;;13658:65;:117;;;;;5130:3;13744:11;:31;;;;13658:117;13650:170;;;::::0;-1:-1:-1;;;13650:170:0;;13289:2:1;13650:170:0::1;::::0;::::1;13271:21:1::0;13328:2;13308:18;;;13301:30;13367:25;13347:18;;;13340:53;13410:18;;13650:170:0::1;13087:347:1::0;13650:170:0::1;13831:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;13867:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;13905:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;13495:453::o;12427:140::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;-1:-1:-1;;;;;12519:30:0;;;::::1;;::::0;;;:21:::1;:30;::::0;;;;:40;;-1:-1:-1;;12519:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12427:140::o;14549:189::-;14678:6;;-1:-1:-1;;;;;14678:6:0;14640:7;9273:16;;;;;;;;;;;5176:5;;14668:41;;14688:21;;14668:41;:::i;:::-;14667:62;;;;:::i;15453:217::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;15583:3:::1;15557:22;:29;;15549:64;;;::::0;-1:-1:-1;;;15549:64:0;;13641:2:1;15549:64:0::1;::::0;::::1;13623:21:1::0;13680:2;13660:18;;;13653:30;13719:24;13699:18;;;13692:52;13761:18;;15549:64:0::1;13439:346:1::0;15549:64:0::1;15624:13;:38:::0;15453:217::o;7237:654::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;-1:-1:-1;;;;;7316:22:0;::::1;7308:96;;;::::0;-1:-1:-1;;;7308:96:0;;13992:2:1;7308:96:0::1;::::0;::::1;13974:21:1::0;14031:2;14011:18;;;14004:30;14070:34;14050:18;;;14043:62;14141:31;14121:18;;;14114:59;14190:19;;7308:96:0::1;13790:425:1::0;7308:96:0::1;-1:-1:-1::0;;;;;;;7423:16:0;::::1;::::0;7415:90:::1;;;::::0;-1:-1:-1;;;7415:90:0;;13992:2:1;7415:90:0::1;::::0;::::1;13974:21:1::0;14031:2;14011:18;;;14004:30;14070:34;14050:18;;;14043:62;14141:31;14121:18;;;14114:59;14190:19;;7415:90:0::1;13790:425:1::0;7415:90:0::1;7536:6;::::0;7516:34:::1;::::0;-1:-1:-1;;;;;7536:6:0::1;;7516:19;:34::i;:::-;7561:35;7581:8;7591:4;7561:19;:35::i;:::-;7631:6;::::0;-1:-1:-1;;;;;7631:6:0::1;7641:1;9273:16:::0;;;;;;;;;;;7621:21;7617:127:::1;;7676:6;::::0;-1:-1:-1;;;;;7676:6:0::1;9246:7:::0;9273:16;;;;;;;;;;;7659:73:::1;::::0;7676:6;7684:8;;7694:17:::1;9180:117:::0;7659:73:::1;;7617:127;7783:6;::::0;;-1:-1:-1;;;;;7800:17:0;;::::1;-1:-1:-1::0;;;;;;7800:17:0;::::1;::::0;::::1;::::0;;;7833:40:::1;::::0;7783:6;::::1;::::0;7800:17;7783:6;;7833:40:::1;::::0;7764:16:::1;::::0;7833:40:::1;7297:594;7237:654:::0;:::o;12710:134::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;-1:-1:-1;;;;;12798:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;12798:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12710:134::o;11722:557::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;11797:14:::1;::::0;::::1;;11796:15;11788:24;;;::::0;::::1;;11847:4;-1:-1:-1::0;;;;;11831:21:0;::::1;::::0;11823:48:::1;;;::::0;-1:-1:-1;;;11823:48:0;;14422:2:1;11823:48:0::1;::::0;::::1;14404:21:1::0;14461:2;14441:18;;;14434:30;14500:16;14480:18;;;14473:44;14534:18;;11823:48:0::1;14220:338:1::0;11823:48:0::1;11882:11;:31:::0;;-1:-1:-1;;;;;;11882:31:0::1;::::0;-1:-1:-1;;;;;11882:31:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;11928:23:::1;::::0;;-1:-1:-1;;;11928:23:0;;;;:11;;;::::1;::::0;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;11928:11:0;:23:::1;;;;;;;;;;-1:-1:-1::0;11928:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;11928:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;11924:348;;12261:8;::::0;::::1;11924:348;12015:9;:29:::0;;-1:-1:-1;;12015:29:0::1;;-1:-1:-1::0;;;;;12015:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;12046:6:::1;:22:::0;;-1:-1:-1;;;;;;12046:22:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;12070:15:0;;;-1:-1:-1;12070:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;12070:22:0::1;::::0;;::::1;::::0;;12117:6:::1;::::0;12133:9;;12108:55:::1;::::0;12117:6;::::1;::::0;12133:9;;::::1;;-1:-1:-1::0;;12108:8:0::1;:55::i;:::-;12210:9;::::0;12178:62:::1;::::0;12195:4:::1;::::0;12210:9:::1;::::0;::::1;-1:-1:-1::0;;;;;12210:9:0::1;-1:-1:-1::0;;12178:8:0::1;:62::i;11924:348::-;11722:557:::0;:::o;7899:310::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;7966:14:::1;::::0;::::1;;7958:74;;;::::0;-1:-1:-1;;;7958:74:0;;15155:2:1;7958:74:0::1;::::0;::::1;15137:21:1::0;15194:2;15174:18;;;15167:30;15233:34;15213:18;;;15206:62;15304:17;15284:18;;;15277:45;15339:19;;7958:74:0::1;14953:411:1::0;7958:74:0::1;8063:6;::::0;8043:34:::1;::::0;-1:-1:-1;;;;;8063:6:0::1;;8043:19;:34::i;:::-;8107:6;::::0;;-1:-1:-1;;;;;;8124:19:0;::::1;::::0;;;8159:42:::1;::::0;-1:-1:-1;;;;;8107:6:0;;::::1;::::0;8088:16:::1;::::0;8107:6;;8159:42:::1;::::0;8088:16;;8159:42:::1;7947:262;7899:310::o:0;13305:182::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;13458:14:::1;:21:::0;;-1:-1:-1;;13458:21:0::1;13475:4;13458:21;::::0;;13305:182::o;11150:564::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;11232:7:::1;11227:480;;-1:-1:-1::0;;;;;11256:13:0;;::::1;11272:5;11256:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;11256:21:0::1;::::0;;11292:11:::1;::::0;:34;;-1:-1:-1;;;11292:34:0;;::::1;::::0;::::1;15537:74:1::0;;;;15627:18;;;15620:50;;;;11292:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15510:18:1;;11292:34:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11150:564:::0;;:::o;11227:480::-:1;11363:17;::::0;:22;11359:135:::1;;11452:6;11432:17;;11414:15;:35;;;;:::i;:::-;:44;11406:72;;;::::0;-1:-1:-1;;;11406:72:0;;15883:2:1;11406:72:0::1;::::0;::::1;15865:21:1::0;15922:2;15902:18;;;15895:30;15961:17;15941:18;;;15934:45;15996:18;;11406:72:0::1;15681:339:1::0;11406:72:0::1;-1:-1:-1::0;;;;;11517:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;11516:14;11508:54;;;::::0;-1:-1:-1;;;11508:54:0;;16227:2:1;11508:54:0::1;::::0;::::1;16209:21:1::0;16266:2;16246:18;;;16239:30;16305:29;16285:18;;;16278:57;16352:18;;11508:54:0::1;16025:351:1::0;11508:54:0::1;-1:-1:-1::0;;;;;11577:13:0;;::::1;;::::0;;;11593:4:::1;11577:13;::::0;;;;;;;;:20;;-1:-1:-1;;11577:20:0::1;::::0;::::1;::::0;;11632:15:::1;11612:17;:35:::0;11662:11:::1;::::0;:33;;-1:-1:-1;;;11662:33:0;;::::1;::::0;::::1;15537:74:1::0;;;;15627:18;;;15620:50;11662:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15510:18:1;;11662:33:0::1;15369:307:1::0;11227:480:0::1;11150:564:::0;;:::o;9965:175::-;7091:6;;10031:4;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;10080:9:::1;::::0;10048:62:::1;::::0;10065:4:::1;::::0;10080:9:::1;::::0;::::1;-1:-1:-1::0;;;;;10080:9:0::1;-1:-1:-1::0;;10048:8:0::1;:62::i;:::-;-1:-1:-1::0;10128:4:0::1;9965:175:::0;:::o;19681:737::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;19743:14:::1;::::0;::::1;;19742:15;19734:52;;;::::0;-1:-1:-1;;;19734:52:0;;16583:2:1;19734:52:0::1;::::0;::::1;16565:21:1::0;16622:2;16602:18;;;16595:30;16661:26;16641:18;;;16634:54;16705:18;;19734:52:0::1;16381:348:1::0;19734:52:0::1;19805:16;::::0;::::1;::::0;::::1;;;19797:53;;;::::0;-1:-1:-1;;;19797:53:0;;16936:2:1;19797:53:0::1;::::0;::::1;16918:21:1::0;16975:2;16955:18;;;16948:30;17014:26;16994:18;;;16987:54;17058:18;;19797:53:0::1;16734:348:1::0;19797:53:0::1;19873:11;::::0;;;::::1;-1:-1:-1::0;;;;;19873:11:0::1;19861:106;;19915:11;:40:::0;;-1:-1:-1;;;;;;19915:40:0::1;19949:4;19915:40:::0;::::1;;::::0;;19861:106:::1;19981:11;::::0;20003:6:::1;::::0;19981:87:::1;::::0;-1:-1:-1;;;19981:87:0;;-1:-1:-1;;;;;20003:6:0;;::::1;19981:87;::::0;::::1;17310:74:1::0;17432:10;20018:12:0::1;17420:23:1::0;17400:18;;;17393:51;17492:18;20040:15:0::1;17480:31:1::0;17460:18;;;17453:59;4685:2:0::1;17528:18:1::0;;;17521:45;19981:11:0;;;::::1;;::::0;:21:::1;::::0;17282:19:1;;19981:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;20094:11:0::1;::::0;20125:6:::1;::::0;-1:-1:-1;;;;;20125:6:0;;::::1;9246:7:::0;9273:16;;;;;;;;;;;;;20094:39;;-1:-1:-1;;;20094:39:0;;::::1;::::0;::::1;391:25:1::0;;;;20094:11:0;;;::::1;;::::0;:20:::1;::::0;364:18:1;;20094:39:0::1;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;20094:39:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;20094:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;20090:207:::0;::::1;;20205:13;:29:::0;;;;20249:10:::1;:27:::0;20090:207:::1;20307:14;:21:::0;;-1:-1:-1;;20307:21:0;;::::1;20324:4;20307:21;::::0;;;20339:23:::1;:31:::0;;;;::::1;::::0;;20395:15:::1;20381:11;:29:::0;19681:737::o;9305:165::-;9383:4;9400:40;9410:10;9422:9;9433:6;9400:9;:40::i;:::-;-1:-1:-1;9458:4:0;;9305:165;-1:-1:-1;;;9305:165:0:o;20616:296::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;20694:16:::1;::::0;::::1;::::0;::::1;;;20690:111;;;20752:4;-1:-1:-1::0;;;;;20735:22:0;::::1;::::0;20727:62:::1;;;::::0;-1:-1:-1;;;20727:62:0;;18029:2:1;20727:62:0::1;::::0;::::1;18011:21:1::0;18068:2;18048:18;;;18041:30;18107:29;18087:18;;;18080:57;18154:18;;20727:62:0::1;17827:351:1::0;20727:62:0::1;20865:6;::::0;20873:30:::1;::::0;-1:-1:-1;;;20873:30:0;;20897:4:::1;20873:30;::::0;::::1;160:74:1::0;20833:5:0;;-1:-1:-1;;;;;20850:14:0;;::::1;::::0;::::1;::::0;20865:6;;;::::1;::::0;20850:14;;20873:15:::1;::::0;133:18:1;;20873:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20850:54;::::0;-1:-1:-1;;;;;;20850:54:0::1;::::0;;;;;;-1:-1:-1;;;;;18564:55:1;;;20850:54:0::1;::::0;::::1;18546:74:1::0;18636:18;;;18629:34;18519:18;;20850:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15678:263::-:0;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;15787:19:::1;:33:::0;;-1:-1:-1;;;;15787:33:0::1;-1:-1:-1::0;;;15787:33:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;15831:22:::1;:47:::0;;-1:-1:-1;;15831:47:0::1;::::0;::::1;;;::::0;;15894:39:::1;::::0;1738:41:1;;;15894:39:0::1;::::0;1726:2:1;1711:18;15894:39:0::1;;;;;;;;15678:263:::0;;:::o;10462:680::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;10542:16:::1;::::0;::::1;::::0;::::1;;;10541:17;10533:60;;;::::0;-1:-1:-1;;;10533:60:0;;19126:2:1;10533:60:0::1;::::0;::::1;19108:21:1::0;19165:2;19145:18;;;19138:30;19204:32;19184:18;;;19177:60;19254:18;;10533:60:0::1;18924:354:1::0;10533:60:0::1;10604:20;10637:9;10604:43;;10658:16;10688:10;-1:-1:-1::0;;;;;10688:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10677:40:0::1;;10726:4;10733:10;-1:-1:-1::0;;;;;10733:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10677:74;::::0;-1:-1:-1;;;;;;10677:74:0::1;::::0;;;;;;-1:-1:-1;;;;;19792:15:1;;;10677:74:0::1;::::0;::::1;19774:34:1::0;19844:15;;19824:18;;;19817:43;19686:18;;10677:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10770:6;::::0;-1:-1:-1;;;;;10770:6:0;;::::1;10780:5;10762:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;10762:23:0::1;::::0;;10658:93;;-1:-1:-1;10800:22:0;::::1;10796:200;;10859:10;-1:-1:-1::0;;;;;10859:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10848:43:0::1;;10900:4;10907:10;-1:-1:-1::0;;;;;10907:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10848:77;::::0;-1:-1:-1;;;;;;10848:77:0::1;::::0;;;;;;-1:-1:-1;;;;;19792:15:1;;;10848:77:0::1;::::0;::::1;19774:34:1::0;19844:15;;19824:18;;;19817:43;19686:18;;10848:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10839:6;:86:::0;;-1:-1:-1;;;;;;10839:86:0::1;-1:-1:-1::0;;;;;10839:86:0;;;::::1;::::0;;;::::1;::::0;;10796:200:::1;;;10967:6;:17:::0;;-1:-1:-1;;;;;;10967:17:0::1;-1:-1:-1::0;;;;;10967:17:0;::::1;;::::0;;10796:200:::1;11006:9;:22:::0;;-1:-1:-1;;11006:22:0::1;;-1:-1:-1::0;;;;;11006:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;11047:6:::1;::::0;;::::1;-1:-1:-1::0;11039:15:0;;;-1:-1:-1;11039:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;11039:22:0::1;::::0;;::::1;::::0;;11104:9;;11072:62:::1;::::0;11089:4:::1;::::0;11104:9;::::1;;-1:-1:-1::0;;11072:8:0::1;:62::i;13956:191::-:0;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;-1:-1:-1;;;;;14041:23:0;::::1;14033:59;;;::::0;-1:-1:-1;;;14033:59:0;;20073:2:1;14033:59:0::1;::::0;::::1;20055:21:1::0;20112:2;20092:18;;;20085:30;20151:25;20131:18;;;20124:53;20194:18;;14033:59:0::1;19871:347:1::0;14033:59:0::1;14103:15;:36:::0;;-1:-1:-1;;;;;;14103:36:0::1;-1:-1:-1::0;;;;;14103:36:0;;;::::1;::::0;;;::::1;::::0;;13956:191::o;20426:182::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;20493:16:::1;::::0;::::1;::::0;::::1;;;20492:17;20484:58;;;::::0;-1:-1:-1;;;20484:58:0;;20425:2:1;20484:58:0::1;::::0;::::1;20407:21:1::0;20464:2;20444:18;;;20437:30;20503;20483:18;;;20476:58;20551:18;;20484:58:0::1;20223:352:1::0;20484:58:0::1;20561:6;::::0;20553:47:::1;::::0;-1:-1:-1;;;;;20561:6:0;;::::1;::::0;20578:21:::1;20553:47:::0;::::1;;;::::0;20561:6:::1;20553:47:::0;20561:6;20553:47;20578:21;20561:6;20553:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;14746:699:::0;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;14946:16;14926;4746:13:::1;4685:2;4746;:13;:::i;:::-;4729:30;::::0;4536:7:::1;4729:30;:::i;:::-;14916:26;;;;:::i;:::-;14915:47;;;;:::i;:::-;14899:13;:63:::0;15014:13;14997;4746::::1;4685:2;4746;:13;:::i;:::-;4729:30;::::0;4536:7:::1;4729:30;:::i;:::-;14987:23;;;;:::i;:::-;14986:41;;;;:::i;:::-;14973:10;:54:::0;;;15046:13:::1;::::0;:27:::1;;15038:73;;;::::0;-1:-1:-1;;;15038:73:0;;20782:2:1;15038:73:0::1;::::0;::::1;20764:21:1::0;20821:2;20801:18;;;20794:30;20860:34;20840:18;;;20833:62;-1:-1:-1;;;20911:18:1;;;20904:31;20952:19;;15038:73:0::1;20580:397:1::0;15038:73:0::1;15155:6;::::0;-1:-1:-1;;;;;15155:6:0::1;9246:7:::0;9273:16;;;;;;;;;;;5176:5:::1;::::0;15145:23:::1;::::0;15165:3:::1;15145:23;:::i;:::-;15144:44;;;;:::i;:::-;15130:10;;:58;;15122:106;;;::::0;-1:-1:-1;;;15122:106:0;;21184:2:1;15122:106:0::1;::::0;::::1;21166:21:1::0;21223:2;21203:18;;;21196:30;21262:34;21242:18;;;21235:62;-1:-1:-1;;;21313:18:1;;;21306:33;21356:19;;15122:106:0::1;20982:399:1::0;15122:106:0::1;15271:9;4746:13;4685:2;4746;:13;:::i;:::-;4729:30;::::0;4536:7:::1;4729:30;:::i;:::-;15261:19;;;;:::i;:::-;15247:10;;:33;;15239:92;;;::::0;-1:-1:-1;;;15239:92:0;;21588:2:1;15239:92:0::1;::::0;::::1;21570:21:1::0;21627:2;21607:18;;;21600:30;21666:34;21646:18;;;21639:62;-1:-1:-1;;;21717:18:1;;;21710:44;21771:19;;15239:92:0::1;21386:410:1::0;15239:92:0::1;15377:9;4746:13;4685:2;4746;:13;:::i;:::-;4729:30;::::0;4536:7:::1;4729:30;:::i;:::-;15367:19;;;;:::i;:::-;15350:13;;:36;;15342:95;;;::::0;-1:-1:-1;;;15342:95:0;;21588:2:1;15342:95:0::1;::::0;::::1;21570:21:1::0;21627:2;21607:18;;;21600:30;21666:34;21646:18;;;21639:62;-1:-1:-1;;;21717:18:1;;;21710:44;21771:19;;15342:95:0::1;21386:410:1::0;15342:95:0::1;14746:699:::0;;;;:::o;13000:148::-;7091:6;;-1:-1:-1;;;;;7091:6:0;7101:10;7091:20;7083:50;;;;-1:-1:-1;;;7083:50:0;;11019:2:1;7083:50:0;;;11001:21:1;11058:2;11038:18;;;11031:30;-1:-1:-1;;;;;;;;;;;11077:18:1;;;11070:47;11134:18;;7083:50:0;10817:341:1;7083:50:0;-1:-1:-1;;;;;13096:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;13096:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13000:148::o;9647:310::-;-1:-1:-1;;;;;9742:20:0;;9734:52;;;;-1:-1:-1;;;9734:52:0;;22003:2:1;9734:52:0;;;21985:21:1;22042:2;22022:18;;;22015:30;-1:-1:-1;;;22061:18:1;;;22054:49;22120:18;;9734:52:0;21801:343:1;9734:52:0;-1:-1:-1;;;;;9805:21:0;;9797:53;;;;-1:-1:-1;;;9797:53:0;;22003:2:1;9797:53:0;;;21985:21:1;22042:2;22022:18;;;22015:30;-1:-1:-1;;;22061:18:1;;;22054:49;22120:18;;9797:53:0;21801:343:1;9797:53:0;-1:-1:-1;;;;;9863:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;9916:33;;391:25:1;;;9916:33:0;;364:18:1;9916:33:0;;;;;;;9647:310;;;:::o;16403:1930::-;16482:4;-1:-1:-1;;;;;16507:18:0;;16499:68;;;;-1:-1:-1;;;16499:68:0;;22351:2:1;16499:68:0;;;22333:21:1;22390:2;22370:18;;;22363:30;22429:34;22409:18;;;22402:62;-1:-1:-1;;;22480:18:1;;;22473:35;22525:19;;16499:68:0;22149:401:1;16499:68:0;-1:-1:-1;;;;;16586:16:0;;16578:64;;;;-1:-1:-1;;;16578:64:0;;22757:2:1;16578:64:0;;;22739:21:1;22796:2;22776:18;;;22769:30;22835:34;22815:18;;;22808:62;-1:-1:-1;;;22886:18:1;;;22879:33;22929:19;;16578:64:0;22555:399:1;16578:64:0;16670:1;16661:6;:10;16653:64;;;;-1:-1:-1;;;16653:64:0;;23161:2:1;16653:64:0;;;23143:21:1;23200:2;23180:18;;;23173:30;23239:34;23219:18;;;23212:62;-1:-1:-1;;;23290:18:1;;;23283:39;23339:19;;16653:64:0;22959:405:1;16653:64:0;-1:-1:-1;;;;;16816:13:0;;16728:8;16816:13;;;:7;:13;;;;;;16728:8;;;;16816:13;;16812:162;;;16852:4;16846:10;;16812:162;;;-1:-1:-1;;;;;16878:11:0;;;;;;:7;:11;;;;;;;;16874:100;;;16913:4;16906:11;;16874:100;;;-1:-1:-1;16958:4:0;16874:100;16988:20;16999:4;17005:2;16988:10;:20::i;:::-;16984:628;;;17029:14;;;;17025:319;;17069:5;17064:265;;17099:34;;-1:-1:-1;;;17099:34:0;;23571:2:1;17099:34:0;;;23553:21:1;23610:2;23590:18;;;23583:30;23649:26;23629:18;;;23622:54;23693:18;;17099:34:0;23369:348:1;17064:265:0;-1:-1:-1;;;;;17164:31:0;;;;;;:25;:31;;;;;;;;17163:32;:66;;;;-1:-1:-1;;;;;;17200:29:0;;;;;;:25;:29;;;;;;;;17199:30;17163:66;17159:170;;;17254:55;;-1:-1:-1;;;17254:55:0;;23924:2:1;17254:55:0;;;23906:21:1;23963:2;23943:18;;;23936:30;24002:34;23982:18;;;23975:62;-1:-1:-1;;;24053:18:1;;;24046:43;24106:19;;17254:55:0;23722:409:1;17159:170:0;17376:9;;-1:-1:-1;;;;;17362:24:0;;;17376:9;;;;;17362:24;;;;:33;;;17391:4;17390:5;17362:33;17358:243;;;-1:-1:-1;;;;;17421:25:0;;;;;;:21;:25;;;;;;;;17416:170;;17505:14;;17495:6;17479:13;17489:2;-1:-1:-1;;;;;9273:16:0;9246:7;9273:16;;;;;;;;;;;;9180:117;17479:13;:22;;;;:::i;:::-;:40;;17471:95;;;;-1:-1:-1;;;17471:95:0;;24338:2:1;17471:95:0;;;24320:21:1;24377:2;24357:18;;;24350:30;24416:34;24396:18;;;24389:62;-1:-1:-1;;;24467:18:1;;;24460:40;24517:19;;17471:95:0;24136:406:1;17471:95:0;17628:4;17624:632;;;17654:6;;-1:-1:-1;;;17654:6:0;;;;17649:596;;17685:19;;-1:-1:-1;;;17685:19:0;;;;17681:549;;;17778:4;17729:28;9273:16;;;;;;;;;;;17835:13;;17811:37;;17807:404;;17895:10;;17936:22;;;;17932:97;;;17993:13;;17983:6;;-1:-1:-1;;;;;17983:6:0;9246:7;9273:16;;;;;;;;;;;5176:5;;17973:33;;;:::i;:::-;17972:54;;;;:::i;:::-;17962:64;;17932:97;18083:7;18059:20;:31;18055:72;;18117:7;18094:30;;18055:72;18153:34;18166:20;18153:12;:34::i;:::-;17850:361;17807:404;17706:524;17681:549;18273:52;18290:4;18296:2;18300:6;18308:3;18313:4;18319:5;18273:16;:52::i;:::-;18266:59;16403:1930;-1:-1:-1;;;;;;;16403:1930:0:o;21375:817::-;-1:-1:-1;;;;;21545:25:0;;21494:4;21545:25;;;:19;:25;;;;;;21526:4;;21545:25;;;:52;;-1:-1:-1;;;;;;21574:23:0;;;;;;:19;:23;;;;;;;;21545:52;21541:99;;;-1:-1:-1;21623:5:0;21541:99;-1:-1:-1;;;;;21650:13:0;;:7;:13;;;;;;;;;;:23;;21667:6;;21650:7;:23;;21667:6;;21650:23;:::i;:::-;;;;-1:-1:-1;21684:22:0;;-1:-1:-1;21710:7:0;21709:55;;21758:6;21709:55;;;21721:34;21731:4;21737:6;21745:3;21750:4;21721:9;:34::i;:::-;21684:80;;21790:14;21775:7;:11;21783:2;-1:-1:-1;;;;;21775:11:0;-1:-1:-1;;;;;21775:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;21835:2;-1:-1:-1;;;;;21820:34:0;21829:4;-1:-1:-1;;;;;21820:34:0;;21839:14;21820:34;;;;391:25:1;;379:2;364:18;;245:177;21820:34:0;;;;;;;;21870:16;;;;;;;21865:298;;21903:28;21922:4;21928:2;21903:18;:28::i;:::-;21951:16;;;;;;;21950:17;:41;;;;;21971:20;21982:4;21988:2;21971:10;:20::i;:::-;21950:77;;;;-1:-1:-1;;;;;;21996:31:0;;;;;;:25;:31;;;;;;;;21995:32;21950:77;:111;;;;-1:-1:-1;;;;;;22032:29:0;;;;;;:25;:29;;;;;;;;22031:30;21950:111;:121;;;;;22066:5;22065:6;21950:121;21946:206;;;22092:44;;-1:-1:-1;;;22092:44:0;;24749:2:1;22092:44:0;;;24731:21:1;24788:2;24768:18;;;24761:30;24827:34;24807:18;;;24800:62;-1:-1:-1;;;24878:18:1;;;24871:32;24920:19;;22092:44:0;24547:398:1;21946:206:0;-1:-1:-1;22180:4:0;;21375:817;-1:-1:-1;;;;;;;;21375:817:0:o;15949:446::-;16050:6;;16018:4;;-1:-1:-1;;;;;16042:14:0;;;16050:6;;16042:14;;;;:43;;-1:-1:-1;16079:6:0;;-1:-1:-1;;;;;16073:12:0;;;16079:6;;16073:12;;16042:43;:79;;;;-1:-1:-1;16115:6:0;;-1:-1:-1;;;;;16115:6:0;16102:9;:19;;16042:79;:118;;;;-1:-1:-1;;;;;;16139:21:0;;;;;;:17;:21;;;;;;;;16138:22;16042:118;:159;;;;-1:-1:-1;;;;;;16178:23:0;;;;;;:17;:23;;;;;;;;16177:24;16042:159;:186;;;;-1:-1:-1;;;;;;16218:10:0;;5315:42;16218:10;;16042:186;:219;;;;-1:-1:-1;;;;;;16245:16:0;;;;16042:219;:257;;;;-1:-1:-1;;;;;;16278:21:0;;16294:4;16278:21;;16042:257;:302;;;;-1:-1:-1;16332:11:0;;-1:-1:-1;;;;;16316:28:0;;;16332:11;;;;;16316:28;;16042:302;:345;;;;-1:-1:-1;16375:11:0;;-1:-1:-1;;;;;16361:26:0;;;16375:11;;;;;16361:26;;16042:345;16035:352;15949:446;-1:-1:-1;;;15949:446:0:o;18341:761::-;6047:6;:13;;-1:-1:-1;;;;6047:13:0;-1:-1:-1;;;6047:13:0;;;18448:4:::1;6047:13:::0;18428:26;;;:11:::1;:26;::::0;;;;;;;18463:9:::1;::::0;6047:13;18463:9;::::1;-1:-1:-1::0;;;;;18463:9:0::1;18428:46:::0;;;;;;;;-1:-1:-1;;18428:67:0::1;18424:166;;18532:4;18512:26;::::0;;;:11:::1;:26;::::0;;;;;;;18547:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;18547:9:0::1;18512:46:::0;;;;;;;-1:-1:-1;;18512:66:0;;18424:166:::1;18634:16;::::0;;18648:1:::1;18634:16:::0;;;;;::::1;::::0;;18610:21:::1;::::0;18634:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18634:16:0::1;18610:40;;18679:4;18661;18666:1;18661:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;18661:23:0::1;;;-1:-1:-1::0;;;;;18661:23:0::1;;;::::0;::::1;18705:9;;;;;;;;;-1:-1:-1::0;;;;;18705:9:0::1;-1:-1:-1::0;;;;;18705:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18695:4;18700:1;18695:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18695:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;18738:9:::1;::::0;:199:::1;::::0;-1:-1:-1;;;18738:199:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:199:::1;::::0;18813:20;;18848:1:::1;::::0;18864:4;;18891::::1;::::0;18911:15:::1;::::0;18738:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;18734:246;;18962:7;;;18734:246;19028:15;::::0;:66:::1;::::0;18992:12:::1;::::0;-1:-1:-1;;;;;19028:15:0::1;::::0;19084:5:::1;::::0;19056:21:::1;::::0;18992:12;19028:66;18992:12;19028:66;19056:21;19028:15;19084:5;19028:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6071:1:0::1;-1:-1:-1::0;6083:6:0;:14;;-1:-1:-1;;;;6083:14:0;;;18341:761::o;22200:767::-;22288:7;22308:18;22341:3;22337:205;;;-1:-1:-1;22374:9:0;:16;;;22337:205;;;22412:4;22408:134;;;-1:-1:-1;22446:9:0;:17;;;;;;22408:134;;;-1:-1:-1;22509:9:0;:21;;;;;;22408:134;22556:10;22570:1;22556:15;22552:39;;22582:6;22575:13;;;;;22552:39;22613:11;;;;;-1:-1:-1;;;;;22613:11:0;22637:4;22605:37;:73;;;;;22659:13;22676:2;22659:19;;22605:73;22601:101;;;-1:-1:-1;22695:4:0;22601:101;22712:17;5176:5;22732:19;22741:10;22732:6;:19;:::i;:::-;:38;;;;:::i;:::-;22712:58;-1:-1:-1;22785:13:0;;22781:141;;22831:4;22815:7;:22;;;;;;;;;;:35;;22841:9;;22815:7;:35;;22841:9;;22815:35;:::i;:::-;;;;-1:-1:-1;;22870:40:0;;391:25:1;;;22893:4:0;;-1:-1:-1;;;;;22870:40:0;;;;;379:2:1;364:18;22870:40:0;;;;;;;22781:141;22941:18;22950:9;22941:6;:18;:::i;19110:563::-;19193:16;;;;;;;19192:17;19184:65;;;;-1:-1:-1;;;19184:65:0;;26393:2:1;19184:65:0;;;26375:21:1;26432:2;26412:18;;;26405:30;26471:34;26451:18;;;26444:62;-1:-1:-1;;;26522:18:1;;;26515:33;26565:19;;19184:65:0;26191:399:1;19184:65:0;19265:20;19276:4;19282:2;19265:10;:20::i;:::-;19264:21;:37;;;;-1:-1:-1;19295:6:0;;-1:-1:-1;;;;;19289:12:0;;;19295:6;;19289:12;19264:37;19260:406;;;-1:-1:-1;;;;;19318:23:0;;;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;19318:30:0;;;19344:4;19318:30;;;;;;19363:19;:25;;;;;:32;;;;;;;;;;19410:16;:23;;-1:-1:-1;;19410:23:0;19318:30;19410:23;;;;;19460:11;;;;19448:114;;19506:11;:40;;-1:-1:-1;;;;;;19506:40:0;19540:4;19506:40;;;;;19448:114;19576:19;:26;;-1:-1:-1;;;;19576:26:0;-1:-1:-1;;;19576:26:0;;;19622:32;;-1:-1:-1;1738:41:1;;19622:32:0;;1726:2:1;1711:18;19622:32:0;1598:187:1;797:548;909:4;938:2;967;956:9;949:21;999:6;993:13;1042:6;1037:2;1026:9;1022:18;1015:34;1067:1;1077:140;1091:6;1088:1;1085:13;1077:140;;;1186:14;;;1182:23;;1176:30;1152:17;;;1171:2;1148:26;1141:66;1106:10;;1077:140;;;1081:3;1266:1;1261:2;1252:6;1241:9;1237:22;1233:31;1226:42;1336:2;1329;1325:7;1320:2;1312:6;1308:15;1304:29;1293:9;1289:45;1285:54;1277:62;;;;797:548;;;;:::o;1790:154::-;-1:-1:-1;;;;;1869:5:1;1865:54;1858:5;1855:65;1845:93;;1934:1;1931;1924:12;1949:315;2017:6;2025;2078:2;2066:9;2057:7;2053:23;2049:32;2046:52;;;2094:1;2091;2084:12;2046:52;2133:9;2120:23;2152:31;2177:5;2152:31;:::i;:::-;2202:5;2254:2;2239:18;;;;2226:32;;-1:-1:-1;;;1949:315:1:o;2269:247::-;2328:6;2381:2;2369:9;2360:7;2356:23;2352:32;2349:52;;;2397:1;2394;2387:12;2349:52;2436:9;2423:23;2455:31;2480:5;2455:31;:::i;2521:456::-;2598:6;2606;2614;2667:2;2655:9;2646:7;2642:23;2638:32;2635:52;;;2683:1;2680;2673:12;2635:52;2722:9;2709:23;2741:31;2766:5;2741:31;:::i;:::-;2791:5;-1:-1:-1;2848:2:1;2833:18;;2820:32;2861:33;2820:32;2861:33;:::i;:::-;2521:456;;2913:7;;-1:-1:-1;;;2967:2:1;2952:18;;;;2939:32;;2521:456::o;2982:248::-;3050:6;3058;3111:2;3099:9;3090:7;3086:23;3082:32;3079:52;;;3127:1;3124;3117:12;3079:52;-1:-1:-1;;3150:23:1;;;3220:2;3205:18;;;3192:32;;-1:-1:-1;2982:248:1:o;3235:127::-;3296:10;3291:3;3287:20;3284:1;3277:31;3327:4;3324:1;3317:15;3351:4;3348:1;3341:15;3367:275;3438:2;3432:9;3503:2;3484:13;;-1:-1:-1;;3480:27:1;3468:40;;3538:18;3523:34;;3559:22;;;3520:62;3517:88;;;3585:18;;:::i;:::-;3621:2;3614:22;3367:275;;-1:-1:-1;3367:275:1:o;3647:183::-;3707:4;3740:18;3732:6;3729:30;3726:56;;;3762:18;;:::i;:::-;-1:-1:-1;3807:1:1;3803:14;3819:4;3799:25;;3647:183::o;3835:662::-;3889:5;3942:3;3935:4;3927:6;3923:17;3919:27;3909:55;;3960:1;3957;3950:12;3909:55;3996:6;3983:20;4022:4;4046:60;4062:43;4102:2;4062:43;:::i;:::-;4046:60;:::i;:::-;4140:15;;;4226:1;4222:10;;;;4210:23;;4206:32;;;4171:12;;;;4250:15;;;4247:35;;;4278:1;4275;4268:12;4247:35;4314:2;4306:6;4302:15;4326:142;4342:6;4337:3;4334:15;4326:142;;;4408:17;;4396:30;;4446:12;;;;4359;;4326:142;;;-1:-1:-1;4486:5:1;3835:662;-1:-1:-1;;;;;;3835:662:1:o;4502:1215::-;4620:6;4628;4681:2;4669:9;4660:7;4656:23;4652:32;4649:52;;;4697:1;4694;4687:12;4649:52;4737:9;4724:23;4766:18;4807:2;4799:6;4796:14;4793:34;;;4823:1;4820;4813:12;4793:34;4861:6;4850:9;4846:22;4836:32;;4906:7;4899:4;4895:2;4891:13;4887:27;4877:55;;4928:1;4925;4918:12;4877:55;4964:2;4951:16;4986:4;5010:60;5026:43;5066:2;5026:43;:::i;5010:60::-;5104:15;;;5186:1;5182:10;;;;5174:19;;5170:28;;;5135:12;;;;5210:19;;;5207:39;;;5242:1;5239;5232:12;5207:39;5266:11;;;;5286:217;5302:6;5297:3;5294:15;5286:217;;;5382:3;5369:17;5399:31;5424:5;5399:31;:::i;:::-;5443:18;;5319:12;;;;5481;;;;5286:217;;;5522:5;-1:-1:-1;;5565:18:1;;5552:32;;-1:-1:-1;;5596:16:1;;;5593:36;;;5625:1;5622;5615:12;5593:36;;5648:63;5703:7;5692:8;5681:9;5677:24;5648:63;:::i;:::-;5638:73;;;4502:1215;;;;;:::o;5911:159::-;5978:20;;6038:6;6027:18;;6017:29;;6007:57;;6060:1;6057;6050:12;6007:57;5911:159;;;:::o;6075:328::-;6149:6;6157;6165;6218:2;6206:9;6197:7;6193:23;6189:32;6186:52;;;6234:1;6231;6224:12;6186:52;6257:28;6275:9;6257:28;:::i;:::-;6247:38;;6304:37;6337:2;6326:9;6322:18;6304:37;:::i;:::-;6294:47;;6360:37;6393:2;6382:9;6378:18;6360:37;:::i;:::-;6350:47;;6075:328;;;;;:::o;6408:118::-;6494:5;6487:13;6480:21;6473:5;6470:32;6460:60;;6516:1;6513;6506:12;6531:382;6596:6;6604;6657:2;6645:9;6636:7;6632:23;6628:32;6625:52;;;6673:1;6670;6663:12;6625:52;6712:9;6699:23;6731:31;6756:5;6731:31;:::i;:::-;6781:5;-1:-1:-1;6838:2:1;6823:18;;6810:32;6851:30;6810:32;6851:30;:::i;:::-;6900:7;6890:17;;;6531:382;;;;;:::o;6918:180::-;6977:6;7030:2;7018:9;7009:7;7005:23;7001:32;6998:52;;;7046:1;7043;7036:12;6998:52;-1:-1:-1;7069:23:1;;6918:180;-1:-1:-1;6918:180:1:o;7350:376::-;7412:6;7420;7473:2;7461:9;7452:7;7448:23;7444:32;7441:52;;;7489:1;7486;7479:12;7441:52;7528:9;7515:23;7547:28;7569:5;7547:28;:::i;7731:388::-;7799:6;7807;7860:2;7848:9;7839:7;7835:23;7831:32;7828:52;;;7876:1;7873;7866:12;7828:52;7915:9;7902:23;7934:31;7959:5;7934:31;:::i;:::-;7984:5;-1:-1:-1;8041:2:1;8026:18;;8013:32;8054:33;8013:32;8054:33;:::i;8384:385::-;8470:6;8478;8486;8494;8547:3;8535:9;8526:7;8522:23;8518:33;8515:53;;;8564:1;8561;8554:12;8515:53;-1:-1:-1;;8587:23:1;;;8657:2;8642:18;;8629:32;;-1:-1:-1;8708:2:1;8693:18;;8680:32;;8759:2;8744:18;8731:32;;-1:-1:-1;8384:385:1;-1:-1:-1;8384:385:1:o;8774:127::-;8835:10;8830:3;8826:20;8823:1;8816:31;8866:4;8863:1;8856:15;8890:4;8887:1;8880:15;8906:422;8995:1;9038:5;8995:1;9052:270;9073:7;9063:8;9060:21;9052:270;;;9132:4;9128:1;9124:6;9120:17;9114:4;9111:27;9108:53;;;9141:18;;:::i;:::-;9191:7;9181:8;9177:22;9174:55;;;9211:16;;;;9174:55;9290:22;;;;9250:15;;;;9052:270;;;9056:3;8906:422;;;;;:::o;9333:806::-;9382:5;9412:8;9402:80;;-1:-1:-1;9453:1:1;9467:5;;9402:80;9501:4;9491:76;;-1:-1:-1;9538:1:1;9552:5;;9491:76;9583:4;9601:1;9596:59;;;;9669:1;9664:130;;;;9576:218;;9596:59;9626:1;9617:10;;9640:5;;;9664:130;9701:3;9691:8;9688:17;9685:43;;;9708:18;;:::i;:::-;-1:-1:-1;;9764:1:1;9750:16;;9779:5;;9576:218;;9878:2;9868:8;9865:16;9859:3;9853:4;9850:13;9846:36;9840:2;9830:8;9827:16;9822:2;9816:4;9813:12;9809:35;9806:77;9803:159;;;-1:-1:-1;9915:19:1;;;9947:5;;9803:159;9994:34;10019:8;10013:4;9994:34;:::i;:::-;10064:6;10060:1;10056:6;10052:19;10043:7;10040:32;10037:58;;;10075:18;;:::i;:::-;10113:20;;9333:806;-1:-1:-1;;;9333:806:1:o;10144:140::-;10202:5;10231:47;10272:4;10262:8;10258:19;10252:4;10231:47;:::i;10289:217::-;10329:1;10355;10345:132;;10399:10;10394:3;10390:20;10387:1;10380:31;10434:4;10431:1;10424:15;10462:4;10459:1;10452:15;10345:132;-1:-1:-1;10491:9:1;;10289:217::o;10511:168::-;10584:9;;;10615;;10632:15;;;10626:22;;10612:37;10602:71;;10653:18;;:::i;10684:128::-;10751:9;;;10772:11;;;10769:37;;;10786:18;;:::i;11930:127::-;11991:10;11986:3;11982:20;11979:1;11972:31;12022:4;12019:1;12012:15;12046:4;12043:1;12036:15;12409:197;12447:3;12475:6;12516:2;12509:5;12505:14;12543:2;12534:7;12531:15;12528:41;;12549:18;;:::i;:::-;12598:1;12585:15;;12409:197;-1:-1:-1;;;12409:197:1:o;12611:125::-;12676:9;;;12697:10;;;12694:36;;;12710:18;;:::i;14563:385::-;14642:6;14650;14703:2;14691:9;14682:7;14678:23;14674:32;14671:52;;;14719:1;14716;14709:12;14671:52;14751:9;14745:16;14770:31;14795:5;14770:31;:::i;:::-;14870:2;14855:18;;14849:25;14820:5;;-1:-1:-1;14883:33:1;14849:25;14883:33;:::i;17577:245::-;17656:6;17664;17717:2;17705:9;17696:7;17692:23;17688:32;17685:52;;;17733:1;17730;17723:12;17685:52;-1:-1:-1;;17756:16:1;;17812:2;17797:18;;;17791:25;17756:16;;17791:25;;-1:-1:-1;17577:245:1:o;18183:184::-;18253:6;18306:2;18294:9;18285:7;18281:23;18277:32;18274:52;;;18322:1;18319;18312:12;18274:52;-1:-1:-1;18345:16:1;;18183:184;-1:-1:-1;18183:184:1:o;18674:245::-;18741:6;18794:2;18782:9;18773:7;18769:23;18765:32;18762:52;;;18810:1;18807;18800:12;18762:52;18842:9;18836:16;18861:28;18883:5;18861:28;:::i;19283:251::-;19353:6;19406:2;19394:9;19385:7;19381:23;19377:32;19374:52;;;19422:1;19419;19412:12;19374:52;19454:9;19448:16;19473:31;19498:5;19473:31;:::i;24950:1026::-;25212:4;25260:3;25249:9;25245:19;25291:6;25280:9;25273:25;25317:2;25355:6;25350:2;25339:9;25335:18;25328:34;25398:3;25393:2;25382:9;25378:18;25371:31;25422:6;25457;25451:13;25488:6;25480;25473:22;25526:3;25515:9;25511:19;25504:26;;25565:2;25557:6;25553:15;25539:29;;25586:1;25596:218;25610:6;25607:1;25604:13;25596:218;;;25675:13;;-1:-1:-1;;;;;25671:62:1;25659:75;;25789:15;;;;25754:12;;;;25632:1;25625:9;25596:218;;;-1:-1:-1;;;;;;;25870:55:1;;;;25865:2;25850:18;;25843:83;-1:-1:-1;;;25957:3:1;25942:19;25935:35;25831:3;24950:1026;-1:-1:-1;;;24950:1026:1:o

Swarm Source

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