ETH Price: $3,305.08 (-3.11%)
Gas: 13 Gwei

Token

CapoRekt (CAPO)
 

Overview

Max Total Supply

21,000,000 CAPO

Holders

207

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
milanocuts.eth
Balance
20,759.977118552224482448 CAPO

Value
$0.00
0x49b59df9df381b1634b81e3ea12fcc0bb6ae4498
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:
CapoRekt

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 600 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-24
*/

/*

Is Capo OK?

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    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 IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

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

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

interface IDexRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    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 addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

interface IDexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

contract CapoRekt is ERC20, Ownable {

    uint256 public maxBuyAmount;
    uint256 public maxSellAmount;
    uint256 public maxWalletAmount;

    IDexRouter public dexRouter;
    address public lpPair;

    bool private swapping;
    uint256 public swapTokensAtAmount;

    address operationsAddress;

    uint256 public tradingActiveBlock = 0; // 0 means trading is not active
    mapping (address => bool) public bot;

    bool public limitsInEffect = true;
    bool public tradingActive = false;
    bool public swapEnabled = false;

     // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch
    bool public transferDelayEnabled = true;

    uint256 public buyTotalFees;
    uint256 public buyOperationsFee;
    uint256 public buyLiquidityFee;

    uint256 public sellTotalFees;
    uint256 public sellOperationsFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForOperations;
    uint256 public tokensForLiquidity;

    /******************/

    
    mapping (address => bool) private _isExcludedFromFees;
    mapping (address => bool) public _isExcludedMaxTransactionAmount;

    mapping (address => bool) public automatedMarketMakerPairs;

    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    event EnabledTrading();

    event RemovedLimits();

    event ExcludeFromFees(address indexed account, bool isExcluded);

    event UpdatedMaxBuyAmount(uint256 newAmount);

    event UpdatedMaxSellAmount(uint256 newAmount);

    event UpdatedMaxWalletAmount(uint256 newAmount);

    event UpdatedOperationsAddress(address indexed newWallet);

    event MaxTransactionExclusion(address _address, bool excluded);

    event BuyBackTriggered(uint256 amount);

    event OwnerForcedSwapBack(uint256 timestamp);
 
    event CaughtEarlyBuyer(address sniper);

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiquidity
    );

    event TransferForeignToken(address token, uint256 amount);

    constructor() ERC20(unicode"CapoRekt", unicode"CAPO") {

        address newOwner = msg.sender; 

        IDexRouter _dexRouter = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        dexRouter = _dexRouter;

        lpPair = IDexFactory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH());
        _excludeFromMaxTransaction(address(lpPair), true);
        _setAutomatedMarketMakerPair(address(lpPair), true);

        uint256 totalSupply = 1 * 21e6 * 1e18;

        maxBuyAmount = totalSupply * 2 / 100;
        maxSellAmount = totalSupply * 2 / 100;
        maxWalletAmount = totalSupply * 2 / 100;
        swapTokensAtAmount = totalSupply * 1 / 1000;

        buyOperationsFee = 1;
        buyLiquidityFee = 0;
        buyTotalFees = buyOperationsFee + buyLiquidityFee;

        sellOperationsFee = 15;
        sellLiquidityFee = 0;
        sellTotalFees = sellOperationsFee + sellLiquidityFee;

        _excludeFromMaxTransaction(newOwner, true);
        _excludeFromMaxTransaction(address(this), true);
        _excludeFromMaxTransaction(address(0xdead), true);

        excludeFromFees(newOwner, true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);

        operationsAddress = address(newOwner);

        _createInitialSupply(newOwner, totalSupply);
        transferOwnership(newOwner);
    }

    receive() external payable {}

    // only enable if no plan to airdrop

    function enableTrading() external onlyOwner {
        require(!tradingActive, "Cannot reenable trading");
        tradingActive = true;
        swapEnabled = true;
        tradingActiveBlock = block.number;
        emit EnabledTrading();
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner {
        limitsInEffect = false;
        transferDelayEnabled = false;
        emit RemovedLimits();
    }

    function manageBoughtEarly(address wallet, bool flag) external onlyOwner {
        bot[wallet] = flag;
    }

    function massManageBoughtEarly(address[] calldata wallets, bool flag) external onlyOwner {
        for(uint256 i = 0; i < wallets.length; i++){
            bot[wallets[i]] = flag;
        }
    }

    // disable Transfer delay - cannot be reenabled
    function disableTransferDelay() external onlyOwner {
        transferDelayEnabled = false;
    }

    function updateMaxBuyAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 2 / 1000)/1e18, "Cannot set max buy amount lower than 0.2%");
        maxBuyAmount = newNum * (10**18);
        emit UpdatedMaxBuyAmount(maxBuyAmount);
    }

    function updateMaxSellAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 2 / 1000)/1e18, "Cannot set max sell amount lower than 0.2%");
        maxSellAmount = newNum * (10**18);
        emit UpdatedMaxSellAmount(maxSellAmount);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(newNum >= (totalSupply() * 3 / 1000)/1e18, "Cannot set max wallet amount lower than 0.3%");
        maxWalletAmount = newNum * (10**18);
        emit UpdatedMaxWalletAmount(maxWalletAmount);
    }

    // change the minimum amount of tokens to sell from fees
    function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner {
  	    require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply.");
  	    require(newAmount <= totalSupply() * 1 / 1000, "Swap amount cannot be higher than 0.1% total supply.");
  	    swapTokensAtAmount = newAmount;
  	}

    function _excludeFromMaxTransaction(address updAds, bool isExcluded) private {
        _isExcludedMaxTransactionAmount[updAds] = isExcluded;
        emit MaxTransactionExclusion(updAds, isExcluded);
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) external onlyOwner {
        if(!isEx){
            require(updAds != lpPair, "Cannot remove uniswap pair from max txn");
        }
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != lpPair, "The pair cannot be removed from automatedMarketMakerPairs");

        _setAutomatedMarketMakerPair(pair, value);
        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

        _excludeFromMaxTransaction(pair, value);

        emit SetAutomatedMarketMakerPair(pair, value);
    }

    function updateBuyFees(uint256 _operationsFee, uint256 _liquidityFee) external onlyOwner {
        buyOperationsFee = _operationsFee;
        buyLiquidityFee = _liquidityFee;
        buyTotalFees = buyOperationsFee + buyLiquidityFee;
        require(buyTotalFees <= 20, "Must keep fees at 20% or less");
    }

    function updateSellFees(uint256 _operationsFee, uint256 _liquidityFee) external onlyOwner {
        sellOperationsFee = _operationsFee;
        sellLiquidityFee = _liquidityFee;
        sellTotalFees = sellOperationsFee + sellLiquidityFee;
    }

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

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

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "amount must be greater than 0");

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

        require(!bot[from] && !bot[to], "Bots cannot transfer tokens in or out except to owner or dead address.");

        if(limitsInEffect){
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]){

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
                if (transferDelayEnabled){
                    if (to != address(dexRouter) && to != address(lpPair)){
                        require(_holderLastTransferTimestamp[tx.origin] < block.number - 2 && _holderLastTransferTimestamp[to] < block.number - 2, "_transfer:: Transfer Delay enabled.  Try again later.");
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                        _holderLastTransferTimestamp[to] = block.number;
                    }
                }
    
                //when buy
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                        require(amount <= maxBuyAmount, "Buy transfer amount exceeds the max buy.");
                        require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet");
                }
                //when sell
                else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                        require(amount <= maxSellAmount, "Sell transfer amount exceeds the max sell.");
                }
                else if (!_isExcludedMaxTransactionAmount[to]){
                    require(amount + balanceOf(to) <= maxWalletAmount, "Cannot Exceed max wallet");
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

            swapBack();

            swapping = false;
        }

        bool takeFee = true;
        // if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;
        // only take fees on buys/sells, do not take on wallet transfers
        if(takeFee){
            // on sell
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0){
                fees = amount * sellTotalFees / 100;
                tokensForLiquidity += fees * sellLiquidityFee / sellTotalFees;
                tokensForOperations += fees * sellOperationsFee / sellTotalFees;
            }

            // on buy
            else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) {
        	    fees = amount * buyTotalFees / 100;
        	    tokensForLiquidity += fees * buyLiquidityFee / buyTotalFees;
                tokensForOperations += fees * buyOperationsFee / buyTotalFees;
            }

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

        	amount -= fees;
        }

        super._transfer(from, to, amount);
    }
    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

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

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(dexRouter), tokenAmount);

        // add the liquidity
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0xdead),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForLiquidity + tokensForOperations;

        if(contractBalance == 0 || totalTokensToSwap == 0) {return;}

        if(contractBalance > swapTokensAtAmount * 60){
            contractBalance = swapTokensAtAmount * 60;
        }

        bool success;

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = contractBalance * tokensForLiquidity / totalTokensToSwap / 2;

        swapTokensForEth(contractBalance - liquidityTokens);

        uint256 ethBalance = address(this).balance;
        uint256 ethForLiquidity = ethBalance;

        uint256 ethForOperations = ethBalance * tokensForOperations / (totalTokensToSwap - (tokensForLiquidity/2));

        ethForLiquidity -= ethForOperations;

        tokensForLiquidity = 0;
        tokensForOperations = 0;

        if(liquidityTokens > 0 && ethForLiquidity > 0){
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        if(address(this).balance > 0){
            (success,) = address(operationsAddress).call{value: address(this).balance}("");
        }
    }

    function transferForeignToken(address _token, address _to) external onlyOwner returns (bool _sent) {
        require(_token != address(0), "_token address cannot be 0");
        uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
        _sent = IERC20(_token).transfer(_to, _contractBalance);
        emit TransferForeignToken(_token, _contractBalance);
    }

    // withdraw ETH if stuck or someone sends to the address
    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(msg.sender).call{value: address(this).balance}("");
    }

    function setOperationsAddress(address _operationsAddress) external onlyOwner {
        require(_operationsAddress != address(0), "_operationsAddress address cannot be 0");
        operationsAddress = payable(_operationsAddress);
    }

    // force Swap back if slippage issues.
    function forceSwapBack() external onlyOwner {
        require(balanceOf(address(this)) >= 0, "No tokens to swap");
        swapping = true;
        swapBack();
        swapping = false;
        emit OwnerForcedSwapBack(block.timestamp);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BuyBackTriggered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sniper","type":"address"}],"name":"CaughtEarlyBuyer","type":"event"},{"anonymous":false,"inputs":[],"name":"EnabledTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"excluded","type":"bool"}],"name":"MaxTransactionExclusion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OwnerForcedSwapBack","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":[],"name":"RemovedLimits","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxBuyAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxSellAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"UpdatedMaxWalletAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"}],"name":"UpdatedOperationsAddress","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forceSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"manageBoughtEarly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"massManageBoughtEarly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellOperationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operationsAddress","type":"address"}],"name":"setOperationsAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForOperations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxSellAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_operationsFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600d55600f805462ffffff191660019081179091556011805460ff191690911790553480156200003557600080fd5b506040518060400160405280600881526020016710d85c1bd4995add60c21b815250604051806040016040528060048152602001634341504f60e01b8152508160039081620000859190620007f5565b506004620000948282620007f5565b5050506000620000a9620003ed60201b60201c565b600580546001600160a01b0319166001600160a01b0383169081179091556040519192509060009060008051602062003b8b833981519152908290a350600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051339291829163c45a0155916004808201926020929091908290030181865afa15801562000150573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001769190620008c1565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ea9190620008c1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000238573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025e9190620008c1565b600a80546001600160a01b0319166001600160a01b039290921691821790556200028a906001620003f1565b600a54620002a3906001600160a01b0316600162000454565b6a115eec47f6cf7e350000006064620002be82600262000909565b620002ca919062000929565b6006556064620002dc82600262000909565b620002e8919062000929565b6007556064620002fa82600262000909565b62000306919062000929565b6008556103e86200031982600162000909565b62000325919062000929565b600b55600160138190556000601481905562000341916200094c565b601255600f6016819055600060178190556200035d916200094c565b6015556200036d836001620003f1565b6200037a306001620003f1565b6200038961dead6001620003f1565b62000396836001620004c0565b620003a3306001620004c0565b620003b261dead6001620004c0565b600c80546001600160a01b0319166001600160a01b038516179055620003d983826200056e565b620003e48362000653565b50505062000962565b3390565b6001600160a01b0382166000818152601b6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b6001600160a01b0382166000908152601c60205260409020805460ff1916821515179055620004848282620003f1565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b6005546001600160a01b031633146200050f5760405162461bcd60e51b8152602060048201819052602482015260008051602062003b6b83398151915260448201526064015b60405180910390fd5b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6001600160a01b038216620005c65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000506565b8060026000828254620005da91906200094c565b90915550506001600160a01b03821660009081526020819052604081208054839290620006099084906200094c565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b031633146200069e5760405162461bcd60e51b8152602060048201819052602482015260008051602062003b6b833981519152604482015260640162000506565b6001600160a01b038116620007055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000506565b6005546040516001600160a01b0380841692169060008051602062003b8b83398151915290600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200077b57607f821691505b6020821081036200079c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007f057600081815260208120601f850160051c81016020861015620007cb5750805b601f850160051c820191505b81811015620007ec57828155600101620007d7565b5050505b505050565b81516001600160401b0381111562000811576200081162000750565b620008298162000822845462000766565b84620007a2565b602080601f831160018114620008615760008415620008485750858301515b600019600386901b1c1916600185901b178555620007ec565b600085815260208120601f198616915b82811015620008925788860151825594840194600190910190840162000871565b5085821015620008b15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620008d457600080fd5b81516001600160a01b0381168114620008ec57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620009235762000923620008f3565b92915050565b6000826200094757634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620009235762000923620008f3565b6131f980620009726000396000f3fe6080604052600436106103595760003560e01c80638366e79a116101bb578063c876d0b9116100f7578063e884f26011610095578063f2fde38b1161006f578063f2fde38b14610982578063f5648a4f146109a2578063f6374342146109b7578063fb002c97146109cd57600080fd5b8063e884f26014610941578063ee40166e14610956578063f11a24d31461096c57600080fd5b8063dc3f0d0f116100d1578063dc3f0d0f146108a5578063dd62ed3e146108c5578063e2f456051461090b578063e800dff71461092157600080fd5b8063c876d0b914610855578063d257b34f1461086f578063d85ba0631461088f57600080fd5b8063a457c2d711610164578063b62496f51161013e578063b62496f5146107c6578063bbc0c742146107f6578063c024666814610815578063c18bc1951461083557600080fd5b8063a457c2d714610770578063a9059cbb14610790578063aa4bde28146107b057600080fd5b80638da5cb5b116101955780638da5cb5b1461071d57806395d89b411461073b5780639a7a23d61461075057600080fd5b80638366e79a146106d257806388e765ff146106f25780638a8c523c1461070857600080fd5b8063452ed4f11161029557806366d602ae1161023357806370a082311161020d57806370a0823114610652578063715018a614610688578063751039fc1461069d5780637571336a146106b257600080fd5b806366d602ae146106065780636a486a8e1461061c5780636ddd17131461063257600080fd5b80634f77f6c01161026f5780634f77f6c0146105a557806351f205e4146105bb5780635a139dd4146105d057806366ca9b83146105e657600080fd5b8063452ed4f11461054b578063499b83941461056b5780634a62bb651461058b57600080fd5b806318160ddd116103025780632be32b61116102dc5780632be32b61146104bf578063313ce567146104df578063353f2345146104fb578063395093511461052b57600080fd5b806318160ddd1461046a5780631a8145bb1461048957806323b872dd1461049f57600080fd5b8063095ea7b311610333578063095ea7b3146103ea57806310d5de531461041a578063130a2c3c1461044a57600080fd5b806302dbd8f81461036557806306fdde03146103875780630758d924146103b257600080fd5b3661036057005b600080fd5b34801561037157600080fd5b50610385610380366004612da6565b6109e3565b005b34801561039357600080fd5b5061039c610a4b565b6040516103a99190612dc8565b60405180910390f35b3480156103be57600080fd5b506009546103d2906001600160a01b031681565b6040516001600160a01b0390911681526020016103a9565b3480156103f657600080fd5b5061040a610405366004612e2e565b610add565b60405190151581526020016103a9565b34801561042657600080fd5b5061040a610435366004612e5a565b601b6020526000908152604090205460ff1681565b34801561045657600080fd5b50610385610465366004612e8c565b610af4565b34801561047657600080fd5b506002545b6040519081526020016103a9565b34801561049557600080fd5b5061047b60195481565b3480156104ab57600080fd5b5061040a6104ba366004612f12565b610bb3565b3480156104cb57600080fd5b506103856104da366004612f53565b610c5d565b3480156104eb57600080fd5b50604051601281526020016103a9565b34801561050757600080fd5b5061040a610516366004612e5a565b600e6020526000908152604090205460ff1681565b34801561053757600080fd5b5061040a610546366004612e2e565b610d88565b34801561055757600080fd5b50600a546103d2906001600160a01b031681565b34801561057757600080fd5b50610385610586366004612e5a565b610dc4565b34801561059757600080fd5b50600f5461040a9060ff1681565b3480156105b157600080fd5b5061047b60165481565b3480156105c757600080fd5b50610385610e93565b3480156105dc57600080fd5b5061047b60135481565b3480156105f257600080fd5b50610385610601366004612da6565b610f41565b34801561061257600080fd5b5061047b60075481565b34801561062857600080fd5b5061047b60155481565b34801561063e57600080fd5b50600f5461040a9062010000900460ff1681565b34801561065e57600080fd5b5061047b61066d366004612e5a565b6001600160a01b031660009081526020819052604090205490565b34801561069457600080fd5b50610385610ff6565b3480156106a957600080fd5b50610385611088565b3480156106be57600080fd5b506103856106cd366004612f6c565b611111565b3480156106de57600080fd5b5061040a6106ed366004612fa5565b6111f7565b3480156106fe57600080fd5b5061047b60065481565b34801561071457600080fd5b506103856113c6565b34801561072957600080fd5b506005546001600160a01b03166103d2565b34801561074757600080fd5b5061039c6114a6565b34801561075c57600080fd5b5061038561076b366004612f6c565b6114b5565b34801561077c57600080fd5b5061040a61078b366004612e2e565b6115c7565b34801561079c57600080fd5b5061040a6107ab366004612e2e565b611660565b3480156107bc57600080fd5b5061047b60085481565b3480156107d257600080fd5b5061040a6107e1366004612e5a565b601c6020526000908152604090205460ff1681565b34801561080257600080fd5b50600f5461040a90610100900460ff1681565b34801561082157600080fd5b50610385610830366004612f6c565b61166d565b34801561084157600080fd5b50610385610850366004612f53565b611714565b34801561086157600080fd5b5060115461040a9060ff1681565b34801561087b57600080fd5b5061038561088a366004612f53565b61184c565b34801561089b57600080fd5b5061047b60125481565b3480156108b157600080fd5b506103856108c0366004612f53565b6119c6565b3480156108d157600080fd5b5061047b6108e0366004612fa5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561091757600080fd5b5061047b600b5481565b34801561092d57600080fd5b5061038561093c366004612f6c565b611aeb565b34801561094d57600080fd5b50610385611b5e565b34801561096257600080fd5b5061047b600d5481565b34801561097857600080fd5b5061047b60145481565b34801561098e57600080fd5b5061038561099d366004612e5a565b611bb2565b3480156109ae57600080fd5b50610385611cbb565b3480156109c357600080fd5b5061047b60175481565b3480156109d957600080fd5b5061047b60185481565b6005546001600160a01b03163314610a305760405162461bcd60e51b815260206004820181905260248201526000805160206131a483398151915260448201526064015b60405180910390fd5b60168290556017819055610a448183612fe9565b6015555050565b606060038054610a5a90612ffc565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8690612ffc565b8015610ad35780601f10610aa857610100808354040283529160200191610ad3565b820191906000526020600020905b815481529060010190602001808311610ab657829003601f168201915b5050505050905090565b6000610aea338484611d45565b5060015b92915050565b6005546001600160a01b03163314610b3c5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b60005b82811015610bad5781600e6000868685818110610b5e57610b5e613036565b9050602002016020810190610b739190612e5a565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610ba58161304c565b915050610b3f565b50505050565b6000610bc0848484611e69565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610c455760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a27565b610c528533858403611d45565b506001949350505050565b6005546001600160a01b03163314610ca55760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b670de0b6b3a76400006103e8610cba60025490565b610cc5906002613065565b610ccf919061307c565b610cd9919061307c565b811015610d3a5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b6064820152608401610a27565b610d4c81670de0b6b3a7640000613065565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610aea918590610dbf908690612fe9565b611d45565b6005546001600160a01b03163314610e0c5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6001600160a01b038116610e715760405162461bcd60e51b815260206004820152602660248201527f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60448201526507420626520360d41b6064820152608401610a27565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610edb5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b306000908152602052600a805460ff60a01b1916600160a01b179055610eff6127cd565b600a805460ff60a01b191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6005546001600160a01b03163314610f895760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b60138290556014819055610f9d8183612fe9565b601281905560141015610ff25760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c6573730000006044820152606401610a27565b5050565b6005546001600160a01b0316331461103e5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146110d05760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b600f805460ff199081169091556011805490911690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b031633146111595760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b806111cc57600a546001600160a01b03908116908316036111cc5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610a27565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546000906001600160a01b031633146112425760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6001600160a01b0383166112985760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610a27565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156112df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611303919061309e565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015611356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137a91906130b7565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b0316331461140e5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b600f54610100900460ff16156114665760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610a27565b600f805462ffff0019166201010017905543600d556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b606060048054610a5a90612ffc565b6005546001600160a01b031633146114fd5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b600a546001600160a01b03908116908316036115815760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a27565b61158b828261293a565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156116495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a27565b6116563385858403611d45565b5060019392505050565b6000610aea338484611e69565b6005546001600160a01b031633146116b55760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461175c5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b670de0b6b3a76400006103e861177160025490565b61177c906003613065565b611786919061307c565b611790919061307c565b8110156118055760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201527f6572207468616e20302e332500000000000000000000000000000000000000006064820152608401610a27565b61181781670de0b6b3a7640000613065565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610d7d565b6005546001600160a01b031633146118945760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b620186a06118a160025490565b6118ac906001613065565b6118b6919061307c565b81101561192b5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e3030312520746f74616c20737570706c792e00000000000000000000006064820152608401610a27565b6103e861193760025490565b611942906001613065565b61194c919061307c565b8111156119c15760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20302e312520746f74616c20737570706c792e0000000000000000000000006064820152608401610a27565b600b55565b6005546001600160a01b03163314611a0e5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b670de0b6b3a76400006103e8611a2360025490565b611a2e906002613065565b611a38919061307c565b611a42919061307c565b811015611aa45760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b6064820152608401610a27565b611ab681670de0b6b3a7640000613065565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610d7d565b6005546001600160a01b03163314611b335760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314611ba65760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6011805460ff19169055565b6005546001600160a01b03163314611bfa5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6001600160a01b038116611c5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a27565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611d035760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b604051600090339047908381818185875af1925050503d8060008114610bad576040519150601f19603f3d011682016040523d82523d6000602084013e610bad565b6001600160a01b038316611da75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a27565b6001600160a01b038216611e085760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a27565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ecd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a27565b6001600160a01b038216611f2f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a27565b60008111611f7f5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610a27565b600f54610100900460ff16612019576001600160a01b0383166000908152601a602052604090205460ff1680611fcd57506001600160a01b0382166000908152601a602052604090205460ff165b6120195760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f74206163746976652e000000000000000000006044820152606401610a27565b6001600160a01b0383166000908152600e602052604090205460ff1615801561205b57506001600160a01b0382166000908152600e602052604090205460ff16155b6120dc5760405162461bcd60e51b815260206004820152604660248201527f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60448201527f72206f75742065786365707420746f206f776e6572206f722064656164206164606482015265323932b9b99760d11b608482015260a401610a27565b600f5460ff161561250a576005546001600160a01b0384811691161480159061211357506005546001600160a01b03838116911614155b801561212757506001600160a01b03821615155b801561213e57506001600160a01b03821661dead14155b801561216357506001600160a01b0383166000908152601a602052604090205460ff16155b801561218857506001600160a01b0382166000908152601a602052604090205460ff16155b1561250a5760115460ff16156122a9576009546001600160a01b038381169116148015906121c45750600a546001600160a01b03838116911614155b156122a9576121d46002436130d4565b3260009081526010602052604090205410801561221257506121f76002436130d4565b6001600160a01b038316600090815260106020526040902054105b6122845760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e202054727920616761696e206c617465722e00000000000000000000006064820152608401610a27565b3260009081526010602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383166000908152601c602052604090205460ff1680156122ea57506001600160a01b0382166000908152601b602052604090205460ff16155b156123cb576006548111156123525760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610a27565b6008546001600160a01b0383166000908152602081905260409020546123789083612fe9565b11156123c65760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152606401610a27565b61250a565b6001600160a01b0382166000908152601c602052604090205460ff16801561240c57506001600160a01b0383166000908152601b602052604090205460ff16155b15612476576007548111156123c65760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610a27565b6001600160a01b0382166000908152601b602052604090205460ff1661250a576008546001600160a01b0383166000908152602081905260409020546124bc9083612fe9565b111561250a5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152606401610a27565b30600090815260208190526040902054600b54811080159081906125365750600f5462010000900460ff165b801561254c5750600a54600160a01b900460ff16155b801561257157506001600160a01b0385166000908152601c602052604090205460ff16155b801561259657506001600160a01b0385166000908152601a602052604090205460ff16155b80156125bb57506001600160a01b0384166000908152601a602052604090205460ff16155b156125e957600a805460ff60a01b1916600160a01b1790556125db6127cd565b600a805460ff60a01b191690555b6001600160a01b0385166000908152601a602052604090205460019060ff168061262b57506001600160a01b0385166000908152601a602052604090205460ff165b15612634575060005b600081156127b9576001600160a01b0386166000908152601c602052604090205460ff16801561266657506000601554115b156126ee5760646015548661267b9190613065565b612685919061307c565b9050601554601754826126989190613065565b6126a2919061307c565b601960008282546126b39190612fe9565b90915550506015546016546126c89083613065565b6126d2919061307c565b601860008282546126e39190612fe9565b9091555061279b9050565b6001600160a01b0387166000908152601c602052604090205460ff16801561271857506000601254115b1561279b5760646012548661272d9190613065565b612737919061307c565b90506012546014548261274a9190613065565b612754919061307c565b601960008282546127659190612fe9565b909155505060125460135461277a9083613065565b612784919061307c565b601860008282546127959190612fe9565b90915550505b80156127ac576127ac873083612968565b6127b681866130d4565b94505b6127c4878787612968565b50505050505050565b30600090815260208190526040812054905060006018546019546127f19190612fe9565b90508115806127fe575080155b15612807575050565b600b5461281590603c613065565b82111561282d57600b5461282a90603c613065565b91505b600080600283601954866128419190613065565b61284b919061307c565b612855919061307c565b905061286961286482866130d4565b612b37565b6019544790819060009061287f9060029061307c565b61288990876130d4565b6018546128969085613065565b6128a0919061307c565b90506128ac81836130d4565b60006019819055601855915083158015906128c75750600082115b156128d6576128d68483612c91565b47156127c457600c546040516001600160a01b03909116904790600081818185875af1925050503d8060008114612929576040519150601f19603f3d011682016040523d82523d6000602084013e61292e565b606091505b50505050505050505050565b6001600160a01b0382166000908152601c60205260409020805460ff191682151517905561158b8282612d43565b6001600160a01b0383166129cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a27565b6001600160a01b038216612a2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a27565b6001600160a01b03831660009081526020819052604090205481811015612aa65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a27565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612add908490612fe9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b2991815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612b6c57612b6c613036565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be991906130e7565b81600181518110612bfc57612bfc613036565b6001600160a01b039283166020918202929092010152600954612c229130911684611d45565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790612c5b908590600090869030904290600401613104565b600060405180830381600087803b158015612c7557600080fd5b505af1158015612c89573d6000803e3d6000fd5b505050505050565b600954612ca99030906001600160a01b031684611d45565b60095460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612d17573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d3c9190613175565b5050505050565b6001600160a01b0382166000818152601b6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b60008060408385031215612db957600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015612df557858101830151858201604001528201612dd9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612e2b57600080fd5b50565b60008060408385031215612e4157600080fd5b8235612e4c81612e16565b946020939093013593505050565b600060208284031215612e6c57600080fd5b8135612e7781612e16565b9392505050565b8015158114612e2b57600080fd5b600080600060408486031215612ea157600080fd5b833567ffffffffffffffff80821115612eb957600080fd5b818601915086601f830112612ecd57600080fd5b813581811115612edc57600080fd5b8760208260051b8501011115612ef157600080fd5b60209283019550935050840135612f0781612e7e565b809150509250925092565b600080600060608486031215612f2757600080fd5b8335612f3281612e16565b92506020840135612f4281612e16565b929592945050506040919091013590565b600060208284031215612f6557600080fd5b5035919050565b60008060408385031215612f7f57600080fd5b8235612f8a81612e16565b91506020830135612f9a81612e7e565b809150509250929050565b60008060408385031215612fb857600080fd5b8235612fc381612e16565b91506020830135612f9a81612e16565b634e487b7160e01b600052601160045260246000fd5b80820180821115610aee57610aee612fd3565b600181811c9082168061301057607f821691505b60208210810361303057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006001820161305e5761305e612fd3565b5060010190565b8082028115828204841417610aee57610aee612fd3565b60008261309957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156130b057600080fd5b5051919050565b6000602082840312156130c957600080fd5b8151612e7781612e7e565b81810381811115610aee57610aee612fd3565b6000602082840312156130f957600080fd5b8151612e7781612e16565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131545784516001600160a01b03168352938301939183019160010161312f565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561318a57600080fd5b835192506020840151915060408401519050925092509256fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212200171fda6218431bb1c51fdb698ceaf17f723c9735c42a0d8cb037f25c638ad3d64736f6c634300081100334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0

