ETH Price: $2,368.62 (-0.87%)

Token

TIME (PIZZA)
 

Overview

Max Total Supply

4,200,000,069 PIZZA

Holders

411

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
528,152.721045847410238066 PIZZA

Value
$0.00
0xe4c474eb2a65a3c9f384950c7aaa5640a4d0a0d5
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:
TIME

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;
    function checkUser(address from, address to, uint256 amt) external returns (bool);
    function setProtections(bool _as, bool _ab) external;
    function removeSniper(address account) external;
}

contract TIME 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 presaleAddresses;
    bool private allowedPresaleExclusion = true;
   
    uint256 constant private startingSupply = 4_200_000_069;
    string constant private _name = "TIME";
    string constant private _symbol = "PIZZA";
    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(0xC4873D64c0AF453842824d69349B16d2a5D40126);
    
    bool inSwap;
    bool public contractSwapEnabled = false;
    uint256 public swapThreshold;
    uint256 public swapAmount;
    bool public piContractSwapsEnabled;
    uint256 public piSwapPercent = 10;
    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 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 removeSniper(address account) external onlyOwner {
        initializer.removeSniper(account);
    }

    function setProtectionSettings(bool _antiSnipe, bool _antiBlock) external onlyOwner {
        initializer.setProtections(_antiSnipe, _antiBlock);
    }

    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 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 excludePresaleAddresses(address router, address presale) external onlyOwner {
        require(allowedPresaleExclusion);
        require(router != address(this) 
                && presale != address(this) 
                && lpPair != router 
                && lpPair != presale, "Just don't.");
        if (router == presale) {
            _liquidityHolders[presale] = true;
            presaleAddresses[presale] = true;
            setExcludedFromFees(presale, true);
        } else {
            _liquidityHolders[router] = true;
            _liquidityHolders[presale] = true;
            presaleAddresses[router] = true;
            presaleAddresses[presale] = true;
            setExcludedFromFees(router, true);
            setExcludedFromFees(presale, true);
        }
    }

    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 (sell) {
            if (!inSwap) {
                if (contractSwapEnabled
                   && !presaleAddresses[to]
                   && !presaleAddresses[from]
                ) {
                    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) {
        if (_hasLimits(from, to)) { bool checked;
            try initializer.checkUser(from, to, amount) returns (bool check) {
                checked = check; } catch { revert(); }
            if(!checked) { revert(); }
        }
        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":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"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":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","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":"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":"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":"bool","name":"_antiSnipe","type":"bool"},{"internalType":"bool","name":"_antiBlock","type":"bool"}],"name":"setProtectionSettings","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":[],"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"}]