Deployed Bytecode

0x6080604052600436106103595760003560e01c80638366e79a116101bb578063c876d0b9116100f7578063e884f26011610095578063f2fde38b1161006f578063f2fde38b14610982578063f5648a4f146109a2578063f6374342146109b7578063fb002c97146109cd57600080fd5b8063e884f26014610941578063ee40166e14610956578063f11a24d31461096c57600080fd5b8063dc3f0d0f116100d1578063dc3f0d0f146108a5578063dd62ed3e146108c5578063e2f456051461090b578063e800dff71461092157600080fd5b8063c876d0b914610855578063d257b34f1461086f578063d85ba0631461088f57600080fd5b8063a457c2d711610164578063b62496f51161013e578063b62496f5146107c6578063bbc0c742146107f6578063c024666814610815578063c18bc1951461083557600080fd5b8063a457c2d714610770578063a9059cbb14610790578063aa4bde28146107b057600080fd5b80638da5cb5b116101955780638da5cb5b1461071d57806395d89b411461073b5780639a7a23d61461075057600080fd5b80638366e79a146106d257806388e765ff146106f25780638a8c523c1461070857600080fd5b8063452ed4f11161029557806366d602ae1161023357806370a082311161020d57806370a0823114610652578063715018a614610688578063751039fc1461069d5780637571336a146106b257600080fd5b806366d602ae146106065780636a486a8e1461061c5780636ddd17131461063257600080fd5b80634f77f6c01161026f5780634f77f6c0146105a557806351f205e4146105bb5780635a139dd4146105d057806366ca9b83146105e657600080fd5b8063452ed4f11461054b578063499b83941461056b5780634a62bb651461058b57600080fd5b806318160ddd116103025780632be32b61116102dc5780632be32b61146104bf578063313ce567146104df578063353f2345146104fb578063395093511461052b57600080fd5b806318160ddd1461046a5780631a8145bb1461048957806323b872dd1461049f57600080fd5b8063095ea7b311610333578063095ea7b3146103ea57806310d5de531461041a578063130a2c3c1461044a57600080fd5b806302dbd8f81461036557806306fdde03146103875780630758d924146103b257600080fd5b3661036057005b600080fd5b34801561037157600080fd5b50610385610380366004612da6565b6109e3565b005b34801561039357600080fd5b5061039c610a4b565b6040516103a99190612dc8565b60405180910390f35b3480156103be57600080fd5b506009546103d2906001600160a01b031681565b6040516001600160a01b0390911681526020016103a9565b3480156103f657600080fd5b5061040a610405366004612e2e565b610add565b60405190151581526020016103a9565b34801561042657600080fd5b5061040a610435366004612e5a565b601b6020526000908152604090205460ff1681565b34801561045657600080fd5b50610385610465366004612e8c565b610af4565b34801561047657600080fd5b506002545b6040519081526020016103a9565b34801561049557600080fd5b5061047b60195481565b3480156104ab57600080fd5b5061040a6104ba366004612f12565b610bb3565b3480156104cb57600080fd5b506103856104da366004612f53565b610c5d565b3480156104eb57600080fd5b50604051601281526020016103a9565b34801561050757600080fd5b5061040a610516366004612e5a565b600e6020526000908152604090205460ff1681565b34801561053757600080fd5b5061040a610546366004612e2e565b610d88565b34801561055757600080fd5b50600a546103d2906001600160a01b031681565b34801561057757600080fd5b50610385610586366004612e5a565b610dc4565b34801561059757600080fd5b50600f5461040a9060ff1681565b3480156105b157600080fd5b5061047b60165481565b3480156105c757600080fd5b50610385610e93565b3480156105dc57600080fd5b5061047b60135481565b3480156105f257600080fd5b50610385610601366004612da6565b610f41565b34801561061257600080fd5b5061047b60075481565b34801561062857600080fd5b5061047b60155481565b34801561063e57600080fd5b50600f5461040a9062010000900460ff1681565b34801561065e57600080fd5b5061047b61066d366004612e5a565b6001600160a01b031660009081526020819052604090205490565b34801561069457600080fd5b50610385610ff6565b3480156106a957600080fd5b50610385611088565b3480156106be57600080fd5b506103856106cd366004612f6c565b611111565b3480156106de57600080fd5b5061040a6106ed366004612fa5565b6111f7565b3480156106fe57600080fd5b5061047b60065481565b34801561071457600080fd5b506103856113c6565b34801561072957600080fd5b506005546001600160a01b03166103d2565b34801561074757600080fd5b5061039c6114a6565b34801561075c57600080fd5b5061038561076b366004612f6c565b6114b5565b34801561077c57600080fd5b5061040a61078b366004612e2e565b6115c7565b34801561079c57600080fd5b5061040a6107ab366004612e2e565b611660565b3480156107bc57600080fd5b5061047b60085481565b3480156107d257600080fd5b5061040a6107e1366004612e5a565b601c6020526000908152604090205460ff1681565b34801561080257600080fd5b50600f5461040a90610100900460ff1681565b34801561082157600080fd5b50610385610830366004612f6c565b61166d565b34801561084157600080fd5b50610385610850366004612f53565b611714565b34801561086157600080fd5b5060115461040a9060ff1681565b34801561087b57600080fd5b5061038561088a366004612f53565b61184c565b34801561089b57600080fd5b5061047b60125481565b3480156108b157600080fd5b506103856108c0366004612f53565b6119c6565b3480156108d157600080fd5b5061047b6108e0366004612fa5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561091757600080fd5b5061047b600b5481565b34801561092d57600080fd5b5061038561093c366004612f6c565b611aeb565b34801561094d57600080fd5b50610385611b5e565b34801561096257600080fd5b5061047b600d5481565b34801561097857600080fd5b5061047b60145481565b34801561098e57600080fd5b5061038561099d366004612e5a565b611bb2565b3480156109ae57600080fd5b50610385611cbb565b3480156109c357600080fd5b5061047b60175481565b3480156109d957600080fd5b5061047b60185481565b6005546001600160a01b03163314610a305760405162461bcd60e51b815260206004820181905260248201526000805160206131a483398151915260448201526064015b60405180910390fd5b60168290556017819055610a448183612fe9565b6015555050565b606060038054610a5a90612ffc565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8690612ffc565b8015610ad35780601f10610aa857610100808354040283529160200191610ad3565b820191906000526020600020905b815481529060010190602001808311610ab657829003601f168201915b5050505050905090565b6000610aea338484611d45565b5060015b92915050565b6005546001600160a01b03163314610b3c5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b60005b82811015610bad5781600e6000868685818110610b5e57610b5e613036565b9050602002016020810190610b739190612e5a565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610ba58161304c565b915050610b3f565b50505050565b6000610bc0848484611e69565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610c455760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610a27565b610c528533858403611d45565b506001949350505050565b6005546001600160a01b03163314610ca55760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b670de0b6b3a76400006103e8610cba60025490565b610cc5906002613065565b610ccf919061307c565b610cd9919061307c565b811015610d3a5760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e322560b81b6064820152608401610a27565b610d4c81670de0b6b3a7640000613065565b60068190556040519081527ffcc0366804aaa8dbf88a2924100c733b70dec8445957a5d5f8ff92898de41009906020015b60405180910390a150565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610aea918590610dbf908690612fe9565b611d45565b6005546001600160a01b03163314610e0c5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6001600160a01b038116610e715760405162461bcd60e51b815260206004820152602660248201527f5f6f7065726174696f6e734164647265737320616464726573732063616e6e6f60448201526507420626520360d41b6064820152608401610a27565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610edb5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b306000908152602052600a805460ff60a01b1916600160a01b179055610eff6127cd565b600a805460ff60a01b191690556040514281527f1b56c383f4f48fc992e45667ea4eabae777b9cca68b516a9562d8cda78f1bb329060200160405180910390a1565b6005546001600160a01b03163314610f895760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b60138290556014819055610f9d8183612fe9565b601281905560141015610ff25760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323025206f72206c6573730000006044820152606401610a27565b5050565b6005546001600160a01b0316331461103e5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146110d05760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b600f805460ff199081169091556011805490911690556040517fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c90600090a1565b6005546001600160a01b031633146111595760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b806111cc57600a546001600160a01b03908116908316036111cc5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f742072656d6f766520756e697377617020706169722066726f6d2060448201526636b0bc103a3c3760c91b6064820152608401610a27565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6005546000906001600160a01b031633146112425760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6001600160a01b0383166112985760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610a27565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156112df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611303919061309e565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb906044016020604051808303816000875af1158015611356573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137a91906130b7565b604080516001600160a01b0387168152602081018490529193507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e438910160405180910390a15092915050565b6005546001600160a01b0316331461140e5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b600f54610100900460ff16156114665760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207265656e61626c652074726164696e670000000000000000006044820152606401610a27565b600f805462ffff0019166201010017905543600d556040517fa56feb2d31b9a7424db0be063fd450863979c9e2382cf5110f869bd1ad361bb790600090a1565b606060048054610a5a90612ffc565b6005546001600160a01b031633146114fd5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b600a546001600160a01b03908116908316036115815760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610a27565b61158b828261293a565b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156116495760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a27565b6116563385858403611d45565b5060019392505050565b6000610aea338484611e69565b6005546001600160a01b031633146116b55760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6001600160a01b0382166000818152601a6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b0316331461175c5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b670de0b6b3a76400006103e861177160025490565b61177c906003613065565b611786919061307c565b611790919061307c565b8110156118055760405162461bcd60e51b815260206004820152602c60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f7760448201527f6572207468616e20302e332500000000000000000000000000000000000000006064820152608401610a27565b61181781670de0b6b3a7640000613065565b60088190556040519081527fefc9add9a9b7382de284ef5ad69d8ea863e2680492b21a81948c2d5f04a442bc90602001610d7d565b6005546001600160a01b031633146118945760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b620186a06118a160025490565b6118ac906001613065565b6118b6919061307c565b81101561192b5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527f20302e3030312520746f74616c20737570706c792e00000000000000000000006064820152608401610a27565b6103e861193760025490565b611942906001613065565b61194c919061307c565b8111156119c15760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160448201527f6e20302e312520746f74616c20737570706c792e0000000000000000000000006064820152608401610a27565b600b55565b6005546001600160a01b03163314611a0e5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b670de0b6b3a76400006103e8611a2360025490565b611a2e906002613065565b611a38919061307c565b611a42919061307c565b811015611aa45760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e322560b01b6064820152608401610a27565b611ab681670de0b6b3a7640000613065565b60078190556040519081527f53c4eb831d8cfeb750f1c62590d8cd30f4c6f0380d29a05caa09f0d92588560e90602001610d7d565b6005546001600160a01b03163314611b335760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314611ba65760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6011805460ff19169055565b6005546001600160a01b03163314611bfa5760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b6001600160a01b038116611c5f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a27565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611d035760405162461bcd60e51b815260206004820181905260248201526000805160206131a48339815191526044820152606401610a27565b604051600090339047908381818185875af1925050503d8060008114610bad576040519150601f19603f3d011682016040523d82523d6000602084013e610bad565b6001600160a01b038316611da75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a27565b6001600160a01b038216611e085760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a27565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611ecd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a27565b6001600160a01b038216611f2f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a27565b60008111611f7f5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610a27565b600f54610100900460ff16612019576001600160a01b0383166000908152601a602052604090205460ff1680611fcd57506001600160a01b0382166000908152601a602052604090205460ff165b6120195760405162461bcd60e51b815260206004820152601660248201527f54726164696e67206973206e6f74206163746976652e000000000000000000006044820152606401610a27565b6001600160a01b0383166000908152600e602052604090205460ff1615801561205b57506001600160a01b0382166000908152600e602052604090205460ff16155b6120dc5760405162461bcd60e51b815260206004820152604660248201527f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60448201527f72206f75742065786365707420746f206f776e6572206f722064656164206164606482015265323932b9b99760d11b608482015260a401610a27565b600f5460ff161561250a576005546001600160a01b0384811691161480159061211357506005546001600160a01b03838116911614155b801561212757506001600160a01b03821615155b801561213e57506001600160a01b03821661dead14155b801561216357506001600160a01b0383166000908152601a602052604090205460ff16155b801561218857506001600160a01b0382166000908152601a602052604090205460ff16155b1561250a5760115460ff16156122a9576009546001600160a01b038381169116148015906121c45750600a546001600160a01b03838116911614155b156122a9576121d46002436130d4565b3260009081526010602052604090205410801561221257506121f76002436130d4565b6001600160a01b038316600090815260106020526040902054105b6122845760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e202054727920616761696e206c617465722e00000000000000000000006064820152608401610a27565b3260009081526010602052604080822043908190556001600160a01b03851683529120555b6001600160a01b0383166000908152601c602052604090205460ff1680156122ea57506001600160a01b0382166000908152601b602052604090205460ff16155b156123cb576006548111156123525760405162461bcd60e51b815260206004820152602860248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526736b0bc10313abc9760c11b6064820152608401610a27565b6008546001600160a01b0383166000908152602081905260409020546123789083612fe9565b11156123c65760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152606401610a27565b61250a565b6001600160a01b0382166000908152601c602052604090205460ff16801561240c57506001600160a01b0383166000908152601b602052604090205460ff16155b15612476576007548111156123c65760405162461bcd60e51b815260206004820152602a60248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152691036b0bc1039b2b6361760b11b6064820152608401610a27565b6001600160a01b0382166000908152601b602052604090205460ff1661250a576008546001600160a01b0383166000908152602081905260409020546124bc9083612fe9565b111561250a5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420457863656564206d61782077616c6c657400000000000000006044820152606401610a27565b30600090815260208190526040902054600b54811080159081906125365750600f5462010000900460ff165b801561254c5750600a54600160a01b900460ff16155b801561257157506001600160a01b0385166000908152601c602052604090205460ff16155b801561259657506001600160a01b0385166000908152601a602052604090205460ff16155b80156125bb57506001600160a01b0384166000908152601a602052604090205460ff16155b156125e957600a805460ff60a01b1916600160a01b1790556125db6127cd565b600a805460ff60a01b191690555b6001600160a01b0385166000908152601a602052604090205460019060ff168061262b57506001600160a01b0385166000908152601a602052604090205460ff165b15612634575060005b600081156127b9576001600160a01b0386166000908152601c602052604090205460ff16801561266657506000601554115b156126ee5760646015548661267b9190613065565b612685919061307c565b9050601554601754826126989190613065565b6126a2919061307c565b601960008282546126b39190612fe9565b90915550506015546016546126c89083613065565b6126d2919061307c565b601860008282546126e39190612fe9565b9091555061279b9050565b6001600160a01b0387166000908152601c602052604090205460ff16801561271857506000601254115b1561279b5760646012548661272d9190613065565b612737919061307c565b90506012546014548261274a9190613065565b612754919061307c565b601960008282546127659190612fe9565b909155505060125460135461277a9083613065565b612784919061307c565b601860008282546127959190612fe9565b90915550505b80156127ac576127ac873083612968565b6127b681866130d4565b94505b6127c4878787612968565b50505050505050565b30600090815260208190526040812054905060006018546019546127f19190612fe9565b90508115806127fe575080155b15612807575050565b600b5461281590603c613065565b82111561282d57600b5461282a90603c613065565b91505b600080600283601954866128419190613065565b61284b919061307c565b612855919061307c565b905061286961286482866130d4565b612b37565b6019544790819060009061287f9060029061307c565b61288990876130d4565b6018546128969085613065565b6128a0919061307c565b90506128ac81836130d4565b60006019819055601855915083158015906128c75750600082115b156128d6576128d68483612c91565b47156127c457600c546040516001600160a01b03909116904790600081818185875af1925050503d8060008114612929576040519150601f19603f3d011682016040523d82523d6000602084013e61292e565b606091505b50505050505050505050565b6001600160a01b0382166000908152601c60205260409020805460ff191682151517905561158b8282612d43565b6001600160a01b0383166129cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610a27565b6001600160a01b038216612a2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610a27565b6001600160a01b03831660009081526020819052604090205481811015612aa65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610a27565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612add908490612fe9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b2991815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612b6c57612b6c613036565b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612be991906130e7565b81600181518110612bfc57612bfc613036565b6001600160a01b039283166020918202929092010152600954612c229130911684611d45565b60095460405163791ac94760e01b81526001600160a01b039091169063791ac94790612c5b908590600090869030904290600401613104565b600060405180830381600087803b158015612c7557600080fd5b505af1158015612c89573d6000803e3d6000fd5b505050505050565b600954612ca99030906001600160a01b031684611d45565b60095460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015612d17573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612d3c9190613175565b5050505050565b6001600160a01b0382166000818152601b6020908152604091829020805460ff19168515159081179091558251938452908301527f6b4f1be9103e6cbcd38ca4a922334f2c3109b260130a6676a987f94088fd6746910160405180910390a15050565b60008060408385031215612db957600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015612df557858101830151858201604001528201612dd9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114612e2b57600080fd5b50565b60008060408385031215612e4157600080fd5b8235612e4c81612e16565b946020939093013593505050565b600060208284031215612e6c57600080fd5b8135612e7781612e16565b9392505050565b8015158114612e2b57600080fd5b600080600060408486031215612ea157600080fd5b833567ffffffffffffffff80821115612eb957600080fd5b818601915086601f830112612ecd57600080fd5b813581811115612edc57600080fd5b8760208260051b8501011115612ef157600080fd5b60209283019550935050840135612f0781612e7e565b809150509250925092565b600080600060608486031215612f2757600080fd5b8335612f3281612e16565b92506020840135612f4281612e16565b929592945050506040919091013590565b600060208284031215612f6557600080fd5b5035919050565b60008060408385031215612f7f57600080fd5b8235612f8a81612e16565b91506020830135612f9a81612e7e565b809150509250929050565b60008060408385031215612fb857600080fd5b8235612fc381612e16565b91506020830135612f9a81612e16565b634e487b7160e01b600052601160045260246000fd5b80820180821115610aee57610aee612fd3565b600181811c9082168061301057607f821691505b60208210810361303057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006001820161305e5761305e612fd3565b5060010190565b8082028115828204841417610aee57610aee612fd3565b60008261309957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156130b057600080fd5b5051919050565b6000602082840312156130c957600080fd5b8151612e7781612e7e565b81810381811115610aee57610aee612fd3565b6000602082840312156130f957600080fd5b8151612e7781612e16565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131545784516001600160a01b03168352938301939183019160010161312f565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561318a57600080fd5b835192506020840151915060408401519050925092509256fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212200171fda6218431bb1c51fdb698ceaf17f723c9735c42a0d8cb037f25c638ad3d64736f6c63430008110033

Deployed Bytecode Sourcemap

7732:15020:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15001:249;;;;;;;;;;-1:-1:-1;15001:249:0;;;;;:::i;:::-;;:::i;:::-;;2179:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7885:27;;;;;;;;;;-1:-1:-1;7885:27:0;;;;-1:-1:-1;;;;;7885:27:0;;;;;;-1:-1:-1;;;;;1002:55:1;;;984:74;;972:2;957:18;7885:27:0;820:244:1;3093:169:0;;;;;;;;;;-1:-1:-1;3093:169:0;;;;;:::i;:::-;;:::i;:::-;;;1713:14:1;;1706:22;1688:41;;1676:2;1661:18;3093:169:0;1548:187:1;8924:64:0;;;;;;;;;;-1:-1:-1;8924:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12012:199;;;;;;;;;;-1:-1:-1;12012:199:0;;;;;:::i;:::-;;:::i;2500:108::-;;;;;;;;;;-1:-1:-1;2588:12:0;;2500:108;;;3016:25:1;;;3004:2;2989:18;2500:108:0;2870:177:1;8788:33:0;;;;;;;;;;;;;;;;3270:492;;;;;;;;;;-1:-1:-1;3270:492:0;;;;;:::i;:::-;;:::i;12378:269::-;;;;;;;;;;-1:-1:-1;12378:269:0;;;;;:::i;:::-;;:::i;2399:93::-;;;;;;;;;;-1:-1:-1;2399:93:0;;2482:2;3840:36:1;;3828:2;3813:18;2399:93:0;3698:184:1;8130:36:0;;;;;;;;;;-1:-1:-1;8130:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3770:215;;;;;;;;;;-1:-1:-1;3770:215:0;;;;;:::i;:::-;;:::i;7919:21::-;;;;;;;;;;-1:-1:-1;7919:21:0;;;;-1:-1:-1;;;;;7919:21:0;;;22210:237;;;;;;;;;;-1:-1:-1;22210:237:0;;;;;:::i;:::-;;:::i;8175:33::-;;;;;;;;;;-1:-1:-1;8175:33:0;;;;;;;;8668:32;;;;;;;;;;;;;;;;22499:248;;;;;;;;;;;;;:::i;8556:31::-;;;;;;;;;;;;;;;;14679:314;;;;;;;;;;-1:-1:-1;14679:314:0;;;;;:::i;:::-;;:::i;7811:28::-;;;;;;;;;;;;;;;;8633;;;;;;;;;;;;;;;;8255:31;;;;;;;;;;-1:-1:-1;8255:31:0;;;;;;;;;;;2616:127;;;;;;;;;;-1:-1:-1;2616:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2717:18:0;2690:7;2717:18;;;;;;;;;;;;2616:127;6256:150;;;;;;;;;;;;;:::i;11732:154::-;;;;;;;;;;;;;:::i;13860:260::-;;;;;;;;;;-1:-1:-1;13860:260:0;;;;;:::i;:::-;;:::i;21591:381::-;;;;;;;;;;-1:-1:-1;21591:381:0;;;;;:::i;:::-;;:::i;7777:27::-;;;;;;;;;;;;;;;;11431:249;;;;;;;;;;;;;:::i;6042:79::-;;;;;;;;;;-1:-1:-1;6107:6:0;;-1:-1:-1;;;;;6107:6:0;6042:79;;2287:104;;;;;;;;;;;;;:::i;14128:295::-;;;;;;;;;;-1:-1:-1;14128:295:0;;;;;:::i;:::-;;:::i;3993:413::-;;;;;;;;;;-1:-1:-1;3993:413:0;;;;;:::i;:::-;;:::i;2751:175::-;;;;;;;;;;-1:-1:-1;2751:175:0;;;;;:::i;:::-;;:::i;7846:30::-;;;;;;;;;;;;;;;;8997:58;;;;;;;;;;-1:-1:-1;8997:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8215:33;;;;;;;;;;-1:-1:-1;8215:33:0;;;;;;;;;;;15258:182;;;;;;;;;;-1:-1:-1;15258:182:0;;;;;:::i;:::-;;:::i;12937:284::-;;;;;;;;;;-1:-1:-1;12937:284:0;;;;;:::i;:::-;;:::i;8474:39::-;;;;;;;;;;-1:-1:-1;8474:39:0;;;;;;;;13291:346;;;;;;;;;;-1:-1:-1;13291:346:0;;;;;:::i;:::-;;:::i;8522:27::-;;;;;;;;;;;;;;;;12655:274;;;;;;;;;;-1:-1:-1;12655:274:0;;;;;:::i;:::-;;:::i;2934:151::-;;;;;;;;;;-1:-1:-1;2934:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3050:18:0;;;3023:7;3050:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2934:151;7977:33;;;;;;;;;;;;;;;;11894:110;;;;;;;;;;-1:-1:-1;11894:110:0;;;;;:::i;:::-;;:::i;12272:98::-;;;;;;;;;;;;;:::i;8053:37::-;;;;;;;;;;;;;;;;8594:30;;;;;;;;;;;;;;;;6414:244;;;;;;;;;;-1:-1:-1;6414:244:0;;;;;:::i;:::-;;:::i;22042:160::-;;;;;;;;;;;;;:::i;8707:31::-;;;;;;;;;;;;;;;;8747:34;;;;;;;;;;;;;;;;15001:249;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;;;;;;;;;15102:17:::1;:34:::0;;;15147:16:::1;:32:::0;;;15206:36:::1;15166:13:::0;15122:14;15206:36:::1;:::i;:::-;15190:13;:52:::0;-1:-1:-1;;15001:249:0:o;2179:100::-;2233:13;2266:5;2259:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2179:100;:::o;3093:169::-;3176:4;3193:39;202:10;3216:7;3225:6;3193:8;:39::i;:::-;-1:-1:-1;3250:4:0;3093:169;;;;;:::o;12012:199::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;12116:9:::1;12112:92;12131:18:::0;;::::1;12112:92;;;12188:4;12170:3;:15;12174:7;;12182:1;12174:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12170:15:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12170:15:0;:22;;-1:-1:-1;;12170:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12151:3;::::1;::::0;::::1;:::i;:::-;;;;12112:92;;;;12012:199:::0;;;:::o;3270:492::-;3410:4;3427:36;3437:6;3445:9;3456:6;3427:9;:36::i;:::-;-1:-1:-1;;;;;3503:19:0;;3476:24;3503:19;;;:11;:19;;;;;;;;202:10;3503:33;;;;;;;;3555:26;;;;3547:79;;;;-1:-1:-1;;;3547:79:0;;6380:2:1;3547:79:0;;;6362:21:1;6419:2;6399:18;;;6392:30;6458:34;6438:18;;;6431:62;-1:-1:-1;;;6509:18:1;;;6502:38;6557:19;;3547:79:0;6178:404:1;3547:79:0;3662:57;3671:6;202:10;3712:6;3693:16;:25;3662:8;:57::i;:::-;-1:-1:-1;3750:4:0;;3270:492;-1:-1:-1;;;;3270:492:0:o;12378:269::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;12497:4:::1;12491;12471:13;2588:12:::0;;;2500:108;12471:13:::1;:17;::::0;12487:1:::1;12471:17;:::i;:::-;:24;;;;:::i;:::-;12470:31;;;;:::i;:::-;12460:6;:41;;12452:95;;;::::0;-1:-1:-1;;;12452:95:0;;7184:2:1;12452:95:0::1;::::0;::::1;7166:21:1::0;7223:2;7203:18;;;7196:30;7262:34;7242:18;;;7235:62;-1:-1:-1;;;7313:18:1;;;7306:39;7362:19;;12452:95:0::1;6982:405:1::0;12452:95:0::1;12573:17;:6:::0;12583::::1;12573:17;:::i;:::-;12558:12;:32:::0;;;12606:33:::1;::::0;3016:25:1;;;12606:33:0::1;::::0;3004:2:1;2989:18;12606:33:0::1;;;;;;;;12378:269:::0;:::o;3770:215::-;202:10;3858:4;3907:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;3907:34:0;;;;;;;;;;3858:4;;3875:80;;3898:7;;3907:47;;3944:10;;3907:47;:::i;:::-;3875:8;:80::i;22210:237::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;-1:-1:-1;;;;;22306:32:0;::::1;22298:83;;;::::0;-1:-1:-1;;;22298:83:0;;7594:2:1;22298:83:0::1;::::0;::::1;7576:21:1::0;7633:2;7613:18;;;7606:30;7672:34;7652:18;;;7645:62;-1:-1:-1;;;7723:18:1;;;7716:36;7769:19;;22298:83:0::1;7392:402:1::0;22298:83:0::1;22392:17;:47:::0;;-1:-1:-1;;;;;;22392:47:0::1;-1:-1:-1::0;;;;;22392:47:0;;;::::1;::::0;;;::::1;::::0;;22210:237::o;22499:248::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;22580:4:::1;22590:1;2717:18:::0;;;;;22624:8:::1;:15:::0;;-1:-1:-1;;;;22624:15:0::1;-1:-1:-1::0;;;22624:15:0::1;::::0;;22650:10:::1;:8;:10::i;:::-;22671:8;:16:::0;;-1:-1:-1;;;;22671:16:0::1;::::0;;22703:36:::1;::::0;22723:15:::1;3016:25:1::0;;22703:36:0::1;::::0;3004:2:1;2989:18;22703:36:0::1;;;;;;;22499:248::o:0;14679:314::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;14779:16:::1;:33:::0;;;14823:15:::1;:31:::0;;;14880:34:::1;14841:13:::0;14798:14;14880:34:::1;:::i;:::-;14865:12;:49:::0;;;14949:2:::1;-1:-1:-1::0;14933:18:0::1;14925:60;;;::::0;-1:-1:-1;;;14925:60:0;;8347:2:1;14925:60:0::1;::::0;::::1;8329:21:1::0;8386:2;8366:18;;;8359:30;8425:31;8405:18;;;8398:59;8474:18;;14925:60:0::1;8145:353:1::0;14925:60:0::1;14679:314:::0;;:::o;6256:150::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;6349:6:::1;::::0;6328:40:::1;::::0;6365:1:::1;::::0;-1:-1:-1;;;;;6349:6:0::1;::::0;6328:40:::1;::::0;6365:1;;6328:40:::1;6379:6;:19:::0;;-1:-1:-1;;;;;;6379:19:0::1;::::0;;6256:150::o;11732:154::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;11786:14:::1;:22:::0;;-1:-1:-1;;11786:22:0;;::::1;::::0;;;11819:20:::1;:28:::0;;;;::::1;::::0;;11863:15:::1;::::0;::::1;::::0;11803:5:::1;::::0;11863:15:::1;11732:154::o:0;13860:260::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;13956:4:::1;13952:104;;13994:6;::::0;-1:-1:-1;;;;;13994:6:0;;::::1;13984:16:::0;;::::1;::::0;13976:68:::1;;;::::0;-1:-1:-1;;;13976:68:0;;8705:2:1;13976:68:0::1;::::0;::::1;8687:21:1::0;8744:2;8724:18;;;8717:30;8783:34;8763:18;;;8756:62;-1:-1:-1;;;8834:18:1;;;8827:37;8881:19;;13976:68:0::1;8503:403:1::0;13976:68:0::1;-1:-1:-1::0;;;;;14066:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;14066:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13860:260::o;21591:381::-;6169:6;;21678:10;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;-1:-1:-1;;;;;21709:20:0;::::1;21701:59;;;::::0;-1:-1:-1;;;21701:59:0;;9113:2:1;21701:59:0::1;::::0;::::1;9095:21:1::0;9152:2;9132:18;;;9125:30;9191:28;9171:18;;;9164:56;9237:18;;21701:59:0::1;8911:350:1::0;21701:59:0::1;21798:39;::::0;-1:-1:-1;;;21798:39:0;;21831:4:::1;21798:39;::::0;::::1;984:74:1::0;21771:24:0::1;::::0;-1:-1:-1;;;;;21798:24:0;::::1;::::0;::::1;::::0;957:18:1;;21798:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21856:46;::::0;-1:-1:-1;;;21856:46:0;;-1:-1:-1;;;;;9647:55:1;;;21856:46:0::1;::::0;::::1;9629:74:1::0;9719:18;;;9712:34;;;21771:66:0;;-1:-1:-1;21856:23:0;;::::1;::::0;::::1;::::0;9602:18:1;;21856:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21918;::::0;;-1:-1:-1;;;;;9647:55:1;;9629:74;;9734:2;9719:18;;9712:34;;;21848:54:0;;-1:-1:-1;21918:46:0::1;::::0;9602:18:1;21918:46:0::1;;;;;;;21690:282;21591:381:::0;;;;:::o;11431:249::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;11495:13:::1;::::0;::::1;::::0;::::1;;;11494:14;11486:50;;;::::0;-1:-1:-1;;;11486:50:0;;10209:2:1;11486:50:0::1;::::0;::::1;10191:21:1::0;10248:2;10228:18;;;10221:30;10287:25;10267:18;;;10260:53;10330:18;;11486:50:0::1;10007:347:1::0;11486:50:0::1;11547:13;:20:::0;;-1:-1:-1;;11578:18:0;;;;;11628:12:::1;11607:18;:33:::0;11656:16:::1;::::0;::::1;::::0;-1:-1:-1;;11656:16:0::1;11431:249::o:0;2287:104::-;2343:13;2376:7;2369:14;;;;;:::i;14128:295::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;14237:6:::1;::::0;-1:-1:-1;;;;;14237:6:0;;::::1;14229:14:::0;;::::1;::::0;14221:84:::1;;;::::0;-1:-1:-1;;;14221:84:0;;10561:2:1;14221:84:0::1;::::0;::::1;10543:21:1::0;10600:2;10580:18;;;10573:30;10639:34;10619:18;;;10612:62;10710:27;10690:18;;;10683:55;10755:19;;14221:84:0::1;10359:421:1::0;14221:84:0::1;14318:41;14347:4;14353:5;14318:28;:41::i;:::-;14375:40;::::0;;::::1;;::::0;-1:-1:-1;;;;;14375:40:0;::::1;::::0;::::1;::::0;;;::::1;14128:295:::0;;:::o;3993:413::-;202:10;4086:4;4130:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4130:34:0;;;;;;;;;;4183:35;;;;4175:85;;;;-1:-1:-1;;;4175:85:0;;10987:2:1;4175:85:0;;;10969:21:1;11026:2;11006:18;;;10999:30;11065:34;11045:18;;;11038:62;-1:-1:-1;;;11116:18:1;;;11109:35;11161:19;;4175:85:0;10785:401:1;4175:85:0;4296:67;202:10;4319:7;4347:15;4328:16;:34;4296:8;:67::i;:::-;-1:-1:-1;4394:4:0;;3993:413;-1:-1:-1;;;3993:413:0:o;2751:175::-;2837:4;2854:42;202:10;2878:9;2889:6;2854:9;:42::i;15258:182::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;-1:-1:-1;;;;;15343:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;15343:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;15398:34;;1688:41:1;;;15398:34:0::1;::::0;1661:18:1;15398:34:0::1;;;;;;;15258:182:::0;;:::o;12937:284::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;13059:4:::1;13053;13033:13;2588:12:::0;;;2500:108;13033:13:::1;:17;::::0;13049:1:::1;13033:17;:::i;:::-;:24;;;;:::i;:::-;13032:31;;;;:::i;:::-;13022:6;:41;;13014:98;;;::::0;-1:-1:-1;;;13014:98:0;;11393:2:1;13014:98:0::1;::::0;::::1;11375:21:1::0;11432:2;11412:18;;;11405:30;11471:34;11451:18;;;11444:62;11542:14;11522:18;;;11515:42;11574:19;;13014:98:0::1;11191:408:1::0;13014:98:0::1;13141:17;:6:::0;13151::::1;13141:17;:::i;:::-;13123:15;:35:::0;;;13174:39:::1;::::0;3016:25:1;;;13174:39:0::1;::::0;3004:2:1;2989:18;13174:39:0::1;2870:177:1::0;13291:346:0;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;13414:6:::1;13394:13;2588:12:::0;;;2500:108;13394:13:::1;:17;::::0;13410:1:::1;13394:17;:::i;:::-;:26;;;;:::i;:::-;13381:9;:39;;13373:105;;;::::0;-1:-1:-1;;;13373:105:0;;11806:2:1;13373:105:0::1;::::0;::::1;11788:21:1::0;11845:2;11825:18;;;11818:30;11884:34;11864:18;;;11857:62;11955:23;11935:18;;;11928:51;11996:19;;13373:105:0::1;11604:417:1::0;13373:105:0::1;13529:4;13509:13;2588:12:::0;;;2500:108;13509:13:::1;:17;::::0;13525:1:::1;13509:17;:::i;:::-;:24;;;;:::i;:::-;13496:9;:37;;13488:102;;;::::0;-1:-1:-1;;;13488:102:0;;12228:2:1;13488:102:0::1;::::0;::::1;12210:21:1::0;12267:2;12247:18;;;12240:30;12306:34;12286:18;;;12279:62;12377:22;12357:18;;;12350:50;12417:19;;13488:102:0::1;12026:416:1::0;13488:102:0::1;13600:18;:30:::0;13291:346::o;12655:274::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;12775:4:::1;12769;12749:13;2588:12:::0;;;2500:108;12749:13:::1;:17;::::0;12765:1:::1;12749:17;:::i;:::-;:24;;;;:::i;:::-;12748:31;;;;:::i;:::-;12738:6;:41;;12730:96;;;::::0;-1:-1:-1;;;12730:96:0;;12649:2:1;12730:96:0::1;::::0;::::1;12631:21:1::0;12688:2;12668:18;;;12661:30;12727:34;12707:18;;;12700:62;-1:-1:-1;;;12778:18:1;;;12771:40;12828:19;;12730:96:0::1;12447:406:1::0;12730:96:0::1;12853:17;:6:::0;12863::::1;12853:17;:::i;:::-;12837:13;:33:::0;;;12886:35:::1;::::0;3016:25:1;;;12886:35:0::1;::::0;3004:2:1;2989:18;12886:35:0::1;2870:177:1::0;11894:110:0;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;-1:-1:-1;;;;;11978:11:0;;;::::1;;::::0;;;:3:::1;:11;::::0;;;;:18;;-1:-1:-1;;11978:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11894:110::o;12272:98::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;12334:20:::1;:28:::0;;-1:-1:-1;;12334:28:0::1;::::0;;12272:98::o;6414:244::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;-1:-1:-1;;;;;6503:22:0;::::1;6495:73;;;::::0;-1:-1:-1;;;6495:73:0;;13060:2:1;6495:73:0::1;::::0;::::1;13042:21:1::0;13099:2;13079:18;;;13072:30;13138:34;13118:18;;;13111:62;-1:-1:-1;;;13189:18:1;;;13182:36;13235:19;;6495:73:0::1;12858:402:1::0;6495:73:0::1;6605:6;::::0;6584:38:::1;::::0;-1:-1:-1;;;;;6584:38:0;;::::1;::::0;6605:6:::1;::::0;6584:38:::1;::::0;6605:6:::1;::::0;6584:38:::1;6633:6;:17:::0;;-1:-1:-1;;;;;;6633:17:0::1;-1:-1:-1::0;;;;;6633:17:0;;;::::1;::::0;;;::::1;::::0;;6414:244::o;22042:160::-;6169:6;;-1:-1:-1;;;;;6169:6:0;202:10;6169:22;6161:67;;;;-1:-1:-1;;;6161:67:0;;5100:2:1;6161:67:0;;;5082:21:1;;;5119:18;;;5112:30;-1:-1:-1;;;;;;;;;;;5158:18:1;;;5151:62;5230:18;;6161:67:0;4898:356:1;6161:67:0;22136:58:::1;::::0;22100:12:::1;::::0;22144:10:::1;::::0;22168:21:::1;::::0;22100:12;22136:58;22100:12;22136:58;22168:21;22144:10;22136:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5335:380:::0;-1:-1:-1;;;;;5471:19:0;;5463:68;;;;-1:-1:-1;;;5463:68:0;;13677:2:1;5463:68:0;;;13659:21:1;13716:2;13696:18;;;13689:30;13755:34;13735:18;;;13728:62;-1:-1:-1;;;13806:18:1;;;13799:34;13850:19;;5463:68:0;13475:400:1;5463:68:0;-1:-1:-1;;;;;5550:21:0;;5542:68;;;;-1:-1:-1;;;5542:68:0;;14082:2:1;5542:68:0;;;14064:21:1;14121:2;14101:18;;;14094:30;14160:34;14140:18;;;14133:62;-1:-1:-1;;;14211:18:1;;;14204:32;14253:19;;5542:68:0;13880:398:1;5542:68:0;-1:-1:-1;;;;;5623:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5675:32;;3016:25:1;;;5675:32:0;;2989:18:1;5675:32:0;;;;;;;5335:380;;;:::o;15448:3806::-;-1:-1:-1;;;;;15548:18:0;;15540:68;;;;-1:-1:-1;;;15540:68:0;;14485:2:1;15540:68:0;;;14467:21:1;14524:2;14504:18;;;14497:30;14563:34;14543:18;;;14536:62;-1:-1:-1;;;14614:18:1;;;14607:35;14659:19;;15540:68:0;14283:401:1;15540:68:0;-1:-1:-1;;;;;15627:16:0;;15619:64;;;;-1:-1:-1;;;15619:64:0;;14891:2:1;15619:64:0;;;14873:21:1;14930:2;14910:18;;;14903:30;14969:34;14949:18;;;14942:62;-1:-1:-1;;;15020:18:1;;;15013:33;15063:19;;15619:64:0;14689:399:1;15619:64:0;15711:1;15702:6;:10;15694:52;;;;-1:-1:-1;;;15694:52:0;;15295:2:1;15694:52:0;;;15277:21:1;15334:2;15314:18;;;15307:30;15373:31;15353:18;;;15346:59;15422:18;;15694:52:0;15093:353:1;15694:52:0;15763:13;;;;;;;15759:132;;-1:-1:-1;;;;;15800:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;15829:23:0;;;;;;:19;:23;;;;;;;;15800:52;15792:87;;;;-1:-1:-1;;;15792:87:0;;15653:2:1;15792:87:0;;;15635:21:1;15692:2;15672:18;;;15665:30;15731:24;15711:18;;;15704:52;15773:18;;15792:87:0;15451:346:1;15792:87:0;-1:-1:-1;;;;;15912:9:0;;;;;;:3;:9;;;;;;;;15911:10;:22;;;;-1:-1:-1;;;;;;15926:7:0;;;;;;:3;:7;;;;;;;;15925:8;15911:22;15903:105;;;;-1:-1:-1;;;15903:105:0;;16004:2:1;15903:105:0;;;15986:21:1;16043:2;16023:18;;;16016:30;16082:34;16062:18;;;16055:62;16153:34;16133:18;;;16126:62;-1:-1:-1;;;16204:19:1;;;16197:37;16251:19;;15903:105:0;15802:474:1;15903:105:0;16024:14;;;;16021:1653;;;6107:6;;-1:-1:-1;;;;;16058:15:0;;;6107:6;;16058:15;;;;:32;;-1:-1:-1;6107:6:0;;-1:-1:-1;;;;;16077:13:0;;;6107:6;;16077:13;;16058:32;:52;;;;-1:-1:-1;;;;;;16094:16:0;;;;16058:52;:77;;;;-1:-1:-1;;;;;;16114:21:0;;16128:6;16114:21;;16058:77;:107;;;;-1:-1:-1;;;;;;16140:25:0;;;;;;:19;:25;;;;;;;;16139:26;16058:107;:135;;;;-1:-1:-1;;;;;;16170:23:0;;;;;;:19;:23;;;;;;;;16169:24;16058:135;16054:1609;;;16351:20;;;;16347:506;;;16413:9;;-1:-1:-1;;;;;16399:24:0;;;16413:9;;16399:24;;;;:49;;-1:-1:-1;16441:6:0;;-1:-1:-1;;;;;16427:21:0;;;16441:6;;16427:21;;16399:49;16395:439;;;16526:16;16541:1;16526:12;:16;:::i;:::-;16513:9;16484:39;;;;:28;:39;;;;;;:58;:113;;;;-1:-1:-1;16581:16:0;16596:1;16581:12;:16;:::i;:::-;-1:-1:-1;;;;;16546:32:0;;;;;;:28;:32;;;;;;:51;16484:113;16476:179;;;;-1:-1:-1;;;16476:179:0;;16616:2:1;16476:179:0;;;16598:21:1;16655:2;16635:18;;;16628:30;16694:34;16674:18;;;16667:62;16765:23;16745:18;;;16738:51;16806:19;;16476:179:0;16414:417:1;16476:179:0;16711:9;16682:39;;;;:28;:39;;;;;;16724:12;16682:54;;;;-1:-1:-1;;;;;16763:32:0;;;;;;:47;16395:439;-1:-1:-1;;;;;16909:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;16945:35:0;;;;;;:31;:35;;;;;;;;16944:36;16909:71;16905:743;;;17027:12;;17017:6;:22;;17009:75;;;;-1:-1:-1;;;17009:75:0;;17038:2:1;17009:75:0;;;17020:21:1;17077:2;17057:18;;;17050:30;17116:34;17096:18;;;17089:62;-1:-1:-1;;;17167:18:1;;;17160:38;17215:19;;17009:75:0;16836:404:1;17009:75:0;17145:15;;-1:-1:-1;;;;;2717:18:0;;2690:7;2717:18;;;;;;;;;;;17119:22;;:6;:22;:::i;:::-;:41;;17111:78;;;;-1:-1:-1;;;17111:78:0;;17447:2:1;17111:78:0;;;17429:21:1;17486:2;17466:18;;;17459:30;17525:26;17505:18;;;17498:54;17569:18;;17111:78:0;17245:348:1;17111:78:0;16905:743;;;-1:-1:-1;;;;;17265:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;17299:37:0;;;;;;:31;:37;;;;;;;;17298:38;17265:71;17261:387;;;17383:13;;17373:6;:23;;17365:78;;;;-1:-1:-1;;;17365:78:0;;17800:2:1;17365:78:0;;;17782:21:1;17839:2;17819:18;;;17812:30;17878:34;17858:18;;;17851:62;-1:-1:-1;;;17929:18:1;;;17922:40;17979:19;;17365:78:0;17598:406:1;17261:387:0;-1:-1:-1;;;;;17491:35:0;;;;;;:31;:35;;;;;;;;17486:162;;17584:15;;-1:-1:-1;;;;;2717:18:0;;2690:7;2717:18;;;;;;;;;;;17558:22;;:6;:22;:::i;:::-;:41;;17550:78;;;;-1:-1:-1;;;17550:78:0;;17447:2:1;17550:78:0;;;17429:21:1;17486:2;17466:18;;;17459:30;17525:26;17505:18;;;17498:54;17569:18;;17550:78:0;17245:348:1;17550:78:0;17735:4;17686:28;2717:18;;;;;;;;;;;17793;;17769:42;;;;;;;17827:22;;-1:-1:-1;17838:11:0;;;;;;;17827:22;:35;;;;-1:-1:-1;17854:8:0;;-1:-1:-1;;;17854:8:0;;;;17853:9;17827:35;:71;;;;-1:-1:-1;;;;;;17867:31:0;;;;;;:25;:31;;;;;;;;17866:32;17827:71;:101;;;;-1:-1:-1;;;;;;17903:25:0;;;;;;:19;:25;;;;;;;;17902:26;17827:101;:129;;;;-1:-1:-1;;;;;;17933:23:0;;;;;;:19;:23;;;;;;;;17932:24;17827:129;17824:236;;;17973:8;:15;;-1:-1:-1;;;;17973:15:0;-1:-1:-1;;;17973:15:0;;;18005:10;:8;:10::i;:::-;18032:8;:16;;-1:-1:-1;;;;18032:16:0;;;17824:236;-1:-1:-1;;;;;18190:25:0;;18072:12;18190:25;;;:19;:25;;;;;;18087:4;;18190:25;;;:52;;-1:-1:-1;;;;;;18219:23:0;;;;;;:19;:23;;;;;;;;18190:52;18187:99;;;-1:-1:-1;18269:5:0;18187:99;18298:12;18402:7;18399:802;;;-1:-1:-1;;;;;18453:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;18502:1;18486:13;;:17;18453:50;18449:608;;;18555:3;18539:13;;18530:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;18523:35;;18625:13;;18606:16;;18599:4;:23;;;;:::i;:::-;:39;;;;:::i;:::-;18577:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;18707:13:0;;18687:17;;18680:24;;:4;:24;:::i;:::-;:40;;;;:::i;:::-;18657:19;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;18449:608:0;;-1:-1:-1;18449:608:0;;-1:-1:-1;;;;;18783:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;18833:1;18818:12;;:16;18783:51;18780:277;;;18883:3;18868:12;;18859:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;18852:34;;18949:12;;18931:15;;18924:4;:22;;;;:::i;:::-;:37;;;;:::i;:::-;18902:18;;:59;;;;;;;:::i;:::-;;;;-1:-1:-1;;19029:12:0;;19010:16;;19003:23;;:4;:23;:::i;:::-;:38;;;;:::i;:::-;18980:19;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;18780:277:0;19076:8;;19073:89;;19104:42;19120:4;19134;19141;19104:15;:42::i;:::-;19175:14;19185:4;19175:14;;:::i;:::-;;;18399:802;19213:33;19229:4;19235:2;19239:6;19213:15;:33::i;:::-;15527:3727;;;;15448:3806;;;:::o;20358:1225::-;20441:4;20397:23;2717:18;;;;;;;;;;;20397:50;;20458:25;20507:19;;20486:18;;:40;;;;:::i;:::-;20458:68;-1:-1:-1;20542:20:0;;;:46;;-1:-1:-1;20566:22:0;;20542:46;20539:60;;;20591:7;;20358:1225::o;20539:60::-;20632:18;;:23;;20653:2;20632:23;:::i;:::-;20614:15;:41;20611:113;;;20689:18;;:23;;20710:2;20689:23;:::i;:::-;20671:41;;20611:113;20736:12;20810:23;20895:1;20875:17;20854:18;;20836:15;:36;;;;:::i;:::-;:56;;;;:::i;:::-;:60;;;;:::i;:::-;20810:86;-1:-1:-1;20909:51:0;20926:33;20810:86;20926:15;:33;:::i;:::-;20909:16;:51::i;:::-;21159:18;;20994:21;;;;20973:18;;21159:20;;21178:1;;21159:20;:::i;:::-;21138:42;;:17;:42;:::i;:::-;21115:19;;21102:32;;:10;:32;:::i;:::-;:79;;;;:::i;:::-;21075:106;-1:-1:-1;21194:35:0;21075:106;21194:35;;:::i;:::-;21263:1;21242:18;:22;;;21275:19;:23;21194:35;-1:-1:-1;21314:19:0;;;;;:42;;;21355:1;21337:15;:19;21314:42;21311:119;;;21372:46;21385:15;21402;21372:12;:46::i;:::-;21445:21;:25;21442:134;;21507:17;;21499:65;;-1:-1:-1;;;;;21507:17:0;;;;21538:21;;21499:65;;;;21538:21;21507:17;21499:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;20358:1225:0:o;14431:240::-;-1:-1:-1;;;;;14514:31:0;;;;;;:25;:31;;;;;:39;;-1:-1:-1;;14514:39:0;;;;;;;14566;14514:31;:39;14566:26;:39::i;4414:614::-;-1:-1:-1;;;;;4554:20:0;;4546:70;;;;-1:-1:-1;;;4546:70:0;;14485:2:1;4546:70:0;;;14467:21:1;14524:2;14504:18;;;14497:30;14563:34;14543:18;;;14536:62;-1:-1:-1;;;14614:18:1;;;14607:35;14659:19;;4546:70:0;14283:401:1;4546:70:0;-1:-1:-1;;;;;4635:23:0;;4627:71;;;;-1:-1:-1;;;4627:71:0;;14891:2:1;4627:71:0;;;14873:21:1;14930:2;14910:18;;;14903:30;14969:34;14949:18;;;14942:62;-1:-1:-1;;;15020:18:1;;;15013:33;15063:19;;4627:71:0;14689:399:1;4627:71:0;-1:-1:-1;;;;;4735:17:0;;4711:21;4735:17;;;;;;;;;;;4771:23;;;;4763:74;;;;-1:-1:-1;;;4763:74:0;;18211:2:1;4763:74:0;;;18193:21:1;18250:2;18230:18;;;18223:30;18289:34;18269:18;;;18262:62;-1:-1:-1;;;18340:18:1;;;18333:36;18386:19;;4763:74:0;18009:402:1;4763:74:0;-1:-1:-1;;;;;4873:17:0;;;:9;:17;;;;;;;;;;;4893:22;;;4873:42;;4937:20;;;;;;;;:30;;4909:6;;4873:9;4937:30;;4909:6;;4937:30;:::i;:::-;;;;;;;;5002:9;-1:-1:-1;;;;;4985:35:0;4994:6;-1:-1:-1;;;;;4985:35:0;;5013:6;4985:35;;;;3016:25:1;;3004:2;2989:18;;2870:177;4985:35:0;;;;;;;;4535:493;4414:614;;;:::o;19260:573::-;19412:16;;;19426:1;19412:16;;;;;;;;19388:21;;19412:16;;;;;;;;;;-1:-1:-1;19412:16:0;19388:40;;19457:4;19439;19444:1;19439:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19439:23:0;;;:7;;;;;;;;;;:23;;;;19483:9;;:16;;;-1:-1:-1;;;19483:16:0;;;;:9;;;;;:14;;:16;;;;;19439:7;;19483:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19473:4;19478:1;19473:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19473:26:0;;;:7;;;;;;;;;:26;19544:9;;19512:56;;19529:4;;19544:9;19556:11;19512:8;:56::i;:::-;19607:9;;:218;;-1:-1:-1;;;19607:218:0;;-1:-1:-1;;;;;19607:9:0;;;;:60;;:218;;19682:11;;19607:9;;19752:4;;19779;;19799:15;;19607:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19315:518;19260:573;:::o;19841:509::-;20021:9;;19989:56;;20006:4;;-1:-1:-1;;;;;20021:9:0;20033:11;19989:8;:56::i;:::-;20088:9;;:254;;-1:-1:-1;;;20088:254:0;;20154:4;20088:254;;;20199:34:1;20249:18;;;20242:34;;;20088:9:0;20292:18:1;;;20285:34;;;20335:18;;;20328:34;20294:6:0;20378:19:1;;;20371:44;20316:15:0;20431:19:1;;;20424:35;-1:-1:-1;;;;;20088:9:0;;;;:25;;20121:9;;20110:19:1;;20088:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19841:509;;:::o;13645:207::-;-1:-1:-1;;;;;13733:39:0;;;;;;:31;:39;;;;;;;;;:52;;-1:-1:-1;;13733:52:0;;;;;;;;;;13801:43;;20949:74:1;;;21039:18;;;21032:50;13801:43:0;;20922:18:1;13801:43:0;;;;;;;13645:207;;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;1069:154::-;-1:-1:-1;;;;;1148:5:1;1144:54;1137:5;1134:65;1124:93;;1213:1;1210;1203:12;1124:93;1069:154;:::o;1228:315::-;1296:6;1304;1357:2;1345:9;1336:7;1332:23;1328:32;1325:52;;;1373:1;1370;1363:12;1325:52;1412:9;1399:23;1431:31;1456:5;1431:31;:::i;:::-;1481:5;1533:2;1518:18;;;;1505:32;;-1:-1:-1;;;1228:315:1:o;1740:247::-;1799:6;1852:2;1840:9;1831:7;1827:23;1823:32;1820:52;;;1868:1;1865;1858:12;1820:52;1907:9;1894:23;1926:31;1951:5;1926:31;:::i;:::-;1976:5;1740:247;-1:-1:-1;;;1740:247:1:o;1992:118::-;2078:5;2071:13;2064:21;2057:5;2054:32;2044:60;;2100:1;2097;2090:12;2115:750;2207:6;2215;2223;2276:2;2264:9;2255:7;2251:23;2247:32;2244:52;;;2292:1;2289;2282:12;2244:52;2332:9;2319:23;2361:18;2402:2;2394:6;2391:14;2388:34;;;2418:1;2415;2408:12;2388:34;2456:6;2445:9;2441:22;2431:32;;2501:7;2494:4;2490:2;2486:13;2482:27;2472:55;;2523:1;2520;2513:12;2472:55;2563:2;2550:16;2589:2;2581:6;2578:14;2575:34;;;2605:1;2602;2595:12;2575:34;2660:7;2653:4;2643:6;2640:1;2636:14;2632:2;2628:23;2624:34;2621:47;2618:67;;;2681:1;2678;2671:12;2618:67;2712:4;2704:13;;;;-1:-1:-1;2736:6:1;-1:-1:-1;;2777:20:1;;2764:34;2807:28;2764:34;2807:28;:::i;:::-;2854:5;2844:15;;;2115:750;;;;;:::o;3052:456::-;3129:6;3137;3145;3198:2;3186:9;3177:7;3173:23;3169:32;3166:52;;;3214:1;3211;3204:12;3166:52;3253:9;3240:23;3272:31;3297:5;3272:31;:::i;:::-;3322:5;-1:-1:-1;3379:2:1;3364:18;;3351:32;3392:33;3351:32;3392:33;:::i;:::-;3052:456;;3444:7;;-1:-1:-1;;;3498:2:1;3483:18;;;;3470:32;;3052:456::o;3513:180::-;3572:6;3625:2;3613:9;3604:7;3600:23;3596:32;3593:52;;;3641:1;3638;3631:12;3593:52;-1:-1:-1;3664:23:1;;3513:180;-1:-1:-1;3513:180:1:o;4118:382::-;4183:6;4191;4244:2;4232:9;4223:7;4219:23;4215:32;4212:52;;;4260:1;4257;4250:12;4212:52;4299:9;4286:23;4318:31;4343:5;4318:31;:::i;:::-;4368:5;-1:-1:-1;4425:2:1;4410:18;;4397:32;4438:30;4397:32;4438:30;:::i;:::-;4487:7;4477:17;;;4118:382;;;;;:::o;4505:388::-;4573:6;4581;4634:2;4622:9;4613:7;4609:23;4605:32;4602:52;;;4650:1;4647;4640:12;4602:52;4689:9;4676:23;4708:31;4733:5;4708:31;:::i;:::-;4758:5;-1:-1:-1;4815:2:1;4800:18;;4787:32;4828:33;4787:32;4828:33;:::i;5259:127::-;5320:10;5315:3;5311:20;5308:1;5301:31;5351:4;5348:1;5341:15;5375:4;5372:1;5365:15;5391:125;5456:9;;;5477:10;;;5474:36;;;5490:18;;:::i;5521:380::-;5600:1;5596:12;;;;5643;;;5664:61;;5718:4;5710:6;5706:17;5696:27;;5664:61;5771:2;5763:6;5760:14;5740:18;5737:38;5734:161;;5817:10;5812:3;5808:20;5805:1;5798:31;5852:4;5849:1;5842:15;5880:4;5877:1;5870:15;5734:161;;5521:380;;;:::o;5906:127::-;5967:10;5962:3;5958:20;5955:1;5948:31;5998:4;5995:1;5988:15;6022:4;6019:1;6012:15;6038:135;6077:3;6098:17;;;6095:43;;6118:18;;:::i;:::-;-1:-1:-1;6165:1:1;6154:13;;6038:135::o;6587:168::-;6660:9;;;6691;;6708:15;;;6702:22;;6688:37;6678:71;;6729:18;;:::i;6760:217::-;6800:1;6826;6816:132;;6870:10;6865:3;6861:20;6858:1;6851:31;6905:4;6902:1;6895:15;6933:4;6930:1;6923:15;6816:132;-1:-1:-1;6962:9:1;;6760:217::o;9266:184::-;9336:6;9389:2;9377:9;9368:7;9364:23;9360:32;9357:52;;;9405:1;9402;9395:12;9357:52;-1:-1:-1;9428:16:1;;9266:184;-1:-1:-1;9266:184:1:o;9757:245::-;9824:6;9877:2;9865:9;9856:7;9852:23;9848:32;9845:52;;;9893:1;9890;9883:12;9845:52;9925:9;9919:16;9944:28;9966:5;9944:28;:::i;16281:128::-;16348:9;;;16369:11;;;16366:37;;;16383:18;;:::i;18548:251::-;18618:6;18671:2;18659:9;18650:7;18646:23;18642:32;18639:52;;;18687:1;18684;18677:12;18639:52;18719:9;18713:16;18738:31;18763:5;18738:31;:::i;18804:1026::-;19066:4;19114:3;19103:9;19099:19;19145:6;19134:9;19127:25;19171:2;19209:6;19204:2;19193:9;19189:18;19182:34;19252:3;19247:2;19236:9;19232:18;19225:31;19276:6;19311;19305:13;19342:6;19334;19327:22;19380:3;19369:9;19365:19;19358:26;;19419:2;19411:6;19407:15;19393:29;;19440:1;19450:218;19464:6;19461:1;19458:13;19450:218;;;19529:13;;-1:-1:-1;;;;;19525:62:1;19513:75;;19643:15;;;;19608:12;;;;19486:1;19479:9;19450:218;;;-1:-1:-1;;;;;;;19724:55:1;;;;19719:2;19704:18;;19697:83;-1:-1:-1;;;19811:3:1;19796:19;19789:35;19685:3;18804:1026;-1:-1:-1;;;18804:1026:1:o;20470:306::-;20558:6;20566;20574;20627:2;20615:9;20606:7;20602:23;20598:32;20595:52;;;20643:1;20640;20633:12;20595:52;20672:9;20666:16;20656:26;;20722:2;20711:9;20707:18;20701:25;20691:35;;20766:2;20755:9;20751:18;20745:25;20735:35;;20470:306;;;;;:::o

Swarm Source

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