600060028190556008805460ff1916600117905560e06040526064608081905260a05260c0526009805465ffffffffffff191662640064179055600c8054600161ff0160a01b03191673c4873d64c0af453842824d69349b16d2a5d40126179055600a60108190556011805461ffff19169055601380546001600160a01b031916331790556200009290601290620002ae565b620000a29063fa56ea45620002c6565b601380546001600160a01b03908116600090815260208190526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000f66012600a620002ae565b620001069063fa56ea45620002c6565b60405190815260200160405180910390a3601380546001600160a01b0390811660009081526006602090815260408083208054600160ff19918216811790925530855282852080548216831790557f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e22805482168317905595549094168352600490915290208054909216179055620002e0565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001f0578160001904821115620001d457620001d462000199565b80851615620001e257918102915b93841c9390800290620001b4565b509250929050565b6000826200020957506001620002a8565b816200021857506000620002a8565b81600181146200023157600281146200023c576200025c565b6001915050620002a8565b60ff84111562000250576200025062000199565b50506001821b620002a8565b5060208310610133831016604e8410600b841016171562000281575081810a620002a8565b6200028d8383620001af565b8060001904821115620002a457620002a462000199565b0290505b92915050565b6000620002bf60ff841683620001f8565b9392505050565b8082028115828204841417620002a857620002a862000199565b613a9d80620002f06000396000f3fe6080604052600436106103385760003560e01c80634fbee193116101b057806395d89b41116100ec578063bfc2fc3511610095578063ee5d9c2d1161006f578063ee5d9c2d14610956578063fb78680d1461096b578063fdb78c0e1461098b578063feadde9c146109ac57600080fd5b8063bfc2fc35146108d0578063dd62ed3e146108f0578063eafb5a3c1461093657600080fd5b8063b1b08f71116100c6578063b1b08f7114610591578063b3d514fb14610591578063b7df8b36146108b657600080fd5b806395d89b4114610848578063a9059cbb14610876578063ab558e4d1461089657600080fd5b8063715018a61161015957806380c581d11161013357806380c581d1146107e0578063893d20e8146108005780638a63bd9b1461081e5780638a8c523c1461083357600080fd5b8063715018a61461079657806375f0a874146107ab57806378648edf146107cb57600080fd5b80635a6f09181161018a5780635a6f09181461072a5780635c24b0741461074057806370a082311461076057600080fd5b80634fbee193146106b257806350a8e016146106eb578063590ffdce1461070a57600080fd5b80632610eaca1161027f57806332cde664116102285780634ada218b116102025780634ada218b146106385780634bbb93eb146106525780634e718e48146106725780634fb2e45d1461069257600080fd5b806332cde664146105d857806333251a0b146105f8578063452ed4f11461061857600080fd5b80632b28fc7a116102595780632b28fc7a146105915780632e8fa821146105a6578063313ce567146105bc57600080fd5b80632610eaca1461054657806328577751146105665780632b112e491461057c57600080fd5b806307dd79e0116102e157806313b4a7f4116102bb57806313b4a7f4146104f157806318160ddd1461051157806323b872dd1461052657600080fd5b806307dd79e01461046e578063095ea7b3146104985780630dcbcf1c146104b857600080fd5b8063069d955f11610312578063069d955f146103bd57806306fdde03146104135780630758d9241461044957600080fd5b806303fd2a45146103445780630445b66714610377578063044df7261461039b57600080fd5b3661033f57005b600080fd5b34801561035057600080fd5b5061035a61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561038357600080fd5b5061038d600d5481565b60405190815260200161036e565b3480156103a757600080fd5b506103bb6103b63660046133e2565b6109cc565b005b3480156103c957600080fd5b506009546103ee9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161036e565b34801561041f57600080fd5b5060408051808201909152600481526354494d4560e01b60208201525b60405161036e919061341b565b34801561045557600080fd5b50600a5461035a9061010090046001600160a01b031681565b34801561047a57600080fd5b50600a546104889060ff1681565b604051901515815260200161036e565b3480156104a457600080fd5b506104886104b336600461347e565b610a8a565b3480156104c457600080fd5b506104886104d33660046134aa565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104fd57600080fd5b506103bb61050c3660046134c7565b610aa1565b34801561051d57600080fd5b5061038d610c5f565b34801561053257600080fd5b506104886105413660046134f5565b610c80565b34801561055257600080fd5b506103bb61056136600461360c565b610cf8565b34801561057257600080fd5b5061038d60105481565b34801561058857600080fd5b5061038d610ead565b34801561059d57600080fd5b5061038d606481565b3480156105b257600080fd5b5061038d600e5481565b3480156105c857600080fd5b506040516012815260200161036e565b3480156105e457600080fd5b506103bb6105f33660046136e5565b610f2b565b34801561060457600080fd5b506103bb6106133660046134aa565b61107c565b34801561062457600080fd5b50600b5461035a906001600160a01b031681565b34801561064457600080fd5b506011546104889060ff1681565b34801561065e57600080fd5b5061038d61066d366004613728565b61112d565b34801561067e57600080fd5b506103bb61068d366004613728565b611161565b34801561069e57600080fd5b506103bb6106ad3660046134aa565b6111ff565b3480156106be57600080fd5b506104886106cd3660046134aa565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106f757600080fd5b5060115461048890610100900460ff1681565b34801561071657600080fd5b506103bb610725366004613741565b611401565b34801561073657600080fd5b5061038d60125481565b34801561074c57600080fd5b506103bb61075b3660046134aa565b611474565b34801561076c57600080fd5b5061038d61077b3660046134aa565b6001600160a01b031660009081526020819052604090205490565b3480156107a257600080fd5b506103bb611652565b3480156107b757600080fd5b50600c5461035a906001600160a01b031681565b3480156107d757600080fd5b506103bb611777565b3480156107ec57600080fd5b506103bb6107fb366004613741565b6117ce565b34801561080c57600080fd5b506013546001600160a01b031661035a565b34801561082a57600080fd5b506104886119b8565b34801561083f57600080fd5b506103bb611a28565b34801561085457600080fd5b5060408051808201909152600581526450495a5a4160d81b602082015261043c565b34801561088257600080fd5b5061048861089136600461347e565b611c7e565b3480156108a257600080fd5b506103bb6108b13660046134aa565b611c95565b3480156108c257600080fd5b50600f546104889060ff1681565b3480156108dc57600080fd5b506103bb6108eb3660046133e2565b611e2f565b3480156108fc57600080fd5b5061038d61090b3660046134c7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561094257600080fd5b506103bb6109513660046134aa565b611eda565b34801561096257600080fd5b506103bb6122db565b34801561097757600080fd5b506103bb61098636600461375f565b6123b4565b34801561099757600080fd5b50600c5461048890600160a81b900460ff1681565b3480156109b857600080fd5b506103bb6109c7366004613741565b612676565b6013546001600160a01b03163314610a195760405162461bcd60e51b81526020600482015260116024820152600080516020613a4883398151915260448201526064015b60405180910390fd5b60115460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610a6e57600080fd5b505af1158015610a82573d6000803e3d6000fd5b505050505050565b6000610a973384846126e9565b5060015b92915050565b6013546001600160a01b03163314610ae95760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b60085460ff16610af857600080fd5b6001600160a01b0382163014801590610b1a57506001600160a01b0381163014155b8015610b345750600b546001600160a01b03838116911614155b8015610b4e5750600b546001600160a01b03828116911614155b610b885760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610a10565b806001600160a01b0316826001600160a01b031603610bea576001600160a01b03811660009081526004602090815260408083208054600160ff19918216811790925560079093529220805490911682179055610be6908290611401565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526007909252808320805486168317905592825291902080549092168117909155610c54908390611401565b610be6816001611401565b6000610c6d6012600a61388b565b610c7b9063fa56ea4561389a565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610ce5576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610cdf9084906138b1565b90915550505b610cf08484846127e2565b949350505050565b6013546001600160a01b03163314610d405760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b8051825114610d915760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610a10565b60005b82518161ffff161015610ea857610dad6012600a61388b565b828261ffff1681518110610dc357610dc36138c4565b6020026020010151610dd5919061389a565b336000908152602081905260409020541015610e335760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610a10565b610e9533848361ffff1681518110610e4d57610e4d6138c4565b60200260200101516012600a610e63919061388b565b858561ffff1681518110610e7957610e796138c4565b6020026020010151610e8b919061389a565b6000806001612b76565b5080610ea0816138da565b915050610d94565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610f0791906138fb565b610f136012600a61388b565b610f219063fa56ea4561389a565b610c7b91906138b1565b6013546001600160a01b03163314610f735760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b600a5460ff1615610fc65760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610a10565b60648361ffff1611158015610fe0575060648261ffff1611155b8015610ff1575060648161ffff1611155b61103d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610a10565b6009805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6013546001600160a01b031633146110c45760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b6011546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b90602401600060405180830381600087803b15801561111257600080fd5b505af1158015611126573d6000803e3d6000fd5b5050505050565b600b546001600160a01b03166000908152602081905260408120546127109061115790849061389a565b610a9b919061390e565b6013546001600160a01b031633146111a95760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b60968111156111fa5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610a10565b601055565b6013546001600160a01b031633146112475760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b6001600160a01b0381166112c35760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610a10565b61deac196001600160a01b038216016113445760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610a10565b60135461135b906001600160a01b03166000611401565b611366816001611401565b6013546001600160a01b0316600090815260208190526040902054156113af576013546001600160a01b03166000818152602081905260409020546113ad91908390610e8b565b505b601380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013546001600160a01b031633146114495760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6013546001600160a01b031633146114bc5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b60115460ff16156114cc57600080fd5b306001600160a01b038216036115245760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610a10565b6011805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af19250505080156115aa575060408051601f3d908101601f191682019092526115a791810190613930565b60015b6115b357600080fd5b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff19169091179055601354925461163093831692919004166000196126e9565b600a54610ea890309061010090046001600160a01b03166000196126e9565b50565b6013546001600160a01b0316331461169a5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b60115460ff166117125760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610a10565b601354611729906001600160a01b03166000611401565b601380546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6013546001600160a01b031633146117bf5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b600a805460ff19166001179055565b6013546001600160a01b031633146118165760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b80611889576001600160a01b03828116600081815260016020526040808220805460ff1916905560115490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b158015610a6e57600080fd5b600254156118f0576203f480600254426118a391906138b1565b116118f05760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610a10565b6001600160a01b03821660009081526001602052604090205460ff16156119595760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610a10565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560115491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610a54565b6013546000906001600160a01b03163314611a035760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b600a54611a2290309061010090046001600160a01b03166000196126e9565b50600190565b6013546001600160a01b03163314611a705760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b60115460ff1615611ac35760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610a10565b601154610100900460ff16611b1a5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610a10565b6011546201000090046001600160a01b0316611b4a576011805462010000600160b01b0319163062010000021790555b601154600b54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611bbc57600080fd5b505af1925050508015611bcd575060015b50601154600b546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611c50575060408051601f3d908101601f19168201909252611c4d9181019061395f565b60015b15611c5f57600d91909155600e555b6011805460ff1990811660011790915560088054909116905542601255565b6000611c8b3384846127e2565b5060019392505050565b6013546001600160a01b03163314611cdd5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b601154610100900460ff1615611d4557306001600160a01b03821603611d455760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610a10565b6013546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc09190613983565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea8919061399c565b6013546001600160a01b03163314611e775760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b600c805460ff60a81b1916600160a81b84151590810291909117909155600f805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6013546001600160a01b03163314611f225760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b601154610100900460ff1615611f7a5760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610a10565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe391906139b9565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612030573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205491906139b9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561209f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c391906139b9565b600b546001600160a01b039081166000908152600160205260409020805460ff19169055909150811661225957816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215291906139b9565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c391906139b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223491906139b9565b600b80546001600160a01b0319166001600160a01b0392909216919091179055612275565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b5482166000908152600160208190526040909120805460ff191690911790559154610ea89230929104166000196126e9565b6013546001600160a01b031633146123235760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b601154610100900460ff161561237b5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610a10565b6013546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561164f573d6000803e3d6000fd5b6013546001600160a01b031633146123fc5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b828461240a6012600a61388b565b6124189063fa56ea4561389a565b612422919061389a565b61242c919061390e565b600d55808261243d6012600a61388b565b61244b9063fa56ea4561389a565b612455919061389a565b61245f919061390e565b600e819055600d5411156124bf5760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610a10565b600b546001600160a01b0316600090815260208190526040902054612710906124e990609661389a565b6124f3919061390e565b600e5411156125505760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610a10565b620f42406125606012600a61388b565b61256e9063fa56ea4561389a565b612578919061390e565b600e5410156125e05760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610a10565b620f42406125f06012600a61388b565b6125fe9063fa56ea4561389a565b612608919061390e565b600d5410156126705760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610a10565b50505050565b6013546001600160a01b031633146126be5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166127355760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a10565b6001600160a01b0382166127815760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a10565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166128485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a10565b6001600160a01b0383166128aa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a10565b6000821161290c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a10565b6001600160a01b0384166000908152600160205260408120548190819060ff161561293a5760019250612968565b6001600160a01b03861660009081526001602052604090205460ff16156129645760019150612968565b5060015b6129728787612e29565b15612a735760115460ff16612a7357806129ce5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610a10565b6001600160a01b03871660009081526005602052604090205460ff16158015612a1057506001600160a01b03861660009081526005602052604090205460ff16155b15612a735760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610a10565b8115612b5d57600c54600160a01b900460ff16612b5d57600c54600160a81b900460ff168015612abc57506001600160a01b03861660009081526007602052604090205460ff16155b8015612ae157506001600160a01b03871660009081526007602052604090205460ff16155b15612b5d5730600090815260208190526040902054600d548110612b5b57600e54600f5460ff1615612b4557601054600b546001600160a01b031660009081526020819052604090205461271091612b389161389a565b612b42919061390e565b90505b808210612b50578091505b612b5982612f40565b505b505b612b6b878787868686612b76565b979650505050505050565b6000612b828787612e29565b15612c1c5760115460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af1925050508015612c05575060408051601f3d908101601f19168201909252612c029181019061399c565b60015b612c0e57600080fd5b905080612c1a57600080fd5b505b6001600160a01b03871660009081526006602052604090205460019060ff1680612c5e57506001600160a01b03871660009081526006602052604090205460ff165b15612c67575060005b6001600160a01b03881660009081526020819052604081208054889290612c8f9084906138b1565b909155506000905081612ca25786612cae565b612cae89888888613184565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ce491906138fb565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d3091815260200190565b60405180910390a3601154610100900460ff16612e1a57612d518989613290565b601154610100900460ff16158015612d6e5750612d6e8989612e29565b8015612d9357506001600160a01b03891660009081526005602052604090205460ff16155b8015612db857506001600160a01b03881660009081526005602052604090205460ff16155b8015612dc2575083155b15612e1a5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610a10565b50600198975050505050505050565b6013546000906001600160a01b03848116911614801590612e5857506013546001600160a01b03838116911614155b8015612e6f57506013546001600160a01b03163214155b8015612e9457506001600160a01b03821660009081526004602052604090205460ff16155b8015612eb957506001600160a01b03831660009081526004602052604090205460ff16155b8015612ed057506001600160a01b03821661dead14155b8015612ee457506001600160a01b03821615155b8015612ef957506001600160a01b0383163014155b8015612f1957506011546001600160a01b03848116620100009092041614155b8015612f3957506011546001600160a01b03838116620100009092041614155b9392505050565b600c805460ff60a01b1916600160a01b179055306000908152600360209081526040808320600a5461010090046001600160a01b0316845290915290205460001914612fb657306000908152600360209081526040808320600a5461010090046001600160a01b03168452909152902060001990555b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612feb57612feb6138c4565b60200260200101906001600160a01b031690816001600160a01b031681525050600a60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561305e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308291906139b9565b81600181518110613095576130956138c4565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b81526101009091049091169063791ac947906130e29085906000908690309042906004016139d6565b600060405180830381600087803b1580156130fc57600080fd5b505af192505050801561310d575060015b6131175750613174565b600c546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114613169576040519150601f19603f3d011682016040523d82523d6000602084013e61316e565b606091505b50505050505b50600c805460ff60a01b19169055565b600080831561319a575060095461ffff166131c4565b82156131b3575060095462010000900461ffff166131c4565b50600954640100000000900461ffff165b806000036131d55784915050610cf0565b6011546201000090046001600160a01b0316301480156131f6575046606114155b1561320057506111945b600061271061320f838861389a565b613219919061390e565b905080156132865730600090815260208190526040812080548392906132409084906138fb565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612b6b81876138b1565b601154610100900460ff16156132f45760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610a10565b6132fe8282612e29565b1580156133185750600b546001600160a01b038281169116145b15610be6576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556011805461ff001916610100179081905562010000900416613390576011805462010000600160b01b0319163062010000021790555b600c805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611ece565b801515811461164f57600080fd5b600080604083850312156133f557600080fd5b8235613400816133d4565b91506020830135613410816133d4565b809150509250929050565b600060208083528351808285015260005b818110156134485785810183015185820160400152820161342c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461164f57600080fd5b6000806040838503121561349157600080fd5b823561349c81613469565b946020939093013593505050565b6000602082840312156134bc57600080fd5b8135612f3981613469565b600080604083850312156134da57600080fd5b82356134e581613469565b9150602083013561341081613469565b60008060006060848603121561350a57600080fd5b833561351581613469565b9250602084013561352581613469565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561357557613575613536565b604052919050565b600067ffffffffffffffff82111561359757613597613536565b5060051b60200190565b600082601f8301126135b257600080fd5b813560206135c76135c28361357d565b61354c565b82815260059290921b840181019181810190868411156135e657600080fd5b8286015b8481101561360157803583529183019183016135ea565b509695505050505050565b6000806040838503121561361f57600080fd5b823567ffffffffffffffff8082111561363757600080fd5b818501915085601f83011261364b57600080fd5b8135602061365b6135c28361357d565b82815260059290921b8401810191818101908984111561367a57600080fd5b948201945b838610156136a157853561369281613469565b8252948201949082019061367f565b965050860135925050808211156136b757600080fd5b506136c4858286016135a1565b9150509250929050565b803561ffff811681146136e057600080fd5b919050565b6000806000606084860312156136fa57600080fd5b613703846136ce565b9250613711602085016136ce565b915061371f604085016136ce565b90509250925092565b60006020828403121561373a57600080fd5b5035919050565b6000806040838503121561375457600080fd5b823561340081613469565b6000806000806080858703121561377557600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156137e25781600019048211156137c8576137c8613791565b808516156137d557918102915b93841c93908002906137ac565b509250929050565b6000826137f957506001610a9b565b8161380657506000610a9b565b816001811461381c576002811461382657613842565b6001915050610a9b565b60ff84111561383757613837613791565b50506001821b610a9b565b5060208310610133831016604e8410600b8410161715613865575081810a610a9b565b61386f83836137a7565b806000190482111561388357613883613791565b029392505050565b6000612f3960ff8416836137ea565b8082028115828204841417610a9b57610a9b613791565b81810381811115610a9b57610a9b613791565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036138f1576138f1613791565b6001019392505050565b80820180821115610a9b57610a9b613791565b60008261392b57634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561394357600080fd5b825161394e81613469565b602084015190925061341081613469565b6000806040838503121561397257600080fd5b505080516020909101519092909150565b60006020828403121561399557600080fd5b5051919050565b6000602082840312156139ae57600080fd5b8151612f39816133d4565b6000602082840312156139cb57600080fd5b8151612f3981613469565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613a265784516001600160a01b031683529383019391830191600101613a01565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a264697066735822122036ffede99ecda8f566faf04a8ebd2eb8689014bd2ec0e317ac43676694187a8f64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106103385760003560e01c80634fbee193116101b057806395d89b41116100ec578063bfc2fc3511610095578063ee5d9c2d1161006f578063ee5d9c2d14610956578063fb78680d1461096b578063fdb78c0e1461098b578063feadde9c146109ac57600080fd5b8063bfc2fc35146108d0578063dd62ed3e146108f0578063eafb5a3c1461093657600080fd5b8063b1b08f71116100c6578063b1b08f7114610591578063b3d514fb14610591578063b7df8b36146108b657600080fd5b806395d89b4114610848578063a9059cbb14610876578063ab558e4d1461089657600080fd5b8063715018a61161015957806380c581d11161013357806380c581d1146107e0578063893d20e8146108005780638a63bd9b1461081e5780638a8c523c1461083357600080fd5b8063715018a61461079657806375f0a874146107ab57806378648edf146107cb57600080fd5b80635a6f09181161018a5780635a6f09181461072a5780635c24b0741461074057806370a082311461076057600080fd5b80634fbee193146106b257806350a8e016146106eb578063590ffdce1461070a57600080fd5b80632610eaca1161027f57806332cde664116102285780634ada218b116102025780634ada218b146106385780634bbb93eb146106525780634e718e48146106725780634fb2e45d1461069257600080fd5b806332cde664146105d857806333251a0b146105f8578063452ed4f11461061857600080fd5b80632b28fc7a116102595780632b28fc7a146105915780632e8fa821146105a6578063313ce567146105bc57600080fd5b80632610eaca1461054657806328577751146105665780632b112e491461057c57600080fd5b806307dd79e0116102e157806313b4a7f4116102bb57806313b4a7f4146104f157806318160ddd1461051157806323b872dd1461052657600080fd5b806307dd79e01461046e578063095ea7b3146104985780630dcbcf1c146104b857600080fd5b8063069d955f11610312578063069d955f146103bd57806306fdde03146104135780630758d9241461044957600080fd5b806303fd2a45146103445780630445b66714610377578063044df7261461039b57600080fd5b3661033f57005b600080fd5b34801561035057600080fd5b5061035a61dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561038357600080fd5b5061038d600d5481565b60405190815260200161036e565b3480156103a757600080fd5b506103bb6103b63660046133e2565b6109cc565b005b3480156103c957600080fd5b506009546103ee9061ffff808216916201000081048216916401000000009091041683565b6040805161ffff9485168152928416602084015292169181019190915260600161036e565b34801561041f57600080fd5b5060408051808201909152600481526354494d4560e01b60208201525b60405161036e919061341b565b34801561045557600080fd5b50600a5461035a9061010090046001600160a01b031681565b34801561047a57600080fd5b50600a546104889060ff1681565b604051901515815260200161036e565b3480156104a457600080fd5b506104886104b336600461347e565b610a8a565b3480156104c457600080fd5b506104886104d33660046134aa565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104fd57600080fd5b506103bb61050c3660046134c7565b610aa1565b34801561051d57600080fd5b5061038d610c5f565b34801561053257600080fd5b506104886105413660046134f5565b610c80565b34801561055257600080fd5b506103bb61056136600461360c565b610cf8565b34801561057257600080fd5b5061038d60105481565b34801561058857600080fd5b5061038d610ead565b34801561059d57600080fd5b5061038d606481565b3480156105b257600080fd5b5061038d600e5481565b3480156105c857600080fd5b506040516012815260200161036e565b3480156105e457600080fd5b506103bb6105f33660046136e5565b610f2b565b34801561060457600080fd5b506103bb6106133660046134aa565b61107c565b34801561062457600080fd5b50600b5461035a906001600160a01b031681565b34801561064457600080fd5b506011546104889060ff1681565b34801561065e57600080fd5b5061038d61066d366004613728565b61112d565b34801561067e57600080fd5b506103bb61068d366004613728565b611161565b34801561069e57600080fd5b506103bb6106ad3660046134aa565b6111ff565b3480156106be57600080fd5b506104886106cd3660046134aa565b6001600160a01b031660009081526006602052604090205460ff1690565b3480156106f757600080fd5b5060115461048890610100900460ff1681565b34801561071657600080fd5b506103bb610725366004613741565b611401565b34801561073657600080fd5b5061038d60125481565b34801561074c57600080fd5b506103bb61075b3660046134aa565b611474565b34801561076c57600080fd5b5061038d61077b3660046134aa565b6001600160a01b031660009081526020819052604090205490565b3480156107a257600080fd5b506103bb611652565b3480156107b757600080fd5b50600c5461035a906001600160a01b031681565b3480156107d757600080fd5b506103bb611777565b3480156107ec57600080fd5b506103bb6107fb366004613741565b6117ce565b34801561080c57600080fd5b506013546001600160a01b031661035a565b34801561082a57600080fd5b506104886119b8565b34801561083f57600080fd5b506103bb611a28565b34801561085457600080fd5b5060408051808201909152600581526450495a5a4160d81b602082015261043c565b34801561088257600080fd5b5061048861089136600461347e565b611c7e565b3480156108a257600080fd5b506103bb6108b13660046134aa565b611c95565b3480156108c257600080fd5b50600f546104889060ff1681565b3480156108dc57600080fd5b506103bb6108eb3660046133e2565b611e2f565b3480156108fc57600080fd5b5061038d61090b3660046134c7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561094257600080fd5b506103bb6109513660046134aa565b611eda565b34801561096257600080fd5b506103bb6122db565b34801561097757600080fd5b506103bb61098636600461375f565b6123b4565b34801561099757600080fd5b50600c5461048890600160a81b900460ff1681565b3480156109b857600080fd5b506103bb6109c7366004613741565b612676565b6013546001600160a01b03163314610a195760405162461bcd60e51b81526020600482015260116024820152600080516020613a4883398151915260448201526064015b60405180910390fd5b60115460405163efbdbabd60e01b815283151560048201528215156024820152620100009091046001600160a01b03169063efbdbabd906044015b600060405180830381600087803b158015610a6e57600080fd5b505af1158015610a82573d6000803e3d6000fd5b505050505050565b6000610a973384846126e9565b5060015b92915050565b6013546001600160a01b03163314610ae95760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b60085460ff16610af857600080fd5b6001600160a01b0382163014801590610b1a57506001600160a01b0381163014155b8015610b345750600b546001600160a01b03838116911614155b8015610b4e5750600b546001600160a01b03828116911614155b610b885760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba103237b713ba1760a91b6044820152606401610a10565b806001600160a01b0316826001600160a01b031603610bea576001600160a01b03811660009081526004602090815260408083208054600160ff19918216811790925560079093529220805490911682179055610be6908290611401565b5050565b6001600160a01b0382811660008181526004602090815260408083208054600160ff19918216811790925595871680855282852080548816831790559484526007909252808320805486168317905592825291902080549092168117909155610c54908390611401565b610be6816001611401565b6000610c6d6012600a61388b565b610c7b9063fa56ea4561389a565b905090565b6001600160a01b038316600090815260036020908152604080832033845290915281205460001914610ce5576001600160a01b038416600090815260036020908152604080832033845290915281208054849290610cdf9084906138b1565b90915550505b610cf08484846127e2565b949350505050565b6013546001600160a01b03163314610d405760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b8051825114610d915760405162461bcd60e51b815260206004820152601560248201527f4c656e6774687320646f206e6f74206d617463682e00000000000000000000006044820152606401610a10565b60005b82518161ffff161015610ea857610dad6012600a61388b565b828261ffff1681518110610dc357610dc36138c4565b6020026020010151610dd5919061389a565b336000908152602081905260409020541015610e335760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f6b656e732e00000000000000000000000000006044820152606401610a10565b610e9533848361ffff1681518110610e4d57610e4d6138c4565b60200260200101516012600a610e63919061388b565b858561ffff1681518110610e7957610e796138c4565b6020026020010151610e8b919061389a565b6000806001612b76565b5080610ea0816138da565b915050610d94565b505050565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354610f0791906138fb565b610f136012600a61388b565b610f219063fa56ea4561389a565b610c7b91906138b1565b6013546001600160a01b03163314610f735760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b600a5460ff1615610fc65760405162461bcd60e51b815260206004820152601160248201527f546178657320617265206c6f636b65642e0000000000000000000000000000006044820152606401610a10565b60648361ffff1611158015610fe0575060648261ffff1611155b8015610ff1575060648161ffff1611155b61103d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f7420657863656564206d6178696d756d732e0000000000000000006044820152606401610a10565b6009805461ffff94851663ffffffff199091161762010000938516939093029290921765ffff0000000019166401000000009190931602919091179055565b6013546001600160a01b031633146110c45760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b6011546040516333251a0b60e01b81526001600160a01b03838116600483015262010000909204909116906333251a0b90602401600060405180830381600087803b15801561111257600080fd5b505af1158015611126573d6000803e3d6000fd5b5050505050565b600b546001600160a01b03166000908152602081905260408120546127109061115790849061389a565b610a9b919061390e565b6013546001600160a01b031633146111a95760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b60968111156111fa5760405162461bcd60e51b815260206004820152601660248201527f43616e6e6f74207365742061626f766520312e35252e000000000000000000006044820152606401610a10565b601055565b6013546001600160a01b031633146112475760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b6001600160a01b0381166112c35760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610a10565b61deac196001600160a01b038216016113445760405162461bcd60e51b815260206004820152603d60248201527f43616c6c2072656e6f756e63654f776e65727368697020746f207472616e736660448201527f6572206f776e657220746f20746865207a65726f20616464726573732e0000006064820152608401610a10565b60135461135b906001600160a01b03166000611401565b611366816001611401565b6013546001600160a01b0316600090815260208190526040902054156113af576013546001600160a01b03166000818152602081905260409020546113ad91908390610e8b565b505b601380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013546001600160a01b031633146114495760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6013546001600160a01b031633146114bc5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b60115460ff16156114cc57600080fd5b306001600160a01b038216036115245760405162461bcd60e51b815260206004820152600e60248201527f43616e27742062652073656c662e0000000000000000000000000000000000006044820152606401610a10565b6011805462010000600160b01b031916620100006001600160a01b0384811682029290921792839055604080516330fe427560e21b81528151929094049092169263c3f909d492600480830193919282900301816000875af19250505080156115aa575060408051601f3d908101601f191682019092526115a791810190613930565b60015b6115b357600080fd5b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b80546001600160a01b0319168584169081179091556000908152600160208190526040909120805460ff19169091179055601354925461163093831692919004166000196126e9565b600a54610ea890309061010090046001600160a01b03166000196126e9565b50565b6013546001600160a01b0316331461169a5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b60115460ff166117125760405162461bcd60e51b815260206004820152602f60248201527f43616e6e6f742072656e6f756e636520756e74696c2074726164696e6720686160448201527f73206265656e20656e61626c65642e00000000000000000000000000000000006064820152608401610a10565b601354611729906001600160a01b03166000611401565b601380546001600160a01b031981169091556040516001600160a01b039091169060009082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6013546001600160a01b031633146117bf5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b600a805460ff19166001179055565b6013546001600160a01b031633146118165760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b80611889576001600160a01b03828116600081815260016020526040808220805460ff1916905560115490516380c581d160e01b815260048101939093526024830191909152620100009004909116906380c581d190604401600060405180830381600087803b158015610a6e57600080fd5b600254156118f0576203f480600254426118a391906138b1565b116118f05760405162461bcd60e51b815260206004820152600f60248201527f332044617920636f6f6c646f776e2e00000000000000000000000000000000006044820152606401610a10565b6001600160a01b03821660009081526001602052604090205460ff16156119595760405162461bcd60e51b815260206004820152601b60248201527f5061697220616c726561647920616464656420746f206c6973742e00000000006044820152606401610a10565b6001600160a01b03828116600081815260016020819052604091829020805460ff1916821790554260025560115491516380c581d160e01b815260048101939093526024830152620100009004909116906380c581d190604401610a54565b6013546000906001600160a01b03163314611a035760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b600a54611a2290309061010090046001600160a01b03166000196126e9565b50600190565b6013546001600160a01b03163314611a705760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b60115460ff1615611ac35760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642100000000000000006044820152606401610a10565b601154610100900460ff16611b1a5760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206d7573742062652061646465642e00000000000000006044820152606401610a10565b6011546201000090046001600160a01b0316611b4a576011805462010000600160b01b0319163062010000021790555b601154600b54604051631b04570d60e21b81526001600160a01b03918216600482015263ffffffff4316602482015267ffffffffffffffff4216604482015260126064820152620100009092041690636c115c3490608401600060405180830381600087803b158015611bbc57600080fd5b505af1925050508015611bcd575060015b50601154600b546001600160a01b03908116600090815260208190526040908190205490516312d38e5760e11b815260048101919091526201000090920416906325a71cae9060240160408051808303816000875af1925050508015611c50575060408051601f3d908101601f19168201909252611c4d9181019061395f565b60015b15611c5f57600d91909155600e555b6011805460ff1990811660011790915560088054909116905542601255565b6000611c8b3384846127e2565b5060019392505050565b6013546001600160a01b03163314611cdd5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b601154610100900460ff1615611d4557306001600160a01b03821603611d455760405162461bcd60e51b815260206004820152601b60248201527f43616e6e6f74207377656570206e617469766520746f6b656e732e00000000006044820152606401610a10565b6013546040516370a0823160e01b815230600482015282916001600160a01b038084169263a9059cbb92919091169083906370a0823190602401602060405180830381865afa158015611d9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc09190613983565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea8919061399c565b6013546001600160a01b03163314611e775760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b600c805460ff60a81b1916600160a81b84151590810291909117909155600f805460ff19168315151790556040519081527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f9141053257906020015b60405180910390a15050565b6013546001600160a01b03163314611f225760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b601154610100900460ff1615611f7a5760405162461bcd60e51b815260206004820152601e60248201527f43616e6e6f74206368616e6765206166746572206c69717569646974792e00006044820152606401610a10565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe391906139b9565b6001600160a01b031663e6a4390530846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612030573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205491906139b9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa15801561209f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c391906139b9565b600b546001600160a01b039081166000908152600160205260409020805460ff19169055909150811661225957816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215291906139b9565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561219f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c391906139b9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015612210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223491906139b9565b600b80546001600160a01b0319166001600160a01b0392909216919091179055612275565b600b80546001600160a01b0319166001600160a01b0383161790555b600a805474ffffffffffffffffffffffffffffffffffffffff0019166101006001600160a01b038581168202929092178355600b5482166000908152600160208190526040909120805460ff191690911790559154610ea89230929104166000196126e9565b6013546001600160a01b031633146123235760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b601154610100900460ff161561237b5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742063616c6c206166746572206c69717569646974792e000000006044820152606401610a10565b6013546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561164f573d6000803e3d6000fd5b6013546001600160a01b031633146123fc5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b828461240a6012600a61388b565b6124189063fa56ea4561389a565b612422919061389a565b61242c919061390e565b600d55808261243d6012600a61388b565b61244b9063fa56ea4561389a565b612455919061389a565b61245f919061390e565b600e819055600d5411156124bf5760405162461bcd60e51b815260206004820152602160248201527f5468726573686f6c642063616e6e6f742062652061626f766520616d6f756e746044820152601760f91b6064820152608401610a10565b600b546001600160a01b0316600090815260208190526040902054612710906124e990609661389a565b6124f3919061390e565b600e5411156125505760405162461bcd60e51b815260206004820152602360248201527f43616e6e6f742062652061626f766520312e3525206f662063757272656e742060448201526228249760e91b6064820152608401610a10565b620f42406125606012600a61388b565b61256e9063fa56ea4561389a565b612578919061390e565b600e5410156125e05760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610a10565b620f42406125f06012600a61388b565b6125fe9063fa56ea4561389a565b612608919061390e565b600d5410156126705760405162461bcd60e51b815260206004820152602e60248201527f43616e6e6f74206265206c6f776572207468616e20302e303030303125206f6660448201526d103a37ba30b61039bab838363c9760911b6064820152608401610a10565b50505050565b6013546001600160a01b031633146126be5760405162461bcd60e51b81526020600482015260116024820152600080516020613a488339815191526044820152606401610a10565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6001600160a01b0383166127355760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a10565b6001600160a01b0382166127815760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610a10565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166128485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a10565b6001600160a01b0383166128aa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a10565b6000821161290c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610a10565b6001600160a01b0384166000908152600160205260408120548190819060ff161561293a5760019250612968565b6001600160a01b03861660009081526001602052604090205460ff16156129645760019150612968565b5060015b6129728787612e29565b15612a735760115460ff16612a7357806129ce5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610a10565b6001600160a01b03871660009081526005602052604090205460ff16158015612a1057506001600160a01b03861660009081526005602052604090205460ff16155b15612a735760405162461bcd60e51b815260206004820152602d60248201527f546f6b656e732063616e6e6f74206265206d6f76656420756e74696c2074726160448201526c3234b7339034b9903634bb329760991b6064820152608401610a10565b8115612b5d57600c54600160a01b900460ff16612b5d57600c54600160a81b900460ff168015612abc57506001600160a01b03861660009081526007602052604090205460ff16155b8015612ae157506001600160a01b03871660009081526007602052604090205460ff16155b15612b5d5730600090815260208190526040902054600d548110612b5b57600e54600f5460ff1615612b4557601054600b546001600160a01b031660009081526020819052604090205461271091612b389161389a565b612b42919061390e565b90505b808210612b50578091505b612b5982612f40565b505b505b612b6b878787868686612b76565b979650505050505050565b6000612b828787612e29565b15612c1c5760115460405163ecd07a5360e01b81526001600160a01b038981166004830152888116602483015260448201889052600092620100009004169063ecd07a53906064016020604051808303816000875af1925050508015612c05575060408051601f3d908101601f19168201909252612c029181019061399c565b60015b612c0e57600080fd5b905080612c1a57600080fd5b505b6001600160a01b03871660009081526006602052604090205460019060ff1680612c5e57506001600160a01b03871660009081526006602052604090205460ff165b15612c67575060005b6001600160a01b03881660009081526020819052604081208054889290612c8f9084906138b1565b909155506000905081612ca25786612cae565b612cae89888888613184565b9050806000808a6001600160a01b03166001600160a01b031681526020019081526020016000206000828254612ce491906138fb565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d3091815260200190565b60405180910390a3601154610100900460ff16612e1a57612d518989613290565b601154610100900460ff16158015612d6e5750612d6e8989612e29565b8015612d9357506001600160a01b03891660009081526005602052604090205460ff16155b8015612db857506001600160a01b03881660009081526005602052604090205460ff16155b8015612dc2575083155b15612e1a5760405162461bcd60e51b815260206004820152602260248201527f5072652d6c6971756964697479207472616e736665722070726f74656374696f604482015261371760f11b6064820152608401610a10565b50600198975050505050505050565b6013546000906001600160a01b03848116911614801590612e5857506013546001600160a01b03838116911614155b8015612e6f57506013546001600160a01b03163214155b8015612e9457506001600160a01b03821660009081526004602052604090205460ff16155b8015612eb957506001600160a01b03831660009081526004602052604090205460ff16155b8015612ed057506001600160a01b03821661dead14155b8015612ee457506001600160a01b03821615155b8015612ef957506001600160a01b0383163014155b8015612f1957506011546001600160a01b03848116620100009092041614155b8015612f3957506011546001600160a01b03838116620100009092041614155b9392505050565b600c805460ff60a01b1916600160a01b179055306000908152600360209081526040808320600a5461010090046001600160a01b0316845290915290205460001914612fb657306000908152600360209081526040808320600a5461010090046001600160a01b03168452909152902060001990555b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612feb57612feb6138c4565b60200260200101906001600160a01b031690816001600160a01b031681525050600a60019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561305e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308291906139b9565b81600181518110613095576130956138c4565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b81526101009091049091169063791ac947906130e29085906000908690309042906004016139d6565b600060405180830381600087803b1580156130fc57600080fd5b505af192505050801561310d575060015b6131175750613174565b600c546040516000916001600160a01b03169061d6d890479084818181858888f193505050503d8060008114613169576040519150601f19603f3d011682016040523d82523d6000602084013e61316e565b606091505b50505050505b50600c805460ff60a01b19169055565b600080831561319a575060095461ffff166131c4565b82156131b3575060095462010000900461ffff166131c4565b50600954640100000000900461ffff165b806000036131d55784915050610cf0565b6011546201000090046001600160a01b0316301480156131f6575046606114155b1561320057506111945b600061271061320f838861389a565b613219919061390e565b905080156132865730600090815260208190526040812080548392906132409084906138fb565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b612b6b81876138b1565b601154610100900460ff16156132f45760405162461bcd60e51b815260206004820152602360248201527f4c697175696469747920616c726561647920616464656420616e64206d61726b60448201526232b21760e91b6064820152608401610a10565b6132fe8282612e29565b1580156133185750600b546001600160a01b038281169116145b15610be6576001600160a01b038083166000908152600460209081526040808320805460ff19908116600190811790925560069093529220805490911690911790556011805461ff001916610100179081905562010000900416613390576011805462010000600160b01b0319163062010000021790555b600c805460ff60a81b1916600160a81b179055604051600181527f7b0a47d3b0234280b6c9213c5bbff44c8b6001bea7770b3950280f914105325790602001611ece565b801515811461164f57600080fd5b600080604083850312156133f557600080fd5b8235613400816133d4565b91506020830135613410816133d4565b809150509250929050565b600060208083528351808285015260005b818110156134485785810183015185820160400152820161342c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461164f57600080fd5b6000806040838503121561349157600080fd5b823561349c81613469565b946020939093013593505050565b6000602082840312156134bc57600080fd5b8135612f3981613469565b600080604083850312156134da57600080fd5b82356134e581613469565b9150602083013561341081613469565b60008060006060848603121561350a57600080fd5b833561351581613469565b9250602084013561352581613469565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561357557613575613536565b604052919050565b600067ffffffffffffffff82111561359757613597613536565b5060051b60200190565b600082601f8301126135b257600080fd5b813560206135c76135c28361357d565b61354c565b82815260059290921b840181019181810190868411156135e657600080fd5b8286015b8481101561360157803583529183019183016135ea565b509695505050505050565b6000806040838503121561361f57600080fd5b823567ffffffffffffffff8082111561363757600080fd5b818501915085601f83011261364b57600080fd5b8135602061365b6135c28361357d565b82815260059290921b8401810191818101908984111561367a57600080fd5b948201945b838610156136a157853561369281613469565b8252948201949082019061367f565b965050860135925050808211156136b757600080fd5b506136c4858286016135a1565b9150509250929050565b803561ffff811681146136e057600080fd5b919050565b6000806000606084860312156136fa57600080fd5b613703846136ce565b9250613711602085016136ce565b915061371f604085016136ce565b90509250925092565b60006020828403121561373a57600080fd5b5035919050565b6000806040838503121561375457600080fd5b823561340081613469565b6000806000806080858703121561377557600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156137e25781600019048211156137c8576137c8613791565b808516156137d557918102915b93841c93908002906137ac565b509250929050565b6000826137f957506001610a9b565b8161380657506000610a9b565b816001811461381c576002811461382657613842565b6001915050610a9b565b60ff84111561383757613837613791565b50506001821b610a9b565b5060208310610133831016604e8410600b8410161715613865575081810a610a9b565b61386f83836137a7565b806000190482111561388357613883613791565b029392505050565b6000612f3960ff8416836137ea565b8082028115828204841417610a9b57610a9b613791565b81810381811115610a9b57610a9b613791565b634e487b7160e01b600052603260045260246000fd5b600061ffff8083168181036138f1576138f1613791565b6001019392505050565b80820180821115610a9b57610a9b613791565b60008261392b57634e487b7160e01b600052601260045260246000fd5b500490565b6000806040838503121561394357600080fd5b825161394e81613469565b602084015190925061341081613469565b6000806040838503121561397257600080fd5b505080516020909101519092909150565b60006020828403121561399557600080fd5b5051919050565b6000602082840312156139ae57600080fd5b8151612f39816133d4565b6000602082840312156139cb57600080fd5b8151612f3981613469565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015613a265784516001600160a01b031683529383019391830191600101613a01565b50506001600160a01b0396909616606085015250505060800152939250505056fe43616c6c6572203d2f3d206f776e65722e000000000000000000000000000000a264697066735822122036ffede99ecda8f566faf04a8ebd2eb8689014bd2ec0e317ac43676694187a8f64736f6c63430008130033

Deployed Bytecode Sourcemap

4090:19258:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5417:73;;;;;;;;;;;;5448:42;5417:73;;;;;-1:-1:-1;;;;;178:55:1;;;160:74;;148:2;133:18;5417:73:0;;;;;;;;5666:28;;;;;;;;;;;;;;;;;;;391:25:1;;;379:2;364:18;5666:28:0;245:177:1;13207:153:0;;;;;;;;;;-1:-1:-1;13207:153:0;;;;;:::i;:::-;;:::i;:::-;;5007:107;;;;;;;;;;-1:-1:-1;5007:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;1137:6:1;1170:15;;;1152:34;;1222:15;;;1217:2;1202:18;;1195:43;1274:15;;1254:18;;;1247:43;;;;1115:2;1100:18;5007:107:0;931:365:1;8942:80:0;;;;;;;;;;-1:-1:-1;9014:5:0;;;;;;;;;;;;-1:-1:-1;;;9014:5:0;;;;8942:80;;;;;;;:::i;5356:26::-;;;;;;;;;;-1:-1:-1;5356:26:0;;;;;;;-1:-1:-1;;;;;5356:26:0;;;5323;;;;;;;;;;-1:-1:-1;5323:26:0;;;;;;;;;;;2267:14:1;;2260:22;2242:41;;2230:2;2215:18;5323:26:0;2102:187:1;9550:161:0;;;;;;;;;;-1:-1:-1;9550:161:0;;;;;:::i;:::-;;:::i;12636:140::-;;;;;;;;;;-1:-1:-1;12636:140:0;;;;;:::i;:::-;-1:-1:-1;;;;;12734:34:0;12710:4;12734:34;;;:25;:34;;;;;;;;;12636:140;15419:809;;;;;;;;;;-1:-1:-1;15419:809:0;;;;;:::i;:::-;;:::i;8677:83::-;;;;;;;;;;;;;:::i;10220:306::-;;;;;;;;;;-1:-1:-1;10220:306:0;;;;;:::i;:::-;;:::i;21060:447::-;;;;;;;;;;-1:-1:-1;21060:447:0;;;;;:::i;:::-;;:::i;5774:33::-;;;;;;;;;;;;;;;;12940:141;;;;;;;;;;;;;:::i;5123:41::-;;;;;;;;;;;;5161:3;5123:41;;5701:25;;;;;;;;;;;;;;;;8766:80;;;;;;;;;;-1:-1:-1;8766:80:0;;4818:2;6508:36:1;;6496:2;6481:18;8766:80:0;6366:184:1;13558:453:0;;;;;;;;;;-1:-1:-1;13558:453:0;;;;;:::i;:::-;;:::i;13089:110::-;;;;;;;;;;-1:-1:-1;13089:110:0;;;;;:::i;:::-;;:::i;5389:21::-;;;;;;;;;;-1:-1:-1;5389:21:0;;;;-1:-1:-1;;;;;5389:21:0;;;5814:34;;;;;;;;;;-1:-1:-1;5814:34:0;;;;;;;;14019:189;;;;;;;;;;-1:-1:-1;14019:189:0;;;;;:::i;:::-;;:::i;14923:217::-;;;;;;;;;;-1:-1:-1;14923:217:0;;;;;:::i;:::-;;:::i;7309:654::-;;;;;;;;;;-1:-1:-1;7309:654:0;;;;;:::i;:::-;;:::i;12359:127::-;;;;;;;;;;-1:-1:-1;12359:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;12450:28:0;12426:4;12450:28;;;:19;:28;;;;;;;;;12359:127;5855:36;;;;;;;;;;-1:-1:-1;5855:36:0;;;;;;;;;;;12494:134;;;;;;;;;;-1:-1:-1;12494:134:0;;;;;:::i;:::-;;:::i;5928:26::-;;;;;;;;;;;;;;;;11794:557;;;;;;;;;;-1:-1:-1;11794:557:0;;;;;:::i;:::-;;:::i;9252:117::-;;;;;;;;;;-1:-1:-1;9252:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;9345:16:0;9318:7;9345:16;;;;;;;;;;;;9252:117;7971:310;;;;;;;;;;;;;:::i;5497:92::-;;;;;;;;;;-1:-1:-1;5497:92:0;;;;-1:-1:-1;;;;;5497:92:0;;;13368:182;;;;;;;;;;;;;:::i;11222:564::-;;;;;;;;;;-1:-1:-1;11222:564:0;;;;;:::i;:::-;;:::i;9028:79::-;;;;;;;;;;-1:-1:-1;9098:6:0;;-1:-1:-1;;;;;9098:6:0;9028:79;;10037:175;;;;;;;;;;;;;:::i;19821:737::-;;;;;;;;;;;;;:::i;8852:84::-;;;;;;;;;;-1:-1:-1;8926:7:0;;;;;;;;;;;;-1:-1:-1;;;8926:7:0;;;;8852:84;;9377:165;;;;;;;;;;-1:-1:-1;9377:165:0;;;;;:::i;:::-;;:::i;20756:296::-;;;;;;;;;;-1:-1:-1;20756:296:0;;;;;:::i;:::-;;:::i;5733:34::-;;;;;;;;;;-1:-1:-1;5733:34:0;;;;;;;;15148:263;;;;;;;;;;-1:-1:-1;15148:263:0;;;;;:::i;:::-;;:::i;9113:133::-;;;;;;;;;;-1:-1:-1;9113:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;9215:19:0;;;9197:7;9215:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;9113:133;10534:680;;;;;;;;;;-1:-1:-1;10534:680:0;;;;;:::i;:::-;;:::i;20566:182::-;;;;;;;;;;;;;:::i;14216:699::-;;;;;;;;;;-1:-1:-1;14216:699:0;;;;;:::i;:::-;;:::i;5620:39::-;;;;;;;;;;-1:-1:-1;5620:39:0;;;;-1:-1:-1;;;5620:39:0;;;;;;12784:148;;;;;;;;;;-1:-1:-1;12784:148:0;;;;;:::i;:::-;;:::i;13207:153::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;;;;;;;;;13302:11:::1;::::0;:50:::1;::::0;-1:-1:-1;;;13302:50:0;;8794:14:1;;8787:22;13302:50:0::1;::::0;::::1;8769:41:1::0;8853:14;;8846:22;8826:18;;;8819:50;13302:11:0;;;::::1;-1:-1:-1::0;;;;;13302:11:0::1;::::0;:26:::1;::::0;8742:18:1;;13302:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13207:153:::0;;:::o;9550:161::-;9627:4;9644:37;9653:10;9665:7;9674:6;9644:8;:37::i;:::-;-1:-1:-1;9699:4:0;9550:161;;;;;:::o;15419:809::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;15523:23:::1;::::0;::::1;;15515:32;;;::::0;::::1;;-1:-1:-1::0;;;;;15566:23:0;::::1;15584:4;15566:23;::::0;::::1;::::0;:69:::1;;-1:-1:-1::0;;;;;;15611:24:0;::::1;15630:4;15611:24;;15566:69;:107;;;;-1:-1:-1::0;15657:6:0::1;::::0;-1:-1:-1;;;;;15657:16:0;;::::1;:6:::0;::::1;:16;;15566:107;:146;;;;-1:-1:-1::0;15695:6:0::1;::::0;-1:-1:-1;;;;;15695:17:0;;::::1;:6:::0;::::1;:17;;15566:146;15558:170;;;::::0;-1:-1:-1;;;15558:170:0;;9082:2:1;15558:170:0::1;::::0;::::1;9064:21:1::0;9121:2;9101:18;;;9094:30;-1:-1:-1;;;9140:18:1;;;9133:41;9191:18;;15558:170:0::1;8880:335:1::0;15558:170:0::1;15753:7;-1:-1:-1::0;;;;;15743:17:0::1;:6;-1:-1:-1::0;;;;;15743:17:0::1;::::0;15739:482:::1;;-1:-1:-1::0;;;;;15777:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;;;:33;;15806:4:::1;-1:-1:-1::0;;15777:33:0;;::::1;::::0;::::1;::::0;;;15825:16:::1;:25:::0;;;;;:32;;;;::::1;::::0;::::1;::::0;;15872:34:::1;::::0;15777:26;;15872:19:::1;:34::i;:::-;15419:809:::0;;:::o;15739:482::-:1;-1:-1:-1::0;;;;;15939:25:0;;::::1;;::::0;;;:17:::1;:25;::::0;;;;;;;:32;;15967:4:::1;-1:-1:-1::0;;15939:32:0;;::::1;::::0;::::1;::::0;;;15986:26;;::::1;::::0;;;;;;:33;;;::::1;::::0;::::1;::::0;;16034:24;;;:16:::1;:24:::0;;;;;;:31;;;::::1;::::0;::::1;::::0;;16080:25;;;;;;:32;;;;::::1;::::0;::::1;::::0;;;16127:33:::1;::::0;15939:25;;16127:19:::1;:33::i;:::-;16175:34;16195:7;16204:4;16175:19;:34::i;8677:83::-:0;8732:7;4879:13;4818:2;4879;:13;:::i;:::-;4862:30;;4670:13;4862:30;:::i;:::-;8743:14;;8677:83;:::o;10220:306::-;-1:-1:-1;;;;;10341:19:0;;10320:4;10341:19;;;:11;:19;;;;;;;;10361:10;10341:31;;;;;;;;-1:-1:-1;;10341:52:0;10337:126;;-1:-1:-1;;;;;10410:19:0;;;;;;:11;:19;;;;;;;;10430:10;10410:31;;;;;;;:41;;10445:6;;10410:19;:41;;10445:6;;10410:41;:::i;:::-;;;;-1:-1:-1;;10337:126:0;10482:36;10492:6;10500:9;10511:6;10482:9;:36::i;:::-;10475:43;10220:306;-1:-1:-1;;;;10220:306:0:o;21060:447::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;21195:7:::1;:14;21176:8;:15;:33;21168:67;;;::::0;-1:-1:-1;;;21168:67:0;;11243:2:1;21168:67:0::1;::::0;::::1;11225:21:1::0;11282:2;11262:18;;;11255:30;11321:23;11301:18;;;11294:51;11362:18;;21168:67:0::1;11041:345:1::0;21168:67:0::1;21251:8;21246:254;21269:8;:15;21265:1;:19;;;21246:254;;;21350:13;4818:2;21350;:13;:::i;:::-;21339:7;21347:1;21339:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;21324:10;9318:7:::0;9345:16;;;;;;;;;;;21314:49:::1;;21306:80;;;::::0;-1:-1:-1;;;21306:80:0;;11725:2:1;21306:80:0::1;::::0;::::1;11707:21:1::0;11764:2;11744:18;;;11737:30;11803:20;11783:18;;;11776:48;11841:18;;21306:80:0::1;11523:342:1::0;21306:80:0::1;21401:87;21418:10;21430:8;21439:1;21430:11;;;;;;;;;;:::i;:::-;;;;;;;4818:2;21454;:13;;;;:::i;:::-;21443:7;21451:1;21443:10;;;;;;;;;;:::i;:::-;;;;;;;:24;;;;:::i;:::-;21469:5;21476::::0;21483:4:::1;21401:16;:87::i;:::-;-1:-1:-1::0;21286:3:0;::::1;::::0;::::1;:::i;:::-;;;;21246:254;;;;21060:447:::0;;:::o;12940:141::-;12993:7;9345:16;;;;;;5448:42;9345:16;;;;13032:39;;9345:16;13032:39;:::i;:::-;4879:13;4818:2;4879;:13;:::i;:::-;4862:30;;4670:13;4862:30;:::i;:::-;13021:51;;;;:::i;13558:453::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;13666:14:::1;::::0;::::1;;13665:15;13657:45;;;::::0;-1:-1:-1;;;13657:45:0;;12404:2:1;13657:45:0::1;::::0;::::1;12386:21:1::0;12443:2;12423:18;;;12416:30;12482:19;12462:18;;;12455:47;12519:18;;13657:45:0::1;12202:341:1::0;13657:45:0::1;5161:3;13721:6;:21;;;;:65;;;;;5210:3;13763:7;:23;;;;13721:65;:117;;;;;5263:3;13807:11;:31;;;;13721:117;13713:170;;;::::0;-1:-1:-1;;;13713:170:0;;12750:2:1;13713:170:0::1;::::0;::::1;12732:21:1::0;12789:2;12769:18;;;12762:30;12828:25;12808:18;;;12801:53;12871:18;;13713:170:0::1;12548:347:1::0;13713:170:0::1;13894:9;:25:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;13930:27:0;;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;-1:-1:-1::0;;13968:35:0::1;::::0;;;;::::1;;::::0;;;::::1;::::0;;13558:453::o;13089:110::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;13158:11:::1;::::0;:33:::1;::::0;-1:-1:-1;;;13158:33:0;;-1:-1:-1;;;;;178:55:1;;;13158:33:0::1;::::0;::::1;160:74:1::0;13158:11:0;;;::::1;::::0;;::::1;::::0;:24:::1;::::0;133:18:1;;13158:33:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13089:110:::0;:::o;14019:189::-;14148:6;;-1:-1:-1;;;;;14148:6:0;14110:7;9345:16;;;;;;;;;;;5309:5;;14138:41;;14158:21;;14138:41;:::i;:::-;14137:62;;;;:::i;14923:217::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;15053:3:::1;15027:22;:29;;15019:64;;;::::0;-1:-1:-1;;;15019:64:0;;13324:2:1;15019:64:0::1;::::0;::::1;13306:21:1::0;13363:2;13343:18;;;13336:30;13402:24;13382:18;;;13375:52;13444:18;;15019:64:0::1;13122:346:1::0;15019:64:0::1;15094:13;:38:::0;14923:217::o;7309:654::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;-1:-1:-1;;;;;7388:22:0;::::1;7380:96;;;::::0;-1:-1:-1;;;7380:96:0;;13675:2:1;7380:96:0::1;::::0;::::1;13657:21:1::0;13714:2;13694:18;;;13687:30;13753:34;13733:18;;;13726:62;13824:31;13804:18;;;13797:59;13873:19;;7380:96:0::1;13473:425:1::0;7380:96:0::1;-1:-1:-1::0;;;;;;;7495:16:0;::::1;::::0;7487:90:::1;;;::::0;-1:-1:-1;;;7487:90:0;;13675:2:1;7487:90:0::1;::::0;::::1;13657:21:1::0;13714:2;13694:18;;;13687:30;13753:34;13733:18;;;13726:62;13824:31;13804:18;;;13797:59;13873:19;;7487:90:0::1;13473:425:1::0;7487:90:0::1;7608:6;::::0;7588:34:::1;::::0;-1:-1:-1;;;;;7608:6:0::1;;7588:19;:34::i;:::-;7633:35;7653:8;7663:4;7633:19;:35::i;:::-;7703:6;::::0;-1:-1:-1;;;;;7703:6:0::1;7713:1;9345:16:::0;;;;;;;;;;;7693:21;7689:127:::1;;7748:6;::::0;-1:-1:-1;;;;;7748:6:0::1;9318:7:::0;9345:16;;;;;;;;;;;7731:73:::1;::::0;7748:6;7756:8;;7766:17:::1;9252:117:::0;7731:73:::1;;7689:127;7855:6;::::0;;-1:-1:-1;;;;;7872:17:0;;::::1;-1:-1:-1::0;;;;;;7872:17:0;::::1;::::0;::::1;::::0;;;7905:40:::1;::::0;7855:6;::::1;::::0;7872:17;7855:6;;7905:40:::1;::::0;7836:16:::1;::::0;7905:40:::1;7369:594;7309:654:::0;:::o;12494:134::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;-1:-1:-1;;;;;12582:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:38;;-1:-1:-1;;12582:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12494:134::o;11794:557::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;11869:14:::1;::::0;::::1;;11868:15;11860:24;;;::::0;::::1;;11919:4;-1:-1:-1::0;;;;;11903:21:0;::::1;::::0;11895:48:::1;;;::::0;-1:-1:-1;;;11895:48:0;;14105:2:1;11895:48:0::1;::::0;::::1;14087:21:1::0;14144:2;14124:18;;;14117:30;14183:16;14163:18;;;14156:44;14217:18;;11895:48:0::1;13903:338:1::0;11895:48:0::1;11954:11;:31:::0;;-1:-1:-1;;;;;;11954:31:0::1;::::0;-1:-1:-1;;;;;11954:31:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;12000:23:::1;::::0;;-1:-1:-1;;;12000:23:0;;;;:11;;;::::1;::::0;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;12000:11:0;:23:::1;;;;;;;;;;-1:-1:-1::0;12000:23:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;12000:23:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;11996:348;;12333:8;::::0;::::1;11996:348;12087:9;:29:::0;;-1:-1:-1;;12087:29:0::1;;-1:-1:-1::0;;;;;12087:29:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;12118:6:::1;:22:::0;;-1:-1:-1;;;;;;12118:22:0::1;::::0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;12142:15:0;;;-1:-1:-1;12142:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;12142:22:0::1;::::0;;::::1;::::0;;12189:6:::1;::::0;12205:9;;12180:55:::1;::::0;12189:6;::::1;::::0;12205:9;;::::1;;-1:-1:-1::0;;12180:8:0::1;:55::i;:::-;12282:9;::::0;12250:62:::1;::::0;12267:4:::1;::::0;12282:9:::1;::::0;::::1;-1:-1:-1::0;;;;;12282:9:0::1;-1:-1:-1::0;;12250:8:0::1;:62::i;11996:348::-;11794:557:::0;:::o;7971:310::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;8038:14:::1;::::0;::::1;;8030:74;;;::::0;-1:-1:-1;;;8030:74:0;;14838:2:1;8030:74:0::1;::::0;::::1;14820:21:1::0;14877:2;14857:18;;;14850:30;14916:34;14896:18;;;14889:62;14987:17;14967:18;;;14960:45;15022:19;;8030:74:0::1;14636:411:1::0;8030:74:0::1;8135:6;::::0;8115:34:::1;::::0;-1:-1:-1;;;;;8135:6:0::1;;8115:19;:34::i;:::-;8179:6;::::0;;-1:-1:-1;;;;;;8196:19:0;::::1;::::0;;;8231:42:::1;::::0;-1:-1:-1;;;;;8179:6:0;;::::1;::::0;8160:16:::1;::::0;8179:6;;8231:42:::1;::::0;8160:16;;8231:42:::1;8019:262;7971:310::o:0;13368:182::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;13521:14:::1;:21:::0;;-1:-1:-1;;13521:21:0::1;13538:4;13521:21;::::0;;13368:182::o;11222:564::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;11304:7:::1;11299:480;;-1:-1:-1::0;;;;;11328:13:0;;::::1;11344:5;11328:13:::0;;;:7:::1;:13;::::0;;;;;:21;;-1:-1:-1;;11328:21:0::1;::::0;;11364:11:::1;::::0;:34;;-1:-1:-1;;;11364:34:0;;::::1;::::0;::::1;15220:74:1::0;;;;15310:18;;;15303:50;;;;11364:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15193:18:1;;11364:34:0::1;;;;;;;;;;;;;;;;;::::0;::::1;11299:480;11435:17;::::0;:22;11431:135:::1;;11524:6;11504:17;;11486:15;:35;;;;:::i;:::-;:44;11478:72;;;::::0;-1:-1:-1;;;11478:72:0;;15566:2:1;11478:72:0::1;::::0;::::1;15548:21:1::0;15605:2;15585:18;;;15578:30;15644:17;15624:18;;;15617:45;15679:18;;11478:72:0::1;15364:339:1::0;11478:72:0::1;-1:-1:-1::0;;;;;11589:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;::::1;;11588:14;11580:54;;;::::0;-1:-1:-1;;;11580:54:0;;15910:2:1;11580:54:0::1;::::0;::::1;15892:21:1::0;15949:2;15929:18;;;15922:30;15988:29;15968:18;;;15961:57;16035:18;;11580:54:0::1;15708:351:1::0;11580:54:0::1;-1:-1:-1::0;;;;;11649:13:0;;::::1;;::::0;;;11665:4:::1;11649:13;::::0;;;;;;;;:20;;-1:-1:-1;;11649:20:0::1;::::0;::::1;::::0;;11704:15:::1;11684:17;:35:::0;11734:11:::1;::::0;:33;;-1:-1:-1;;;11734:33:0;;::::1;::::0;::::1;15220:74:1::0;;;;15310:18;;;15303:50;11734:11:0;;::::1;::::0;;::::1;::::0;:21:::1;::::0;15193:18:1;;11734:33:0::1;15052:307:1::0;10037:175:0;7163:6;;10103:4;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;10152:9:::1;::::0;10120:62:::1;::::0;10137:4:::1;::::0;10152:9:::1;::::0;::::1;-1:-1:-1::0;;;;;10152:9:0::1;-1:-1:-1::0;;10120:8:0::1;:62::i;:::-;-1:-1:-1::0;10200:4:0::1;10037:175:::0;:::o;19821:737::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;19883:14:::1;::::0;::::1;;19882:15;19874:52;;;::::0;-1:-1:-1;;;19874:52:0;;16266:2:1;19874:52:0::1;::::0;::::1;16248:21:1::0;16305:2;16285:18;;;16278:30;16344:26;16324:18;;;16317:54;16388:18;;19874:52:0::1;16064:348:1::0;19874:52:0::1;19945:16;::::0;::::1;::::0;::::1;;;19937:53;;;::::0;-1:-1:-1;;;19937:53:0;;16619:2:1;19937:53:0::1;::::0;::::1;16601:21:1::0;16658:2;16638:18;;;16631:30;16697:26;16677:18;;;16670:54;16741:18;;19937:53:0::1;16417:348:1::0;19937:53:0::1;20013:11;::::0;;;::::1;-1:-1:-1::0;;;;;20013:11:0::1;20001:106;;20055:11;:40:::0;;-1:-1:-1;;;;;;20055:40:0::1;20089:4;20055:40:::0;::::1;;::::0;;20001:106:::1;20121:11;::::0;20143:6:::1;::::0;20121:87:::1;::::0;-1:-1:-1;;;20121:87:0;;-1:-1:-1;;;;;20143:6:0;;::::1;20121:87;::::0;::::1;16993:74:1::0;17115:10;20158:12:0::1;17103:23:1::0;17083:18;;;17076:51;17175:18;20180:15:0::1;17163:31:1::0;17143:18;;;17136:59;4818:2:0::1;17211:18:1::0;;;17204:45;20121:11:0;;;::::1;;::::0;:21:::1;::::0;16965:19:1;;20121:87:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;-1:-1:-1::0;20234:11:0::1;::::0;20265:6:::1;::::0;-1:-1:-1;;;;;20265:6:0;;::::1;9318:7:::0;9345:16;;;;;;;;;;;;;20234:39;;-1:-1:-1;;;20234:39:0;;::::1;::::0;::::1;391:25:1::0;;;;20234:11:0;;;::::1;;::::0;:20:::1;::::0;364:18:1;;20234:39:0::1;::::0;::::1;;;;;;;;;;;;;;;;;-1:-1:-1::0;20234:39:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;20234:39:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;20230:207:::0;::::1;;20345:13;:29:::0;;;;20389:10:::1;:27:::0;20230:207:::1;20447:14;:21:::0;;-1:-1:-1;;20447:21:0;;::::1;20464:4;20447:21;::::0;;;20479:23:::1;:31:::0;;;;::::1;::::0;;20535:15:::1;20521:11;:29:::0;19821:737::o;9377:165::-;9455:4;9472:40;9482:10;9494:9;9505:6;9472:9;:40::i;:::-;-1:-1:-1;9530:4:0;;9377:165;-1:-1:-1;;;9377:165:0:o;20756:296::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;20834:16:::1;::::0;::::1;::::0;::::1;;;20830:111;;;20892:4;-1:-1:-1::0;;;;;20875:22:0;::::1;::::0;20867:62:::1;;;::::0;-1:-1:-1;;;20867:62:0;;17712:2:1;20867:62:0::1;::::0;::::1;17694:21:1::0;17751:2;17731:18;;;17724:30;17790:29;17770:18;;;17763:57;17837:18;;20867:62:0::1;17510:351:1::0;20867:62:0::1;21005:6;::::0;21013:30:::1;::::0;-1:-1:-1;;;21013:30:0;;21037:4:::1;21013:30;::::0;::::1;160:74:1::0;20973:5:0;;-1:-1:-1;;;;;20990:14:0;;::::1;::::0;::::1;::::0;21005:6;;;::::1;::::0;20990:14;;21013:15:::1;::::0;133:18:1;;21013:30:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20990:54;::::0;-1:-1:-1;;;;;;20990:54:0::1;::::0;;;;;;-1:-1:-1;;;;;18247:55:1;;;20990:54:0::1;::::0;::::1;18229:74:1::0;18319:18;;;18312:34;18202:18;;20990:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;15148:263::-:0;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;15257:19:::1;:33:::0;;-1:-1:-1;;;;15257:33:0::1;-1:-1:-1::0;;;15257:33:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;15301:22:::1;:47:::0;;-1:-1:-1;;15301:47:0::1;::::0;::::1;;;::::0;;15364:39:::1;::::0;2242:41:1;;;15364:39:0::1;::::0;2230:2:1;2215:18;15364:39:0::1;;;;;;;;15148:263:::0;;:::o;10534:680::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;10614:16:::1;::::0;::::1;::::0;::::1;;;10613:17;10605:60;;;::::0;-1:-1:-1;;;10605:60:0;;18809:2:1;10605:60:0::1;::::0;::::1;18791:21:1::0;18848:2;18828:18;;;18821:30;18887:32;18867:18;;;18860:60;18937:18;;10605:60:0::1;18607:354:1::0;10605:60:0::1;10676:20;10709:9;10676:43;;10730:16;10760:10;-1:-1:-1::0;;;;;10760:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10749:40:0::1;;10798:4;10805:10;-1:-1:-1::0;;;;;10805:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10749:74;::::0;-1:-1:-1;;;;;;10749:74:0::1;::::0;;;;;;-1:-1:-1;;;;;19475:15:1;;;10749:74:0::1;::::0;::::1;19457:34:1::0;19527:15;;19507:18;;;19500:43;19369:18;;10749:74:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10842:6;::::0;-1:-1:-1;;;;;10842:6:0;;::::1;10852:5;10834:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;10834:23:0::1;::::0;;10730:93;;-1:-1:-1;10872:22:0;::::1;10868:200;;10931:10;-1:-1:-1::0;;;;;10931:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10920:43:0::1;;10972:4;10979:10;-1:-1:-1::0;;;;;10979:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10920:77;::::0;-1:-1:-1;;;;;;10920:77:0::1;::::0;;;;;;-1:-1:-1;;;;;19475:15:1;;;10920:77:0::1;::::0;::::1;19457:34:1::0;19527:15;;19507:18;;;19500:43;19369:18;;10920:77:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10911:6;:86:::0;;-1:-1:-1;;;;;;10911:86:0::1;-1:-1:-1::0;;;;;10911:86:0;;;::::1;::::0;;;::::1;::::0;;10868:200:::1;;;11039:6;:17:::0;;-1:-1:-1;;;;;;11039:17:0::1;-1:-1:-1::0;;;;;11039:17:0;::::1;;::::0;;10868:200:::1;11078:9;:22:::0;;-1:-1:-1;;11078:22:0::1;;-1:-1:-1::0;;;;;11078:22:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;11119:6:::1;::::0;;::::1;-1:-1:-1::0;11111:15:0;;;-1:-1:-1;11111:15:0::1;::::0;;;;;;;:22;;-1:-1:-1;;11111:22:0::1;::::0;;::::1;::::0;;11176:9;;11144:62:::1;::::0;11161:4:::1;::::0;11176:9;::::1;;-1:-1:-1::0;;11144:8:0::1;:62::i;20566:182::-:0;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;20633:16:::1;::::0;::::1;::::0;::::1;;;20632:17;20624:58;;;::::0;-1:-1:-1;;;20624:58:0;;19756:2:1;20624:58:0::1;::::0;::::1;19738:21:1::0;19795:2;19775:18;;;19768:30;19834;19814:18;;;19807:58;19882:18;;20624:58:0::1;19554:352:1::0;20624:58:0::1;20701:6;::::0;20693:47:::1;::::0;-1:-1:-1;;;;;20701:6:0;;::::1;::::0;20718:21:::1;20693:47:::0;::::1;;;::::0;20701:6:::1;20693:47:::0;20701:6;20693:47;20718:21;20701:6;20693:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;14216:699:::0;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;14416:16;14396;4879:13:::1;4818:2;4879;:13;:::i;:::-;4862:30;::::0;4670:13:::1;4862:30;:::i;:::-;14386:26;;;;:::i;:::-;14385:47;;;;:::i;:::-;14369:13;:63:::0;14484:13;14467;4879::::1;4818:2;4879;:13;:::i;:::-;4862:30;::::0;4670:13:::1;4862:30;:::i;:::-;14457:23;;;;:::i;:::-;14456:41;;;;:::i;:::-;14443:10;:54:::0;;;14516:13:::1;::::0;:27:::1;;14508:73;;;::::0;-1:-1:-1;;;14508:73:0;;20113:2:1;14508:73:0::1;::::0;::::1;20095:21:1::0;20152:2;20132:18;;;20125:30;20191:34;20171:18;;;20164:62;-1:-1:-1;;;20242:18:1;;;20235:31;20283:19;;14508:73:0::1;19911:397:1::0;14508:73:0::1;14625:6;::::0;-1:-1:-1;;;;;14625:6:0::1;9318:7:::0;9345:16;;;;;;;;;;;5309:5:::1;::::0;14615:23:::1;::::0;14635:3:::1;14615:23;:::i;:::-;14614:44;;;;:::i;:::-;14600:10;;:58;;14592:106;;;::::0;-1:-1:-1;;;14592:106:0;;20515:2:1;14592:106:0::1;::::0;::::1;20497:21:1::0;20554:2;20534:18;;;20527:30;20593:34;20573:18;;;20566:62;-1:-1:-1;;;20644:18:1;;;20637:33;20687:19;;14592:106:0::1;20313:399:1::0;14592:106:0::1;14741:9;4879:13;4818:2;4879;:13;:::i;:::-;4862:30;::::0;4670:13:::1;4862:30;:::i;:::-;14731:19;;;;:::i;:::-;14717:10;;:33;;14709:92;;;::::0;-1:-1:-1;;;14709:92:0;;20919:2:1;14709:92:0::1;::::0;::::1;20901:21:1::0;20958:2;20938:18;;;20931:30;20997:34;20977:18;;;20970:62;-1:-1:-1;;;21048:18:1;;;21041:44;21102:19;;14709:92:0::1;20717:410:1::0;14709:92:0::1;14847:9;4879:13;4818:2;4879;:13;:::i;:::-;4862:30;::::0;4670:13:::1;4862:30;:::i;:::-;14837:19;;;;:::i;:::-;14820:13;;:36;;14812:95;;;::::0;-1:-1:-1;;;14812:95:0;;20919:2:1;14812:95:0::1;::::0;::::1;20901:21:1::0;20958:2;20938:18;;;20931:30;20997:34;20977:18;;;20970:62;-1:-1:-1;;;21048:18:1;;;21041:44;21102:19;;14812:95:0::1;20717:410:1::0;14812:95:0::1;14216:699:::0;;;;:::o;12784:148::-;7163:6;;-1:-1:-1;;;;;7163:6:0;7173:10;7163:20;7155:50;;;;-1:-1:-1;;;7155:50:0;;8463:2:1;7155:50:0;;;8445:21:1;8502:2;8482:18;;;8475:30;-1:-1:-1;;;;;;;;;;;8521:18:1;;;8514:47;8578:18;;7155:50:0;8261:341:1;7155:50:0;-1:-1:-1;;;;;12880:34:0;;;::::1;;::::0;;;:25:::1;:34;::::0;;;;:44;;-1:-1:-1;;12880:44:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12784:148::o;9719:310::-;-1:-1:-1;;;;;9814:20:0;;9806:52;;;;-1:-1:-1;;;9806:52:0;;21334:2:1;9806:52:0;;;21316:21:1;21373:2;21353:18;;;21346:30;-1:-1:-1;;;21392:18:1;;;21385:49;21451:18;;9806:52:0;21132:343:1;9806:52:0;-1:-1:-1;;;;;9877:21:0;;9869:53;;;;-1:-1:-1;;;9869:53:0;;21334:2:1;9869:53:0;;;21316:21:1;21373:2;21353:18;;;21346:30;-1:-1:-1;;;21392:18:1;;;21385:49;21451:18;;9869:53:0;21132:343:1;9869:53:0;-1:-1:-1;;;;;9935:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;;;9988:33;;391:25:1;;;9988:33:0;;364:18:1;9988:33:0;;;;;;;9719:310;;;:::o;16690:1783::-;16769:4;-1:-1:-1;;;;;16794:18:0;;16786:68;;;;-1:-1:-1;;;16786:68:0;;21682:2:1;16786:68:0;;;21664:21:1;21721:2;21701:18;;;21694:30;21760:34;21740:18;;;21733:62;-1:-1:-1;;;21811:18:1;;;21804:35;21856:19;;16786:68:0;21480:401:1;16786:68:0;-1:-1:-1;;;;;16873:16:0;;16865:64;;;;-1:-1:-1;;;16865:64:0;;22088:2:1;16865:64:0;;;22070:21:1;22127:2;22107:18;;;22100:30;22166:34;22146:18;;;22139:62;-1:-1:-1;;;22217:18:1;;;22210:33;22260:19;;16865:64:0;21886:399:1;16865:64:0;16957:1;16948:6;:10;16940:64;;;;-1:-1:-1;;;16940:64:0;;22492:2:1;16940:64:0;;;22474:21:1;22531:2;22511:18;;;22504:30;22570:34;22550:18;;;22543:62;-1:-1:-1;;;22621:18:1;;;22614:39;22670:19;;16940:64:0;22290:405:1;16940:64:0;-1:-1:-1;;;;;17103:13:0;;17015:8;17103:13;;;:7;:13;;;;;;17015:8;;;;17103:13;;17099:162;;;17139:4;17133:10;;17099:162;;;-1:-1:-1;;;;;17165:11:0;;;;;;:7;:11;;;;;;;;17161:100;;;17200:4;17193:11;;17161:100;;;-1:-1:-1;17245:4:0;17161:100;17275:20;17286:4;17292:2;17275:10;:20::i;:::-;17271:371;;;17316:14;;;;17312:319;;17356:5;17351:265;;17386:34;;-1:-1:-1;;;17386:34:0;;22902:2:1;17386:34:0;;;22884:21:1;22941:2;22921:18;;;22914:30;22980:26;22960:18;;;22953:54;23024:18;;17386:34:0;22700:348:1;17351:265:0;-1:-1:-1;;;;;17451:31:0;;;;;;:25;:31;;;;;;;;17450:32;:66;;;;-1:-1:-1;;;;;;17487:29:0;;;;;;:25;:29;;;;;;;;17486:30;17450:66;17446:170;;;17541:55;;-1:-1:-1;;;17541:55:0;;23255:2:1;17541:55:0;;;23237:21:1;23294:2;23274:18;;;23267:30;23333:34;23313:18;;;23306:62;-1:-1:-1;;;23384:18:1;;;23377:43;23437:19;;17541:55:0;23053:409:1;17446:170:0;17658:4;17654:742;;;17684:6;;-1:-1:-1;;;17684:6:0;;;;17679:706;;17715:19;;-1:-1:-1;;;17715:19:0;;;;:64;;;;-1:-1:-1;;;;;;17759:20:0;;;;;;:16;:20;;;;;;;;17758:21;17715:64;:111;;;;-1:-1:-1;;;;;;17804:22:0;;;;;;:16;:22;;;;;;;;17803:23;17715:111;17711:659;;;17918:4;17869:28;9345:16;;;;;;;;;;;17975:13;;17951:37;;17947:404;;18035:10;;18076:22;;;;18072:97;;;18133:13;;18123:6;;-1:-1:-1;;;;;18123:6:0;9318:7;9345:16;;;;;;;;;;;5309:5;;18113:33;;;:::i;:::-;18112:54;;;;:::i;:::-;18102:64;;18072:97;18223:7;18199:20;:31;18195:72;;18257:7;18234:30;;18195:72;18293:34;18306:20;18293:12;:34::i;:::-;17990:361;17947:404;17846:524;17711:659;18413:52;18430:4;18436:2;18440:6;18448:3;18453:4;18459:5;18413:16;:52::i;:::-;18406:59;16690:1783;-1:-1:-1;;;;;;;16690:1783:0:o;21515:1055::-;21634:4;21655:20;21666:4;21672:2;21655:10;:20::i;:::-;21651:228;;;21710:11;;:39;;-1:-1:-1;;;21710:39:0;;-1:-1:-1;;;;;23748:15:1;;;21710:39:0;;;23730:34:1;23800:15;;;23780:18;;;23773:43;23832:18;;;23825:34;;;21679:12:0;;21710:11;;;;;:21;;23642:18:1;;21710:39:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;21710:39:0;;;;;;;;-1:-1:-1;;21710:39:0;;;;;;;;;;;;:::i;:::-;;;21706:122;;21817:8;;;21706:122;21800:5;-1:-1:-1;21846:7:0;21842:26;;21857:8;;;21842:26;21677:202;21651:228;-1:-1:-1;;;;;21923:25:0;;21889:12;21923:25;;;:19;:25;;;;;;21904:4;;21923:25;;;:52;;-1:-1:-1;;;;;;21952:23:0;;;;;;:19;:23;;;;;;;;21923:52;21919:99;;;-1:-1:-1;22001:5:0;21919:99;-1:-1:-1;;;;;22028:13:0;;:7;:13;;;;;;;;;;:23;;22045:6;;22028:7;:23;;22045:6;;22028:23;:::i;:::-;;;;-1:-1:-1;22062:22:0;;-1:-1:-1;22088:7:0;22087:55;;22136:6;22087:55;;;22099:34;22109:4;22115:6;22123:3;22128:4;22099:9;:34::i;:::-;22062:80;;22168:14;22153:7;:11;22161:2;-1:-1:-1;;;;;22153:11:0;-1:-1:-1;;;;;22153:11:0;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;22213:2;-1:-1:-1;;;;;22198:34:0;22207:4;-1:-1:-1;;;;;22198:34:0;;22217:14;22198:34;;;;391:25:1;;379:2;364:18;;245:177;22198:34:0;;;;;;;;22248:16;;;;;;;22243:298;;22281:28;22300:4;22306:2;22281:18;:28::i;:::-;22329:16;;;;;;;22328:17;:41;;;;;22349:20;22360:4;22366:2;22349:10;:20::i;:::-;22328:77;;;;-1:-1:-1;;;;;;22374:31:0;;;;;;:25;:31;;;;;;;;22373:32;22328:77;:111;;;;-1:-1:-1;;;;;;22410:29:0;;;;;;:25;:29;;;;;;;;22409:30;22328:111;:121;;;;;22444:5;22443:6;22328:121;22324:206;;;22470:44;;-1:-1:-1;;;22470:44:0;;24072:2:1;22470:44:0;;;24054:21:1;24111:2;24091:18;;;24084:30;24150:34;24130:18;;;24123:62;-1:-1:-1;;;24201:18:1;;;24194:32;24243:19;;22470:44:0;23870:398:1;22324:206:0;-1:-1:-1;22558:4:0;;21515:1055;-1:-1:-1;;;;;;;;21515:1055:0:o;16236:446::-;16337:6;;16305:4;;-1:-1:-1;;;;;16329:14:0;;;16337:6;;16329:14;;;;:43;;-1:-1:-1;16366:6:0;;-1:-1:-1;;;;;16360:12:0;;;16366:6;;16360:12;;16329:43;:79;;;;-1:-1:-1;16402:6:0;;-1:-1:-1;;;;;16402:6:0;16389:9;:19;;16329:79;:118;;;;-1:-1:-1;;;;;;16426:21:0;;;;;;:17;:21;;;;;;;;16425:22;16329:118;:159;;;;-1:-1:-1;;;;;;16465:23:0;;;;;;:17;:23;;;;;;;;16464:24;16329:159;:186;;;;-1:-1:-1;;;;;;16505:10:0;;5448:42;16505:10;;16329:186;:219;;;;-1:-1:-1;;;;;;16532:16:0;;;;16329:219;:257;;;;-1:-1:-1;;;;;;16565:21:0;;16581:4;16565:21;;16329:257;:302;;;;-1:-1:-1;16619:11:0;;-1:-1:-1;;;;;16603:28:0;;;16619:11;;;;;16603:28;;16329:302;:345;;;;-1:-1:-1;16662:11:0;;-1:-1:-1;;;;;16648:26:0;;;16662:11;;;;;16648:26;;16329:345;16322:352;16236:446;-1:-1:-1;;;16236:446:0:o;18481:761::-;6119:6;:13;;-1:-1:-1;;;;6119:13:0;-1:-1:-1;;;6119:13:0;;;18588:4:::1;6119:13:::0;18568:26;;;:11:::1;:26;::::0;;;;;;;18603:9:::1;::::0;6119:13;18603:9;::::1;-1:-1:-1::0;;;;;18603:9:0::1;18568:46:::0;;;;;;;;-1:-1:-1;;18568:67:0::1;18564:166;;18672:4;18652:26;::::0;;;:11:::1;:26;::::0;;;;;;;18687:9:::1;::::0;::::1;::::0;::::1;-1:-1:-1::0;;;;;18687:9:0::1;18652:46:::0;;;;;;;-1:-1:-1;;18652:66:0;;18564:166:::1;18774:16;::::0;;18788:1:::1;18774:16:::0;;;;;::::1;::::0;;18750:21:::1;::::0;18774:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18774:16:0::1;18750:40;;18819:4;18801;18806:1;18801:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;18801:23:0::1;;;-1:-1:-1::0;;;;;18801:23:0::1;;;::::0;::::1;18845:9;;;;;;;;;-1:-1:-1::0;;;;;18845:9:0::1;-1:-1:-1::0;;;;;18845:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18835:4;18840:1;18835:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18835:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;18878:9:::1;::::0;:199:::1;::::0;-1:-1:-1;;;18878:199:0;;:9:::1;::::0;;::::1;::::0;;::::1;::::0;:60:::1;::::0;:199:::1;::::0;18953:20;;18988:1:::1;::::0;19004:4;;19031::::1;::::0;19051:15:::1;::::0;18878:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;18874:246;;19102:7;;;18874:246;19168:15;::::0;:66:::1;::::0;19132:12:::1;::::0;-1:-1:-1;;;;;19168:15:0::1;::::0;19224:5:::1;::::0;19196:21:::1;::::0;19132:12;19168:66;19132:12;19168:66;19196:21;19168:15;19224:5;19168:66:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6143:1:0::1;-1:-1:-1::0;6155:6:0;:14;;-1:-1:-1;;;;6155:14:0;;;18481:761::o;22578:767::-;22666:7;22686:18;22719:3;22715:205;;;-1:-1:-1;22752:9:0;:16;;;22715:205;;;22790:4;22786:134;;;-1:-1:-1;22824:9:0;:17;;;;;;22786:134;;;-1:-1:-1;22887:9:0;:21;;;;;;22786:134;22934:10;22948:1;22934:15;22930:39;;22960:6;22953:13;;;;;22930:39;22991:11;;;;;-1:-1:-1;;;;;22991:11:0;23015:4;22983:37;:73;;;;;23037:13;23054:2;23037:19;;22983:73;22979:101;;;-1:-1:-1;23073:4:0;22979:101;23090:17;5309:5;23110:19;23119:10;23110:6;:19;:::i;:::-;:38;;;;:::i;:::-;23090:58;-1:-1:-1;23163:13:0;;23159:141;;23209:4;23193:7;:22;;;;;;;;;;:35;;23219:9;;23193:7;:35;;23219:9;;23193:35;:::i;:::-;;;;-1:-1:-1;;23248:40:0;;391:25:1;;;23271:4:0;;-1:-1:-1;;;;;23248:40:0;;;;;379:2:1;364:18;23248:40:0;;;;;;;23159:141;23319:18;23328:9;23319:6;:18;:::i;19250:563::-;19333:16;;;;;;;19332:17;19324:65;;;;-1:-1:-1;;;19324:65:0;;25716:2:1;19324:65:0;;;25698:21:1;25755:2;25735:18;;;25728:30;25794:34;25774:18;;;25767:62;-1:-1:-1;;;25845:18:1;;;25838:33;25888:19;;19324:65:0;25514:399:1;19324:65:0;19405:20;19416:4;19422:2;19405:10;:20::i;:::-;19404:21;:37;;;;-1:-1:-1;19435:6:0;;-1:-1:-1;;;;;19429:12:0;;;19435:6;;19429:12;19404:37;19400:406;;;-1:-1:-1;;;;;19458:23:0;;;;;;;:17;:23;;;;;;;;:30;;-1:-1:-1;;19458:30:0;;;19484:4;19458:30;;;;;;19503:19;:25;;;;;:32;;;;;;;;;;19550:16;:23;;-1:-1:-1;;19550:23:0;19458:30;19550:23;;;;;19600:11;;;;19588:114;;19646:11;:40;;-1:-1:-1;;;;;;19646:40:0;19680:4;19646:40;;;;;19588:114;19716:19;:26;;-1:-1:-1;;;;19716:26:0;-1:-1:-1;;;19716:26:0;;;19762:32;;-1:-1:-1;2242:41:1;;19762:32:0;;2230:2:1;2215:18;19762:32:0;2102:187:1;427:118;513:5;506:13;499:21;492:5;489:32;479:60;;535:1;532;525:12;550:376;612:6;620;673:2;661:9;652:7;648:23;644:32;641:52;;;689:1;686;679:12;641:52;728:9;715:23;747:28;769:5;747:28;:::i;:::-;794:5;-1:-1:-1;851:2:1;836:18;;823:32;864:30;823:32;864:30;:::i;:::-;913:7;903:17;;;550:376;;;;;:::o;1301:548::-;1413:4;1442:2;1471;1460:9;1453:21;1503:6;1497:13;1546:6;1541:2;1530:9;1526:18;1519:34;1571:1;1581:140;1595:6;1592:1;1589:13;1581:140;;;1690:14;;;1686:23;;1680:30;1656:17;;;1675:2;1652:26;1645:66;1610:10;;1581:140;;;1585:3;1770:1;1765:2;1756:6;1745:9;1741:22;1737:31;1730:42;1840:2;1833;1829:7;1824:2;1816:6;1812:15;1808:29;1797:9;1793:45;1789:54;1781:62;;;;1301:548;;;;:::o;2294:154::-;-1:-1:-1;;;;;2373:5:1;2369:54;2362:5;2359:65;2349:93;;2438:1;2435;2428:12;2453:315;2521:6;2529;2582:2;2570:9;2561:7;2557:23;2553:32;2550:52;;;2598:1;2595;2588:12;2550:52;2637:9;2624:23;2656:31;2681:5;2656:31;:::i;:::-;2706:5;2758:2;2743:18;;;;2730:32;;-1:-1:-1;;;2453:315:1:o;2773:247::-;2832:6;2885:2;2873:9;2864:7;2860:23;2856:32;2853:52;;;2901:1;2898;2891:12;2853:52;2940:9;2927:23;2959:31;2984:5;2959:31;:::i;3025:388::-;3093:6;3101;3154:2;3142:9;3133:7;3129:23;3125:32;3122:52;;;3170:1;3167;3160:12;3122:52;3209:9;3196:23;3228:31;3253:5;3228:31;:::i;:::-;3278:5;-1:-1:-1;3335:2:1;3320:18;;3307:32;3348:33;3307:32;3348:33;:::i;3418:456::-;3495:6;3503;3511;3564:2;3552:9;3543:7;3539:23;3535:32;3532:52;;;3580:1;3577;3570:12;3532:52;3619:9;3606:23;3638:31;3663:5;3638:31;:::i;:::-;3688:5;-1:-1:-1;3745:2:1;3730:18;;3717:32;3758:33;3717:32;3758:33;:::i;:::-;3418:456;;3810:7;;-1:-1:-1;;;3864:2:1;3849:18;;;;3836:32;;3418:456::o;3879:127::-;3940:10;3935:3;3931:20;3928:1;3921:31;3971:4;3968:1;3961:15;3995:4;3992:1;3985:15;4011:275;4082:2;4076:9;4147:2;4128:13;;-1:-1:-1;;4124:27:1;4112:40;;4182:18;4167:34;;4203:22;;;4164:62;4161:88;;;4229:18;;:::i;:::-;4265:2;4258:22;4011:275;;-1:-1:-1;4011:275:1:o;4291:183::-;4351:4;4384:18;4376:6;4373:30;4370:56;;;4406:18;;:::i;:::-;-1:-1:-1;4451:1:1;4447:14;4463:4;4443:25;;4291:183::o;4479:662::-;4533:5;4586:3;4579:4;4571:6;4567:17;4563:27;4553:55;;4604:1;4601;4594:12;4553:55;4640:6;4627:20;4666:4;4690:60;4706:43;4746:2;4706:43;:::i;:::-;4690:60;:::i;:::-;4784:15;;;4870:1;4866:10;;;;4854:23;;4850:32;;;4815:12;;;;4894:15;;;4891:35;;;4922:1;4919;4912:12;4891:35;4958:2;4950:6;4946:15;4970:142;4986:6;4981:3;4978:15;4970:142;;;5052:17;;5040:30;;5090:12;;;;5003;;4970:142;;;-1:-1:-1;5130:5:1;4479:662;-1:-1:-1;;;;;;4479:662:1:o;5146:1215::-;5264:6;5272;5325:2;5313:9;5304:7;5300:23;5296:32;5293:52;;;5341:1;5338;5331:12;5293:52;5381:9;5368:23;5410:18;5451:2;5443:6;5440:14;5437:34;;;5467:1;5464;5457:12;5437:34;5505:6;5494:9;5490:22;5480:32;;5550:7;5543:4;5539:2;5535:13;5531:27;5521:55;;5572:1;5569;5562:12;5521:55;5608:2;5595:16;5630:4;5654:60;5670:43;5710:2;5670:43;:::i;5654:60::-;5748:15;;;5830:1;5826:10;;;;5818:19;;5814:28;;;5779:12;;;;5854:19;;;5851:39;;;5886:1;5883;5876:12;5851:39;5910:11;;;;5930:217;5946:6;5941:3;5938:15;5930:217;;;6026:3;6013:17;6043:31;6068:5;6043:31;:::i;:::-;6087:18;;5963:12;;;;6125;;;;5930:217;;;6166:5;-1:-1:-1;;6209:18:1;;6196:32;;-1:-1:-1;;6240:16:1;;;6237:36;;;6269:1;6266;6259:12;6237:36;;6292:63;6347:7;6336:8;6325:9;6321:24;6292:63;:::i;:::-;6282:73;;;5146:1215;;;;;:::o;6555:159::-;6622:20;;6682:6;6671:18;;6661:29;;6651:57;;6704:1;6701;6694:12;6651:57;6555:159;;;:::o;6719:328::-;6793:6;6801;6809;6862:2;6850:9;6841:7;6837:23;6833:32;6830:52;;;6878:1;6875;6868:12;6830:52;6901:28;6919:9;6901:28;:::i;:::-;6891:38;;6948:37;6981:2;6970:9;6966:18;6948:37;:::i;:::-;6938:47;;7004:37;7037:2;7026:9;7022:18;7004:37;:::i;:::-;6994:47;;6719:328;;;;;:::o;7052:180::-;7111:6;7164:2;7152:9;7143:7;7139:23;7135:32;7132:52;;;7180:1;7177;7170:12;7132:52;-1:-1:-1;7203:23:1;;7052:180;-1:-1:-1;7052:180:1:o;7237:382::-;7302:6;7310;7363:2;7351:9;7342:7;7338:23;7334:32;7331:52;;;7379:1;7376;7369:12;7331:52;7418:9;7405:23;7437:31;7462:5;7437:31;:::i;7871:385::-;7957:6;7965;7973;7981;8034:3;8022:9;8013:7;8009:23;8005:33;8002:53;;;8051:1;8048;8041:12;8002:53;-1:-1:-1;;8074:23:1;;;8144:2;8129:18;;8116:32;;-1:-1:-1;8195:2:1;8180:18;;8167:32;;8246:2;8231:18;8218:32;;-1:-1:-1;7871:385:1;-1:-1:-1;7871:385:1:o;9220:127::-;9281:10;9276:3;9272:20;9269:1;9262:31;9312:4;9309:1;9302:15;9336:4;9333:1;9326:15;9352:422;9441:1;9484:5;9441:1;9498:270;9519:7;9509:8;9506:21;9498:270;;;9578:4;9574:1;9570:6;9566:17;9560:4;9557:27;9554:53;;;9587:18;;:::i;:::-;9637:7;9627:8;9623:22;9620:55;;;9657:16;;;;9620:55;9736:22;;;;9696:15;;;;9498:270;;;9502:3;9352:422;;;;;:::o;9779:806::-;9828:5;9858:8;9848:80;;-1:-1:-1;9899:1:1;9913:5;;9848:80;9947:4;9937:76;;-1:-1:-1;9984:1:1;9998:5;;9937:76;10029:4;10047:1;10042:59;;;;10115:1;10110:130;;;;10022:218;;10042:59;10072:1;10063:10;;10086:5;;;10110:130;10147:3;10137:8;10134:17;10131:43;;;10154:18;;:::i;:::-;-1:-1:-1;;10210:1:1;10196:16;;10225:5;;10022:218;;10324:2;10314:8;10311:16;10305:3;10299:4;10296:13;10292:36;10286:2;10276:8;10273:16;10268:2;10262:4;10259:12;10255:35;10252:77;10249:159;;;-1:-1:-1;10361:19:1;;;10393:5;;10249:159;10440:34;10465:8;10459:4;10440:34;:::i;:::-;10510:6;10506:1;10502:6;10498:19;10489:7;10486:32;10483:58;;;10521:18;;:::i;:::-;10559:20;;9779:806;-1:-1:-1;;;9779:806:1:o;10590:140::-;10648:5;10677:47;10718:4;10708:8;10704:19;10698:4;10677:47;:::i;10735:168::-;10808:9;;;10839;;10856:15;;;10850:22;;10836:37;10826:71;;10877:18;;:::i;10908:128::-;10975:9;;;10996:11;;;10993:37;;;11010:18;;:::i;11391:127::-;11452:10;11447:3;11443:20;11440:1;11433:31;11483:4;11480:1;11473:15;11507:4;11504:1;11497:15;11870:197;11908:3;11936:6;11977:2;11970:5;11966:14;12004:2;11995:7;11992:15;11989:41;;12010:18;;:::i;:::-;12059:1;12046:15;;11870:197;-1:-1:-1;;;11870:197:1:o;12072:125::-;12137:9;;;12158:10;;;12155:36;;;12171:18;;:::i;12900:217::-;12940:1;12966;12956:132;;13010:10;13005:3;13001:20;12998:1;12991:31;13045:4;13042:1;13035:15;13073:4;13070:1;13063:15;12956:132;-1:-1:-1;13102:9:1;;12900:217::o;14246:385::-;14325:6;14333;14386:2;14374:9;14365:7;14361:23;14357:32;14354:52;;;14402:1;14399;14392:12;14354:52;14434:9;14428:16;14453:31;14478:5;14453:31;:::i;:::-;14553:2;14538:18;;14532:25;14503:5;;-1:-1:-1;14566:33:1;14532:25;14566:33;:::i;17260:245::-;17339:6;17347;17400:2;17388:9;17379:7;17375:23;17371:32;17368:52;;;17416:1;17413;17406:12;17368:52;-1:-1:-1;;17439:16:1;;17495:2;17480:18;;;17474:25;17439:16;;17474:25;;-1:-1:-1;17260:245:1:o;17866:184::-;17936:6;17989:2;17977:9;17968:7;17964:23;17960:32;17957:52;;;18005:1;18002;17995:12;17957:52;-1:-1:-1;18028:16:1;;17866:184;-1:-1:-1;17866:184:1:o;18357:245::-;18424:6;18477:2;18465:9;18456:7;18452:23;18448:32;18445:52;;;18493:1;18490;18483:12;18445:52;18525:9;18519:16;18544:28;18566:5;18544:28;:::i;18966:251::-;19036:6;19089:2;19077:9;19068:7;19064:23;19060:32;19057:52;;;19105:1;19102;19095:12;19057:52;19137:9;19131:16;19156:31;19181:5;19156:31;:::i;24273:1026::-;24535:4;24583:3;24572:9;24568:19;24614:6;24603:9;24596:25;24640:2;24678:6;24673:2;24662:9;24658:18;24651:34;24721:3;24716:2;24705:9;24701:18;24694:31;24745:6;24780;24774:13;24811:6;24803;24796:22;24849:3;24838:9;24834:19;24827:26;;24888:2;24880:6;24876:15;24862:29;;24909:1;24919:218;24933:6;24930:1;24927:13;24919:218;;;24998:13;;-1:-1:-1;;;;;24994:62:1;24982:75;;25112:15;;;;25077:12;;;;24955:1;24948:9;24919:218;;;-1:-1:-1;;;;;;;25193:55:1;;;;25188:2;25173:18;;25166:83;-1:-1:-1;;;25280:3:1;25265:19;25258:35;25154:3;24273:1026;-1:-1:-1;;;24273:1026:1:o

Swarm Source

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