ETH Price: $3,389.32 (-2.63%)
Gas: 1 Gwei

Token

Magic Unicorn Money (MUM)
 

Overview

Max Total Supply

627,811,314.906219929413120837 MUM

Holders

58

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
12,714,653.466863989889851445 MUM

Value
$0.00
0xd66cf7cb0163ab6fc3ba612133ca162a874595d3
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:
MUM

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
Before the arrival of 2023, in a realm beyond the constraints of time, the cosmos breathed life into an enigmatic value.

Website: https://magicunicornmoney.info
Twitter: https://twitter.com/MUM_ERC
Telegram: https://t.me/MUM_ERC
*/ 

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;
pragma experimental ABIEncoderV2;


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

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

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

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

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

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

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

    function WETH() external pure returns (address);

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

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

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
interface IERC20Metadata is IERC20 {

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

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

    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");

        _beforeTokenTransfer(sender, recipient, amount);

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

        _afterTokenTransfer(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

contract MUM is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapRouterV2 public immutable uniswapRouterV2;
    address public immutable uniswapV2Pair;
    address public constant DEAD = address(0xdead);
    address public routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    bool private swapping;

    address public marketingAddr;
    address public developmentAddr;
    address public lpReceiver;
    address public teamWallet;

    uint256 public maxTxAmount;
    uint256 public swapTokensAtAmount;
    uint256 public maxWallet;

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

    // Anti-bot and anti-whale mappings and variables
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    uint256 private initialBlock;
    uint256 private deadBlocks;

    uint256 public buyTotalFees;
    uint256 public buyMarkFee;
    uint256 public buyLiquidityFee;
    uint256 public buyDevFee;
    uint256 public buyOperationsFee;

    uint256 public sellTotalFees;
    uint256 public sellMarkFee;
    uint256 public sellLiquidityFee;
    uint256 public sellDevFee;
    uint256 public sellOperationsFee;

    uint256 public tokensForMark;
    uint256 public tokensForLiquidity;
    uint256 public tokensForDev;
    uint256 public tokensForOperations;

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

    mapping(address => bool) public automatedMarketMakerPairs;

    event UpdateUniswapV2Router(
        address indexed newAddress,
        address indexed oldAddress
    );

    event ExcludeFromFees(address indexed account, bool isExcluded);

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

    modifier onlyOperation {
      require(isExcludedFromFees(msg.sender));_;
    }

    constructor() ERC20("Magic Unicorn Money", "MUM") {
        IUniswapRouterV2 _uniswapV2Router = IUniswapRouterV2(routerAddress); 

        excludeFromMaxTransaction(address(_uniswapV2Router), true);
        uniswapRouterV2 = _uniswapV2Router;

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTransaction(address(uniswapV2Pair), true);
        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        // launch buy fees
        uint256 _buyMarkFee = 15;
        uint256 _buyLiquidityFee = 0;
        uint256 _buyDevFee = 0;
        uint256 _buyOperationsFee = 0;
        
        // launch sell fees
        uint256 _sellMarkFee = 15;
        uint256 _sellLiquidityFee = 0;
        uint256 _sellDevFee = 0;
        uint256 _sellOperationsFee = 0;

        uint256 totalSupply = 1_000_000_000 * 1e18;

        maxTxAmount = 25_000_000 * 1e18;
        maxWallet = 25_000_000 * 1e18;
        swapTokensAtAmount = (totalSupply * 1) / 10000;

        buyMarkFee = _buyMarkFee;
        buyLiquidityFee = _buyLiquidityFee;
        buyDevFee = _buyDevFee;
        buyOperationsFee = _buyOperationsFee;
        buyTotalFees = buyMarkFee + buyLiquidityFee + buyDevFee + buyOperationsFee;

        sellMarkFee = _sellMarkFee;
        sellLiquidityFee = _sellLiquidityFee;
        sellDevFee = _sellDevFee;
        sellOperationsFee = _sellOperationsFee;
        sellTotalFees = sellMarkFee + sellLiquidityFee + sellDevFee + sellOperationsFee;

        marketingAddr = address(0x97288D8FbBeE2AC40a7ec34606f8Eca2eDA8e064); 
        developmentAddr = address(0x97288D8FbBeE2AC40a7ec34606f8Eca2eDA8e064); 
        lpReceiver = address(0x97288D8FbBeE2AC40a7ec34606f8Eca2eDA8e064); 
        teamWallet = address(0x97288D8FbBeE2AC40a7ec34606f8Eca2eDA8e064);

        // exclude from paying fees or having max transaction amount
        excludeFromFees(owner(), true);
        excludeFromFees(address(this), true);
        excludeFromFees(address(0xdead), true);
        excludeFromFees(address(marketingAddr), true);
        excludeFromFees(address(lpReceiver), true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(0xdead), true);
        excludeFromMaxTransaction(address(marketingAddr), true);
        excludeFromMaxTransaction(address(lpReceiver), true);

        excludeFromMaxWallet(owner(), true);
        excludeFromMaxWallet(address(this), true);
        excludeFromMaxWallet(address(0xdead), true);
        excludeFromMaxWallet(address(marketingAddr), true);
        excludeFromMaxWallet(address(lpReceiver), true);

        _mint(msg.sender, totalSupply);
    }

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

        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

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

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (hasLimits) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0) &&
                to != address(0xdead) &&
                !swapping
            ) {
                if (!tradingActive) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch.
                if (transferDelayEnabled) {
                    if (
                        to != owner() &&
                        to != address(uniswapRouterV2) &&
                        to != address(uniswapV2Pair)
                    ) {
                        require(
                            _holderLastTransferTimestamp[tx.origin] <
                                block.number,
                            "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                        );
                        _holderLastTransferTimestamp[tx.origin] = block.number;
                    }
                }

                //when buy
                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedMaxTransactionAmount[to]
                ) {
                    require(
                        amount <= maxTxAmount,
                        "Buy transfer amount exceeds the maxTxAmount."
                    );
                    if (!_isExcludedMaxWalletAmount[to]) { // Added this condition
                        require(
                            amount + balanceOf(to) <= maxWallet,
                            "Max wallet exceeded"
                        );
                    }
                }
                //when sell
                else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedMaxTransactionAmount[from]
                ) {
                    require(
                        amount <= maxTxAmount,
                        "Sell transfer amount exceeds the maxTxAmount."
                    );
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    if (!_isExcludedMaxWalletAmount[to]) { // Added this condition
                        require(
                            amount + balanceOf(to) <= maxWallet,
                            "Max wallet exceeded"
                        );
                    }
                }
            }
        }

        uint256 contractTokenBalance = balanceOf(address(this));

        bool canSwap = contractTokenBalance >= swapTokensAtAmount;

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

            swapBack();

            swapping = false;
        }

        bool takeFee = !swapping;

        // 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.mul(sellTotalFees).div(100);
                tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees;
                tokensForDev += (fees * sellDevFee) / sellTotalFees;
                tokensForMark += (fees * sellMarkFee) / sellTotalFees;
                tokensForOperations += (fees * sellOperationsFee) / sellTotalFees;
            }
            // on buy
            else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees;
                tokensForDev += (fees * buyDevFee) / buyTotalFees;
                tokensForMark += (fees * buyMarkFee) / 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] = uniswapRouterV2.WETH();

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

        // make the swap
        uniswapRouterV2.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(uniswapRouterV2), tokenAmount);

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

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

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

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

        // Halve the amount of liquidity tokens
        uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2;
        uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens);

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(amountToSwapForETH);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForMark = ethBalance.mul(tokensForMark).div(totalTokensToSwap);
        uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap);
        uint256 ethForOperations = ethBalance.mul(tokensForOperations).div(totalTokensToSwap);

        uint256 ethForLiquidity = ethBalance - ethForMark - ethForDev - ethForOperations;

        tokensForLiquidity = 0;
        tokensForMark = 0;
        tokensForDev = 0;
        tokensForOperations = 0;

        (success, ) = address(developmentAddr).call{value: ethForDev}("");

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
        }
        (success, ) = address(teamWallet).call{value: ethForOperations}("");
        payable(marketingAddr).transfer(address(this).balance);
    }
    
    function enableTrading(uint256 _deadBlocks) external onlyOwner {
        require(!tradingActive, "Token launched");
        tradingActive = true;
        initialBlock = block.number;
        swapEnabled = true;
        deadBlocks = _deadBlocks;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        hasLimits = false;
        return true;
    }

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

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

    function updateMaxTxnAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 1) / 1000) / 1e18,
            "Cannot set maxTxAmount lower than 0.1%"
        );
        maxTxAmount = newNum * (10**18);
    }

    function updateMaxWalletAmount(uint256 newNum) external onlyOwner {
        require(
            newNum >= ((totalSupply() * 5) / 1000) / 1e18,
            "Cannot set maxWallet lower than 0.5%"
        );
        maxWallet = newNum * (10**18);
    }

    receive() external payable {}

    function excludeFromMaxTransaction(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromMaxWallet(address updAds, bool isEx)
        public
        onlyOwner
    {
        _isExcludedMaxWalletAmount[updAds] = isEx;
    }

    function updateBuyFees(
        uint256 _markFee,
        uint256 _liquidityFee,
        uint256 _devFee,
        uint256 _operationsFee
    ) external onlyOwner {
        buyMarkFee = _markFee;
        buyLiquidityFee = _liquidityFee;
        buyDevFee = _devFee;
        buyOperationsFee = _operationsFee;
        buyTotalFees = buyMarkFee + buyLiquidityFee + buyDevFee + buyOperationsFee;
        require(buyTotalFees <= 99);
    }

    function burn(uint256 amount) external {
      _burn(msg.sender, amount);
    }

    function burn(address account, uint256 amount) external onlyOperation {
      _burn(account, amount);
    }

    function updateSellFees(
        uint256 _markFee,
        uint256 _liquidityFee,
        uint256 _devFee,
        uint256 _operationsFee
    ) external onlyOwner {
        sellMarkFee = _markFee;
        sellLiquidityFee = _liquidityFee;
        sellDevFee = _devFee;
        sellOperationsFee = _operationsFee;
        sellTotalFees = sellMarkFee + sellLiquidityFee + sellDevFee + sellOperationsFee;
        require(sellTotalFees <= 99); 
    }

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

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

        _setAutomatedMarketMakerPair(pair, value);
    }
}

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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newAddress","type":"address"},{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"}],"name":"UpdateUniswapV2Router","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxWalletAmount","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":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarkFee","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":"developmentAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"}],"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":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hasLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarkFee","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":[],"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":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMark","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":[{"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":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapRouterV2","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_markFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_markFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_devFee","type":"uint256"},{"internalType":"uint256","name":"_operationsFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055600e805462ffffff191660019081179091556010805460ff191690911790553480156200005657600080fd5b506040518060400160405280601381526020017f4d6167696320556e69636f726e204d6f6e657900000000000000000000000000815250604051806040016040528060038152602001624d554d60e81b8152508160039081620000ba9190620008c6565b506004620000c98282620008c6565b505050620000e6620000e0620004f460201b60201c565b620004f8565b6006546001600160a01b0316620000ff8160016200054a565b6001600160a01b03811660808190526040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200014a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000170919062000992565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e4919062000992565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000232573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000258919062000992565b6001600160a01b031660a0819052620002739060016200054a565b60a05162000283906001620005c4565b6a14adf4b7320334b9000000600b819055600d55600f60008080838180806b033b2e3c9fd0803ce8000000612710620002be826001620009da565b620002ca9190620009fa565b600c5560148990556015889055601687905560178690558587620002ef8a8c62000a1d565b620002fb919062000a1d565b62000307919062000a1d565b6013556019859055601a849055601b839055601c82905581836200032c868862000a1d565b62000338919062000a1d565b62000344919062000a1d565b601855600780547397288d8fbbee2ac40a7ec34606f8eca2eda8e0646001600160a01b031991821681179092556008805482168317905560098054821683179055600a80549091169091179055620003b0620003a86005546001600160a01b031690565b600162000618565b620003bd30600162000618565b620003cc61dead600162000618565b600754620003e5906001600160a01b0316600162000618565b600954620003fe906001600160a01b0316600162000618565b6200041d620004156005546001600160a01b031690565b60016200054a565b6200042a3060016200054a565b6200043961dead60016200054a565b60075462000452906001600160a01b031660016200054a565b6009546200046b906001600160a01b031660016200054a565b6200048a620004826005546001600160a01b031690565b6001620006c2565b62000497306001620006c2565b620004a661dead6001620006c2565b600754620004bf906001600160a01b03166001620006c2565b600954620004d8906001600160a01b03166001620006c2565b620004e4338262000738565b5050505050505050505062000a33565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620005995760405162461bcd60e51b81526020600482018190526024820152600080516020620036c383398151915260448201526064015b60405180910390fd5b6001600160a01b03919091166000908152602260205260409020805460ff1916911515919091179055565b6001600160a01b038216600081815260246020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6005546001600160a01b03163314620006635760405162461bcd60e51b81526020600482018190526024820152600080516020620036c3833981519152604482015260640162000590565b6001600160a01b038216600081815260216020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146200070d5760405162461bcd60e51b81526020600482018190526024820152600080516020620036c3833981519152604482015260640162000590565b6001600160a01b03919091166000908152602360205260409020805460ff1916911515919091179055565b6001600160a01b038216620007905760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000590565b8060026000828254620007a4919062000a1d565b90915550506001600160a01b03821660009081526020819052604081208054839290620007d390849062000a1d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200084d57607f821691505b6020821081036200086e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200081d57600081815260208120601f850160051c810160208610156200089d5750805b601f850160051c820191505b81811015620008be57828155600101620008a9565b505050505050565b81516001600160401b03811115620008e257620008e262000822565b620008fa81620008f3845462000838565b8462000874565b602080601f831160018114620009325760008415620009195750858301515b600019600386901b1c1916600185901b178555620008be565b600085815260208120601f198616915b82811015620009635788860151825594840194600190910190840162000942565b5085821015620009825787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620009a557600080fd5b81516001600160a01b0381168114620009bd57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620009f457620009f4620009c4565b92915050565b60008262000a1857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620009f457620009f4620009c4565b60805160a051612c3262000a91600039600081816105cc01528181610fbb015261187d01526000818161066f0152818161183f015281816125cb01528181612684015281816126c00152818161273a01526127a20152612c326000f3fe6080604052600436106103a65760003560e01c806386871050116101e7578063c18bc1951161010d578063e884f260116100a0578063f48c36f41161006f578063f48c36f414610ae0578063f637434214610afa578063f8b45b0514610b10578063fb002c9714610b2657600080fd5b8063e884f26014610a7f578063f11a24d314610a94578063f1c1c14f14610aaa578063f2fde38b14610ac057600080fd5b8063d85ba063116100dc578063d85ba063146109ed578063dd62ed3e14610a03578063e2f4560514610a49578063e7ad9fcd14610a5f57600080fd5b8063c18bc19514610973578063c876d0b914610993578063d257b34f146109ad578063d2fcc001146109cd57600080fd5b80639dc29fac11610185578063a9059cbb11610154578063a9059cbb146108e4578063b62496f514610904578063bbc0c74214610934578063c02466681461095357600080fd5b80639dc29fac146108785780639fccce3214610898578063a0d82dc5146108ae578063a457c2d7146108c457600080fd5b806395d89b41116101c157806395d89b41146107fd57806396880b17146108125780639a7a23d6146108425780639c3b4fdc1461086257600080fd5b806386871050146107b35780638c0b5e22146107c95780638da5cb5b146107df57600080fd5b806349bd5a5e116102cc5780636a486a8e1161026a578063751039fc11610239578063751039fc146107485780637571336a1461075d5780637f5d4ab71461077d57806382aa7c681461079357600080fd5b80636a486a8e146106c75780636ddd1713146106dd57806370a08231146106fd578063715018a61461073357600080fd5b80634fbee193116102a65780634fbee19314610624578063596fa9e31461065d57806359927044146106915780635a139dd4146106b157600080fd5b806349bd5a5e146105ba5780634ecfe882146105ee5780634f77f6c01461060e57600080fd5b8063203e727e116103445780633268cc56116103135780633268cc561461053a578063395093511461055a5780633ff42b921461057a57806342966c681461059a57600080fd5b8063203e727e146104bc57806323b872dd146104de5780632e6ed7ef146104fe578063313ce5671461051e57600080fd5b806310d5de531161038057806310d5de531461043757806318160ddd146104675780631a8145bb146104865780631f0c57fc1461049c57600080fd5b806303fd2a45146103b257806306fdde03146103e5578063095ea7b31461040757600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103f157600080fd5b506103fa610b3c565b6040516103dc919061281a565b34801561041357600080fd5b5061042761042236600461287d565b610bce565b60405190151581526020016103dc565b34801561044357600080fd5b506104276104523660046128a9565b60226020526000908152604090205460ff1681565b34801561047357600080fd5b506002545b6040519081526020016103dc565b34801561049257600080fd5b50610478601e5481565b3480156104a857600080fd5b506009546103c8906001600160a01b031681565b3480156104c857600080fd5b506104dc6104d73660046128c6565b610be5565b005b3480156104ea57600080fd5b506104276104f93660046128df565b610cc2565b34801561050a57600080fd5b506104dc610519366004612920565b610d6c565b34801561052a57600080fd5b50604051601281526020016103dc565b34801561054657600080fd5b506006546103c8906001600160a01b031681565b34801561056657600080fd5b5061042761057536600461287d565b610de2565b34801561058657600080fd5b506007546103c8906001600160a01b031681565b3480156105a657600080fd5b506104dc6105b53660046128c6565b610e1e565b3480156105c657600080fd5b506103c87f000000000000000000000000000000000000000000000000000000000000000081565b3480156105fa57600080fd5b506008546103c8906001600160a01b031681565b34801561061a57600080fd5b50610478601c5481565b34801561063057600080fd5b5061042761063f3660046128a9565b6001600160a01b031660009081526021602052604090205460ff1690565b34801561066957600080fd5b506103c87f000000000000000000000000000000000000000000000000000000000000000081565b34801561069d57600080fd5b50600a546103c8906001600160a01b031681565b3480156106bd57600080fd5b5061047860175481565b3480156106d357600080fd5b5061047860185481565b3480156106e957600080fd5b50600e546104279062010000900460ff1681565b34801561070957600080fd5b506104786107183660046128a9565b6001600160a01b031660009081526020819052604090205490565b34801561073f57600080fd5b506104dc610e2b565b34801561075457600080fd5b50610427610e61565b34801561076957600080fd5b506104dc610778366004612952565b610e9e565b34801561078957600080fd5b50610478601d5481565b34801561079f57600080fd5b506104dc6107ae3660046128c6565b610ef3565b3480156107bf57600080fd5b5061047860195481565b3480156107d557600080fd5b50610478600b5481565b3480156107eb57600080fd5b506005546001600160a01b03166103c8565b34801561080957600080fd5b506103fa610f80565b34801561081e57600080fd5b5061042761082d3660046128a9565b60236020526000908152604090205460ff1681565b34801561084e57600080fd5b506104dc61085d366004612952565b610f8f565b34801561086e57600080fd5b5061047860165481565b34801561088457600080fd5b506104dc61089336600461287d565b61106e565b3480156108a457600080fd5b50610478601f5481565b3480156108ba57600080fd5b50610478601b5481565b3480156108d057600080fd5b506104276108df36600461287d565b611094565b3480156108f057600080fd5b506104276108ff36600461287d565b61112d565b34801561091057600080fd5b5061042761091f3660046128a9565b60246020526000908152604090205460ff1681565b34801561094057600080fd5b50600e5461042790610100900460ff1681565b34801561095f57600080fd5b506104dc61096e366004612952565b61113a565b34801561097f57600080fd5b506104dc61098e3660046128c6565b6111c3565b34801561099f57600080fd5b506010546104279060ff1681565b3480156109b957600080fd5b506104276109c83660046128c6565b611294565b3480156109d957600080fd5b506104dc6109e8366004612952565b6113e6565b3480156109f957600080fd5b5061047860135481565b348015610a0f57600080fd5b50610478610a1e366004612990565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a5557600080fd5b50610478600c5481565b348015610a6b57600080fd5b506104dc610a7a366004612920565b61143b565b348015610a8b57600080fd5b506104276114ab565b348015610aa057600080fd5b5061047860155481565b348015610ab657600080fd5b5061047860145481565b348015610acc57600080fd5b506104dc610adb3660046128a9565b6114e8565b348015610aec57600080fd5b50600e546104279060ff1681565b348015610b0657600080fd5b50610478601a5481565b348015610b1c57600080fd5b50610478600d5481565b348015610b3257600080fd5b5061047860205481565b606060038054610b4b906129be565b80601f0160208091040260200160405190810160405280929190818152602001828054610b77906129be565b8015610bc45780601f10610b9957610100808354040283529160200191610bc4565b820191906000526020600020905b815481529060010190602001808311610ba757829003601f168201915b5050505050905090565b6000610bdb338484611580565b5060015b92915050565b6005546001600160a01b03163314610c185760405162461bcd60e51b8152600401610c0f906129f8565b60405180910390fd5b670de0b6b3a76400006103e8610c2d60025490565b610c38906001612a43565b610c429190612a5a565b610c4c9190612a5a565b811015610caa5760405162461bcd60e51b815260206004820152602660248201527f43616e6e6f7420736574206d61785478416d6f756e74206c6f776572207468616044820152656e20302e312560d01b6064820152608401610c0f565b610cbc81670de0b6b3a7640000612a43565b600b5550565b6000610ccf8484846116a4565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d545760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c0f565b610d618533858403611580565b506001949350505050565b6005546001600160a01b03163314610d965760405162461bcd60e51b8152600401610c0f906129f8565b60148490556015839055601682905560178190558082610db68587612a7c565b610dc09190612a7c565b610dca9190612a7c565b601381905560631015610ddc57600080fd5b50505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610bdb918590610e19908690612a7c565b611580565b610e283382611f96565b50565b6005546001600160a01b03163314610e555760405162461bcd60e51b8152600401610c0f906129f8565b610e5f60006120e4565b565b6005546000906001600160a01b03163314610e8e5760405162461bcd60e51b8152600401610c0f906129f8565b50600e805460ff19169055600190565b6005546001600160a01b03163314610ec85760405162461bcd60e51b8152600401610c0f906129f8565b6001600160a01b03919091166000908152602260205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f1d5760405162461bcd60e51b8152600401610c0f906129f8565b600e54610100900460ff1615610f665760405162461bcd60e51b815260206004820152600e60248201526d151bdad95b881b185d5b98da195960921b6044820152606401610c0f565b600e80544360115562ffff00191662010100179055601255565b606060048054610b4b906129be565b6005546001600160a01b03163314610fb95760405162461bcd60e51b8152600401610c0f906129f8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036110605760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610c0f565b61106a8282612136565b5050565b3360009081526021602052604090205460ff1661108a57600080fd5b61106a8282611f96565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c0f565b6111233385858403611580565b5060019392505050565b6000610bdb3384846116a4565b6005546001600160a01b031633146111645760405162461bcd60e51b8152600401610c0f906129f8565b6001600160a01b038216600081815260216020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111ed5760405162461bcd60e51b8152600401610c0f906129f8565b670de0b6b3a76400006103e861120260025490565b61120d906005612a43565b6112179190612a5a565b6112219190612a5a565b81101561127c5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610c0f565b61128e81670de0b6b3a7640000612a43565b600d5550565b6005546000906001600160a01b031633146112c15760405162461bcd60e51b8152600401610c0f906129f8565b620186a06112ce60025490565b6112d9906001612a43565b6112e39190612a5a565b8210156113505760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610c0f565b6103e861135c60025490565b611367906005612a43565b6113719190612a5a565b8211156113dd5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610c0f565b50600c55600190565b6005546001600160a01b031633146114105760405162461bcd60e51b8152600401610c0f906129f8565b6001600160a01b03919091166000908152602360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146114655760405162461bcd60e51b8152600401610c0f906129f8565b6019849055601a839055601b829055601c81905580826114858587612a7c565b61148f9190612a7c565b6114999190612a7c565b601881905560631015610ddc57600080fd5b6005546000906001600160a01b031633146114d85760405162461bcd60e51b8152600401610c0f906129f8565b506010805460ff19169055600190565b6005546001600160a01b031633146115125760405162461bcd60e51b8152600401610c0f906129f8565b6001600160a01b0381166115775760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c0f565b610e28816120e4565b6001600160a01b0383166115e25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c0f565b6001600160a01b0382166116435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c0f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116ca5760405162461bcd60e51b8152600401610c0f90612a8f565b6001600160a01b0382166116f05760405162461bcd60e51b8152600401610c0f90612ad4565b80600003611709576117048383600061218a565b505050565b600e5460ff1615611bf4576005546001600160a01b0384811691161480159061174057506005546001600160a01b03838116911614155b801561175457506001600160a01b03821615155b801561176b57506001600160a01b03821661dead14155b80156117815750600654600160a01b900460ff16155b15611bf457600e54610100900460ff16611819576001600160a01b03831660009081526021602052604090205460ff16806117d457506001600160a01b03821660009081526021602052604090205460ff165b6118195760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610c0f565b60105460ff1615611960576005546001600160a01b0383811691161480159061187457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b80156118b257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b1561196057326000908152600f6020526040902054431161194d5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610c0f565b326000908152600f602052604090204390555b6001600160a01b03831660009081526024602052604090205460ff1680156119a157506001600160a01b03821660009081526022602052604090205460ff16155b15611a9c57600b54811115611a0d5760405162461bcd60e51b815260206004820152602c60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526b36b0bc2a3c20b6b7bab73a1760a11b6064820152608401610c0f565b6001600160a01b03821660009081526023602052604090205460ff16611a9757600d546001600160a01b038316600090815260208190526040902054611a539083612a7c565b1115611a975760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610c0f565b611bf4565b6001600160a01b03821660009081526024602052604090205460ff168015611add57506001600160a01b03831660009081526022602052604090205460ff16155b15611b4a57600b54811115611a975760405162461bcd60e51b815260206004820152602d60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526c1036b0bc2a3c20b6b7bab73a1760991b6064820152608401610c0f565b6001600160a01b03821660009081526022602052604090205460ff16611bf4576001600160a01b03821660009081526023602052604090205460ff16611bf457600d546001600160a01b038316600090815260208190526040902054611bb09083612a7c565b1115611bf45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610c0f565b30600090815260208190526040902054600c5481108015908190611c195750600c5483115b8015611c2d5750600e5462010000900460ff165b8015611c435750600654600160a01b900460ff16155b8015611c6857506001600160a01b03851660009081526024602052604090205460ff16155b8015611c8d57506001600160a01b03851660009081526021602052604090205460ff16155b8015611cb257506001600160a01b03841660009081526021602052604090205460ff16155b15611ce0576006805460ff60a01b1916600160a01b179055611cd26122de565b6006805460ff60a01b191690555b6006546001600160a01b03861660009081526021602052604090205460ff600160a01b909204821615911680611d2e57506001600160a01b03851660009081526021602052604090205460ff165b15611d37575060005b60008115611f82576001600160a01b03861660009081526024602052604090205460ff168015611d6957506000601854115b15611e5757611d8e6064611d886018548861254990919063ffffffff16565b9061255c565b9050601854601a5482611da19190612a43565b611dab9190612a5a565b601e6000828254611dbc9190612a7c565b9091555050601854601b54611dd19083612a43565b611ddb9190612a5a565b601f6000828254611dec9190612a7c565b9091555050601854601954611e019083612a43565b611e0b9190612a5a565b601d6000828254611e1c9190612a7c565b9091555050601854601c54611e319083612a43565b611e3b9190612a5a565b60206000828254611e4c9190612a7c565b90915550611f649050565b6001600160a01b03871660009081526024602052604090205460ff168015611e8157506000601354115b15611f6457611ea06064611d886013548861254990919063ffffffff16565b905060135460155482611eb39190612a43565b611ebd9190612a5a565b601e6000828254611ece9190612a7c565b9091555050601354601654611ee39083612a43565b611eed9190612a5a565b601f6000828254611efe9190612a7c565b9091555050601354601454611f139083612a43565b611f1d9190612a5a565b601d6000828254611f2e9190612a7c565b9091555050601354601754611f439083612a43565b611f4d9190612a5a565b60206000828254611f5e9190612a7c565b90915550505b8015611f7557611f7587308361218a565b611f7f8186612b17565b94505b611f8d87878761218a565b50505050505050565b6001600160a01b038216611ff65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610c0f565b6001600160a01b0382166000908152602081905260409020548181101561206a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610c0f565b6001600160a01b0383166000908152602081905260408120838303905560028054849290612099908490612b17565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260246020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166121b05760405162461bcd60e51b8152600401610c0f90612a8f565b6001600160a01b0382166121d65760405162461bcd60e51b8152600401610c0f90612ad4565b6001600160a01b0383166000908152602081905260409020548181101561224e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c0f565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612285908490612a7c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122d191815260200190565b60405180910390a3610ddc565b3060009081526020819052604081205490506000602054601f54601d54601e546123089190612a7c565b6123129190612a7c565b61231c9190612a7c565b9050600082158061232b575081155b1561233557505050565b600c54612343906014612a43565b83111561235b57600c54612358906014612a43565b92505b6000600283601e548661236e9190612a43565b6123789190612a5a565b6123829190612a5a565b905060006123908583612568565b90504761239c82612574565b60006123a84783612568565b905060006123c587611d88601d548561254990919063ffffffff16565b905060006123e288611d88601f548661254990919063ffffffff16565b905060006123ff89611d886020548761254990919063ffffffff16565b90506000818361240f8688612b17565b6124199190612b17565b6124239190612b17565b6000601e819055601d819055601f81905560208190556008546040519293506001600160a01b031691859181818185875af1925050503d8060008114612485576040519150601f19603f3d011682016040523d82523d6000602084013e61248a565b606091505b5090995050871580159061249e5750600081115b156124ad576124ad8882612734565b600a546040516001600160a01b03909116908390600081818185875af1925050503d80600081146124fa576040519150601f19603f3d011682016040523d82523d6000602084013e6124ff565b606091505b5050600754604051919a506001600160a01b0316904780156108fc02916000818181858888f1935050505015801561253b573d6000803e3d6000fd5b505050505050505050505050565b60006125558284612a43565b9392505050565b60006125558284612a5a565b60006125558284612b17565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106125a9576125a9612b2a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264b9190612b40565b8160018151811061265e5761265e612b2a565b60200260200101906001600160a01b031690816001600160a01b0316815250506126a9307f000000000000000000000000000000000000000000000000000000000000000084611580565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906126fe908590600090869030904290600401612b5d565b600060405180830381600087803b15801561271857600080fd5b505af115801561272c573d6000803e3d6000fd5b505050505050565b61275f307f000000000000000000000000000000000000000000000000000000000000000084611580565b60095460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990839060c40160606040518083038185885af11580156127ee573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128139190612bce565b5050505050565b600060208083528351808285015260005b818110156128475785810183015185820160400152820161282b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e2857600080fd5b6000806040838503121561289057600080fd5b823561289b81612868565b946020939093013593505050565b6000602082840312156128bb57600080fd5b813561255581612868565b6000602082840312156128d857600080fd5b5035919050565b6000806000606084860312156128f457600080fd5b83356128ff81612868565b9250602084013561290f81612868565b929592945050506040919091013590565b6000806000806080858703121561293657600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561296557600080fd5b823561297081612868565b91506020830135801515811461298557600080fd5b809150509250929050565b600080604083850312156129a357600080fd5b82356129ae81612868565b9150602083013561298581612868565b600181811c908216806129d257607f821691505b6020821081036129f257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610bdf57610bdf612a2d565b600082612a7757634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bdf57610bdf612a2d565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610bdf57610bdf612a2d565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612b5257600080fd5b815161255581612868565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bad5784516001600160a01b031683529383019391830191600101612b88565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612be357600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c2e072abe5e122d0cb99ef55c63ab3e01a210de8b072ea77c40ee46c30365e5164736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x6080604052600436106103a65760003560e01c806386871050116101e7578063c18bc1951161010d578063e884f260116100a0578063f48c36f41161006f578063f48c36f414610ae0578063f637434214610afa578063f8b45b0514610b10578063fb002c9714610b2657600080fd5b8063e884f26014610a7f578063f11a24d314610a94578063f1c1c14f14610aaa578063f2fde38b14610ac057600080fd5b8063d85ba063116100dc578063d85ba063146109ed578063dd62ed3e14610a03578063e2f4560514610a49578063e7ad9fcd14610a5f57600080fd5b8063c18bc19514610973578063c876d0b914610993578063d257b34f146109ad578063d2fcc001146109cd57600080fd5b80639dc29fac11610185578063a9059cbb11610154578063a9059cbb146108e4578063b62496f514610904578063bbc0c74214610934578063c02466681461095357600080fd5b80639dc29fac146108785780639fccce3214610898578063a0d82dc5146108ae578063a457c2d7146108c457600080fd5b806395d89b41116101c157806395d89b41146107fd57806396880b17146108125780639a7a23d6146108425780639c3b4fdc1461086257600080fd5b806386871050146107b35780638c0b5e22146107c95780638da5cb5b146107df57600080fd5b806349bd5a5e116102cc5780636a486a8e1161026a578063751039fc11610239578063751039fc146107485780637571336a1461075d5780637f5d4ab71461077d57806382aa7c681461079357600080fd5b80636a486a8e146106c75780636ddd1713146106dd57806370a08231146106fd578063715018a61461073357600080fd5b80634fbee193116102a65780634fbee19314610624578063596fa9e31461065d57806359927044146106915780635a139dd4146106b157600080fd5b806349bd5a5e146105ba5780634ecfe882146105ee5780634f77f6c01461060e57600080fd5b8063203e727e116103445780633268cc56116103135780633268cc561461053a578063395093511461055a5780633ff42b921461057a57806342966c681461059a57600080fd5b8063203e727e146104bc57806323b872dd146104de5780632e6ed7ef146104fe578063313ce5671461051e57600080fd5b806310d5de531161038057806310d5de531461043757806318160ddd146104675780631a8145bb146104865780631f0c57fc1461049c57600080fd5b806303fd2a45146103b257806306fdde03146103e5578063095ea7b31461040757600080fd5b366103ad57005b600080fd5b3480156103be57600080fd5b506103c861dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103f157600080fd5b506103fa610b3c565b6040516103dc919061281a565b34801561041357600080fd5b5061042761042236600461287d565b610bce565b60405190151581526020016103dc565b34801561044357600080fd5b506104276104523660046128a9565b60226020526000908152604090205460ff1681565b34801561047357600080fd5b506002545b6040519081526020016103dc565b34801561049257600080fd5b50610478601e5481565b3480156104a857600080fd5b506009546103c8906001600160a01b031681565b3480156104c857600080fd5b506104dc6104d73660046128c6565b610be5565b005b3480156104ea57600080fd5b506104276104f93660046128df565b610cc2565b34801561050a57600080fd5b506104dc610519366004612920565b610d6c565b34801561052a57600080fd5b50604051601281526020016103dc565b34801561054657600080fd5b506006546103c8906001600160a01b031681565b34801561056657600080fd5b5061042761057536600461287d565b610de2565b34801561058657600080fd5b506007546103c8906001600160a01b031681565b3480156105a657600080fd5b506104dc6105b53660046128c6565b610e1e565b3480156105c657600080fd5b506103c87f0000000000000000000000005d2e8c3db70b7e02bcee1447e24c934a53cd983b81565b3480156105fa57600080fd5b506008546103c8906001600160a01b031681565b34801561061a57600080fd5b50610478601c5481565b34801561063057600080fd5b5061042761063f3660046128a9565b6001600160a01b031660009081526021602052604090205460ff1690565b34801561066957600080fd5b506103c87f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561069d57600080fd5b50600a546103c8906001600160a01b031681565b3480156106bd57600080fd5b5061047860175481565b3480156106d357600080fd5b5061047860185481565b3480156106e957600080fd5b50600e546104279062010000900460ff1681565b34801561070957600080fd5b506104786107183660046128a9565b6001600160a01b031660009081526020819052604090205490565b34801561073f57600080fd5b506104dc610e2b565b34801561075457600080fd5b50610427610e61565b34801561076957600080fd5b506104dc610778366004612952565b610e9e565b34801561078957600080fd5b50610478601d5481565b34801561079f57600080fd5b506104dc6107ae3660046128c6565b610ef3565b3480156107bf57600080fd5b5061047860195481565b3480156107d557600080fd5b50610478600b5481565b3480156107eb57600080fd5b506005546001600160a01b03166103c8565b34801561080957600080fd5b506103fa610f80565b34801561081e57600080fd5b5061042761082d3660046128a9565b60236020526000908152604090205460ff1681565b34801561084e57600080fd5b506104dc61085d366004612952565b610f8f565b34801561086e57600080fd5b5061047860165481565b34801561088457600080fd5b506104dc61089336600461287d565b61106e565b3480156108a457600080fd5b50610478601f5481565b3480156108ba57600080fd5b50610478601b5481565b3480156108d057600080fd5b506104276108df36600461287d565b611094565b3480156108f057600080fd5b506104276108ff36600461287d565b61112d565b34801561091057600080fd5b5061042761091f3660046128a9565b60246020526000908152604090205460ff1681565b34801561094057600080fd5b50600e5461042790610100900460ff1681565b34801561095f57600080fd5b506104dc61096e366004612952565b61113a565b34801561097f57600080fd5b506104dc61098e3660046128c6565b6111c3565b34801561099f57600080fd5b506010546104279060ff1681565b3480156109b957600080fd5b506104276109c83660046128c6565b611294565b3480156109d957600080fd5b506104dc6109e8366004612952565b6113e6565b3480156109f957600080fd5b5061047860135481565b348015610a0f57600080fd5b50610478610a1e366004612990565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610a5557600080fd5b50610478600c5481565b348015610a6b57600080fd5b506104dc610a7a366004612920565b61143b565b348015610a8b57600080fd5b506104276114ab565b348015610aa057600080fd5b5061047860155481565b348015610ab657600080fd5b5061047860145481565b348015610acc57600080fd5b506104dc610adb3660046128a9565b6114e8565b348015610aec57600080fd5b50600e546104279060ff1681565b348015610b0657600080fd5b50610478601a5481565b348015610b1c57600080fd5b50610478600d5481565b348015610b3257600080fd5b5061047860205481565b606060038054610b4b906129be565b80601f0160208091040260200160405190810160405280929190818152602001828054610b77906129be565b8015610bc45780601f10610b9957610100808354040283529160200191610bc4565b820191906000526020600020905b815481529060010190602001808311610ba757829003601f168201915b5050505050905090565b6000610bdb338484611580565b5060015b92915050565b6005546001600160a01b03163314610c185760405162461bcd60e51b8152600401610c0f906129f8565b60405180910390fd5b670de0b6b3a76400006103e8610c2d60025490565b610c38906001612a43565b610c429190612a5a565b610c4c9190612a5a565b811015610caa5760405162461bcd60e51b815260206004820152602660248201527f43616e6e6f7420736574206d61785478416d6f756e74206c6f776572207468616044820152656e20302e312560d01b6064820152608401610c0f565b610cbc81670de0b6b3a7640000612a43565b600b5550565b6000610ccf8484846116a4565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d545760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610c0f565b610d618533858403611580565b506001949350505050565b6005546001600160a01b03163314610d965760405162461bcd60e51b8152600401610c0f906129f8565b60148490556015839055601682905560178190558082610db68587612a7c565b610dc09190612a7c565b610dca9190612a7c565b601381905560631015610ddc57600080fd5b50505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610bdb918590610e19908690612a7c565b611580565b610e283382611f96565b50565b6005546001600160a01b03163314610e555760405162461bcd60e51b8152600401610c0f906129f8565b610e5f60006120e4565b565b6005546000906001600160a01b03163314610e8e5760405162461bcd60e51b8152600401610c0f906129f8565b50600e805460ff19169055600190565b6005546001600160a01b03163314610ec85760405162461bcd60e51b8152600401610c0f906129f8565b6001600160a01b03919091166000908152602260205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610f1d5760405162461bcd60e51b8152600401610c0f906129f8565b600e54610100900460ff1615610f665760405162461bcd60e51b815260206004820152600e60248201526d151bdad95b881b185d5b98da195960921b6044820152606401610c0f565b600e80544360115562ffff00191662010100179055601255565b606060048054610b4b906129be565b6005546001600160a01b03163314610fb95760405162461bcd60e51b8152600401610c0f906129f8565b7f0000000000000000000000005d2e8c3db70b7e02bcee1447e24c934a53cd983b6001600160a01b0316826001600160a01b0316036110605760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006064820152608401610c0f565b61106a8282612136565b5050565b3360009081526021602052604090205460ff1661108a57600080fd5b61106a8282611f96565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c0f565b6111233385858403611580565b5060019392505050565b6000610bdb3384846116a4565b6005546001600160a01b031633146111645760405162461bcd60e51b8152600401610c0f906129f8565b6001600160a01b038216600081815260216020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b6005546001600160a01b031633146111ed5760405162461bcd60e51b8152600401610c0f906129f8565b670de0b6b3a76400006103e861120260025490565b61120d906005612a43565b6112179190612a5a565b6112219190612a5a565b81101561127c5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e20604482015263302e352560e01b6064820152608401610c0f565b61128e81670de0b6b3a7640000612a43565b600d5550565b6005546000906001600160a01b031633146112c15760405162461bcd60e51b8152600401610c0f906129f8565b620186a06112ce60025490565b6112d9906001612a43565b6112e39190612a5a565b8210156113505760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610c0f565b6103e861135c60025490565b611367906005612a43565b6113719190612a5a565b8211156113dd5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610c0f565b50600c55600190565b6005546001600160a01b031633146114105760405162461bcd60e51b8152600401610c0f906129f8565b6001600160a01b03919091166000908152602360205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146114655760405162461bcd60e51b8152600401610c0f906129f8565b6019849055601a839055601b829055601c81905580826114858587612a7c565b61148f9190612a7c565b6114999190612a7c565b601881905560631015610ddc57600080fd5b6005546000906001600160a01b031633146114d85760405162461bcd60e51b8152600401610c0f906129f8565b506010805460ff19169055600190565b6005546001600160a01b031633146115125760405162461bcd60e51b8152600401610c0f906129f8565b6001600160a01b0381166115775760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c0f565b610e28816120e4565b6001600160a01b0383166115e25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c0f565b6001600160a01b0382166116435760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c0f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166116ca5760405162461bcd60e51b8152600401610c0f90612a8f565b6001600160a01b0382166116f05760405162461bcd60e51b8152600401610c0f90612ad4565b80600003611709576117048383600061218a565b505050565b600e5460ff1615611bf4576005546001600160a01b0384811691161480159061174057506005546001600160a01b03838116911614155b801561175457506001600160a01b03821615155b801561176b57506001600160a01b03821661dead14155b80156117815750600654600160a01b900460ff16155b15611bf457600e54610100900460ff16611819576001600160a01b03831660009081526021602052604090205460ff16806117d457506001600160a01b03821660009081526021602052604090205460ff165b6118195760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b6044820152606401610c0f565b60105460ff1615611960576005546001600160a01b0383811691161480159061187457507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316826001600160a01b031614155b80156118b257507f0000000000000000000000005d2e8c3db70b7e02bcee1447e24c934a53cd983b6001600160a01b0316826001600160a01b031614155b1561196057326000908152600f6020526040902054431161194d5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610c0f565b326000908152600f602052604090204390555b6001600160a01b03831660009081526024602052604090205460ff1680156119a157506001600160a01b03821660009081526022602052604090205460ff16155b15611a9c57600b54811115611a0d5760405162461bcd60e51b815260206004820152602c60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526b36b0bc2a3c20b6b7bab73a1760a11b6064820152608401610c0f565b6001600160a01b03821660009081526023602052604090205460ff16611a9757600d546001600160a01b038316600090815260208190526040902054611a539083612a7c565b1115611a975760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610c0f565b611bf4565b6001600160a01b03821660009081526024602052604090205460ff168015611add57506001600160a01b03831660009081526022602052604090205460ff16155b15611b4a57600b54811115611a975760405162461bcd60e51b815260206004820152602d60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526c1036b0bc2a3c20b6b7bab73a1760991b6064820152608401610c0f565b6001600160a01b03821660009081526022602052604090205460ff16611bf4576001600160a01b03821660009081526023602052604090205460ff16611bf457600d546001600160a01b038316600090815260208190526040902054611bb09083612a7c565b1115611bf45760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610c0f565b30600090815260208190526040902054600c5481108015908190611c195750600c5483115b8015611c2d5750600e5462010000900460ff165b8015611c435750600654600160a01b900460ff16155b8015611c6857506001600160a01b03851660009081526024602052604090205460ff16155b8015611c8d57506001600160a01b03851660009081526021602052604090205460ff16155b8015611cb257506001600160a01b03841660009081526021602052604090205460ff16155b15611ce0576006805460ff60a01b1916600160a01b179055611cd26122de565b6006805460ff60a01b191690555b6006546001600160a01b03861660009081526021602052604090205460ff600160a01b909204821615911680611d2e57506001600160a01b03851660009081526021602052604090205460ff165b15611d37575060005b60008115611f82576001600160a01b03861660009081526024602052604090205460ff168015611d6957506000601854115b15611e5757611d8e6064611d886018548861254990919063ffffffff16565b9061255c565b9050601854601a5482611da19190612a43565b611dab9190612a5a565b601e6000828254611dbc9190612a7c565b9091555050601854601b54611dd19083612a43565b611ddb9190612a5a565b601f6000828254611dec9190612a7c565b9091555050601854601954611e019083612a43565b611e0b9190612a5a565b601d6000828254611e1c9190612a7c565b9091555050601854601c54611e319083612a43565b611e3b9190612a5a565b60206000828254611e4c9190612a7c565b90915550611f649050565b6001600160a01b03871660009081526024602052604090205460ff168015611e8157506000601354115b15611f6457611ea06064611d886013548861254990919063ffffffff16565b905060135460155482611eb39190612a43565b611ebd9190612a5a565b601e6000828254611ece9190612a7c565b9091555050601354601654611ee39083612a43565b611eed9190612a5a565b601f6000828254611efe9190612a7c565b9091555050601354601454611f139083612a43565b611f1d9190612a5a565b601d6000828254611f2e9190612a7c565b9091555050601354601754611f439083612a43565b611f4d9190612a5a565b60206000828254611f5e9190612a7c565b90915550505b8015611f7557611f7587308361218a565b611f7f8186612b17565b94505b611f8d87878761218a565b50505050505050565b6001600160a01b038216611ff65760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610c0f565b6001600160a01b0382166000908152602081905260409020548181101561206a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610c0f565b6001600160a01b0383166000908152602081905260408120838303905560028054849290612099908490612b17565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600081815260246020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b6001600160a01b0383166121b05760405162461bcd60e51b8152600401610c0f90612a8f565b6001600160a01b0382166121d65760405162461bcd60e51b8152600401610c0f90612ad4565b6001600160a01b0383166000908152602081905260409020548181101561224e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c0f565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612285908490612a7c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122d191815260200190565b60405180910390a3610ddc565b3060009081526020819052604081205490506000602054601f54601d54601e546123089190612a7c565b6123129190612a7c565b61231c9190612a7c565b9050600082158061232b575081155b1561233557505050565b600c54612343906014612a43565b83111561235b57600c54612358906014612a43565b92505b6000600283601e548661236e9190612a43565b6123789190612a5a565b6123829190612a5a565b905060006123908583612568565b90504761239c82612574565b60006123a84783612568565b905060006123c587611d88601d548561254990919063ffffffff16565b905060006123e288611d88601f548661254990919063ffffffff16565b905060006123ff89611d886020548761254990919063ffffffff16565b90506000818361240f8688612b17565b6124199190612b17565b6124239190612b17565b6000601e819055601d819055601f81905560208190556008546040519293506001600160a01b031691859181818185875af1925050503d8060008114612485576040519150601f19603f3d011682016040523d82523d6000602084013e61248a565b606091505b5090995050871580159061249e5750600081115b156124ad576124ad8882612734565b600a546040516001600160a01b03909116908390600081818185875af1925050503d80600081146124fa576040519150601f19603f3d011682016040523d82523d6000602084013e6124ff565b606091505b5050600754604051919a506001600160a01b0316904780156108fc02916000818181858888f1935050505015801561253b573d6000803e3d6000fd5b505050505050505050505050565b60006125558284612a43565b9392505050565b60006125558284612a5a565b60006125558284612b17565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106125a9576125a9612b2a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264b9190612b40565b8160018151811061265e5761265e612b2a565b60200260200101906001600160a01b031690816001600160a01b0316815250506126a9307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611580565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906126fe908590600090869030904290600401612b5d565b600060405180830381600087803b15801561271857600080fd5b505af115801561272c573d6000803e3d6000fd5b505050505050565b61275f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611580565b60095460405163f305d71960e01b81523060048201526024810184905260006044820181905260648201526001600160a01b0391821660848201524260a48201527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063f305d71990839060c40160606040518083038185885af11580156127ee573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128139190612bce565b5050505050565b600060208083528351808285015260005b818110156128475785810183015185820160400152820161282b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e2857600080fd5b6000806040838503121561289057600080fd5b823561289b81612868565b946020939093013593505050565b6000602082840312156128bb57600080fd5b813561255581612868565b6000602082840312156128d857600080fd5b5035919050565b6000806000606084860312156128f457600080fd5b83356128ff81612868565b9250602084013561290f81612868565b929592945050506040919091013590565b6000806000806080858703121561293657600080fd5b5050823594602084013594506040840135936060013592509050565b6000806040838503121561296557600080fd5b823561297081612868565b91506020830135801515811461298557600080fd5b809150509250929050565b600080604083850312156129a357600080fd5b82356129ae81612868565b9150602083013561298581612868565b600181811c908216806129d257607f821691505b6020821081036129f257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610bdf57610bdf612a2d565b600082612a7757634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bdf57610bdf612a2d565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b81810381811115610bdf57610bdf612a2d565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612b5257600080fd5b815161255581612868565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612bad5784516001600160a01b031683529383019391830191600101612b88565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612be357600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220c2e072abe5e122d0cb99ef55c63ab3e01a210de8b072ea77c40ee46c30365e5164736f6c63430008130033

Deployed Bytecode Sourcemap

9722:16969:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9896:46;;;;;;;;;;;;9935:6;9896:46;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;9896:46:0;;;;;;;;5088:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6002:169::-;;;;;;;;;;-1:-1:-1;6002:169:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;6002:169:0;1231:187:1;11226:63:0;;;;;;;;;;-1:-1:-1;11226:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5409:108;;;;;;;;;;-1:-1:-1;5497:12:0;;5409:108;;;1821:25:1;;;1809:2;1794:18;5409:108:0;1675:177:1;11050:33:0;;;;;;;;;;;;;;;;10133:25;;;;;;;;;;-1:-1:-1;10133:25:0;;;;-1:-1:-1;;;;;10133:25:0;;;24162:257;;;;;;;;;;-1:-1:-1;24162:257:0;;;;;:::i;:::-;;:::i;:::-;;6179:492;;;;;;;;;;-1:-1:-1;6179:492:0;;;;;:::i;:::-;;:::i;25068:446::-;;;;;;;;;;-1:-1:-1;25068:446:0;;;;;:::i;:::-;;:::i;5308:93::-;;;;;;;;;;-1:-1:-1;5308:93:0;;5391:2;3035:36:1;;3023:2;3008:18;5308:93:0;2893:184:1;9949:73:0;;;;;;;;;;-1:-1:-1;9949:73:0;;;;-1:-1:-1;;;;;9949:73:0;;;6679:215;;;;;;;;;;-1:-1:-1;6679:215:0;;;;;:::i;:::-;;:::i;10061:28::-;;;;;;;;;;-1:-1:-1;10061:28:0;;;;-1:-1:-1;;;;;10061:28:0;;;25522:81;;;;;;;;;;-1:-1:-1;25522:81:0;;;;;:::i;:::-;;:::i;9851:38::-;;;;;;;;;;;;;;;10096:30;;;;;;;;;;-1:-1:-1;10096:30:0;;;;-1:-1:-1;;;;;10096:30:0;;;10974:32;;;;;;;;;;;;;;;;14837:126;;;;;;;;;;-1:-1:-1;14837:126:0;;;;;:::i;:::-;-1:-1:-1;;;;;14927:28:0;14903:4;14927:28;;;:19;:28;;;;;;;;;14837:126;9795:49;;;;;;;;;;;;;;;10165:25;;;;;;;;;;-1:-1:-1;10165:25:0;;;;-1:-1:-1;;;;;10165:25:0;;;10796:31;;;;;;;;;;;;;;;;10836:28;;;;;;;;;;;;;;;;10380:31;;;;;;;;;;-1:-1:-1;10380:31:0;;;;;;;;;;;5525:127;;;;;;;;;;-1:-1:-1;5525:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;5626:18:0;5599:7;5626:18;;;;;;;;;;;;5525:127;2349:103;;;;;;;;;;;;;:::i;23275:116::-;;;;;;;;;;;;;:::i;24728:167::-;;;;;;;;;;-1:-1:-1;24728:167:0;;;;;:::i;:::-;;:::i;11015:28::-;;;;;;;;;;;;;;;;22967:256;;;;;;;;;;-1:-1:-1;22967:256:0;;;;;:::i;:::-;;:::i;10871:26::-;;;;;;;;;;;;;;;;10199;;;;;;;;;;;;;;;;2126:87;;;;;;;;;;-1:-1:-1;2199:6:0;;-1:-1:-1;;;;;2199:6:0;2126:87;;5196:104;;;;;;;;;;;;;:::i;11296:58::-;;;;;;;;;;-1:-1:-1;11296:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;26384:304;;;;;;;;;;-1:-1:-1;26384:304:0;;;;;:::i;:::-;;:::i;10765:24::-;;;;;;;;;;;;;;;;25611:109;;;;;;;;;;-1:-1:-1;25611:109:0;;;;;:::i;:::-;;:::i;11090:27::-;;;;;;;;;;;;;;;;10942:25;;;;;;;;;;;;;;;;6902:413;;;;;;;;;;-1:-1:-1;6902:413:0;;;;;:::i;:::-;;:::i;5660:175::-;;;;;;;;;;-1:-1:-1;5660:175:0;;;;;:::i;:::-;;:::i;11363:57::-;;;;;;;;;;-1:-1:-1;11363:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10340:33;;;;;;;;;;-1:-1:-1;10340:33:0;;;;;;;;;;;26194:182;;;;;;;;;;-1:-1:-1;26194:182:0;;;;;:::i;:::-;;:::i;24427:256::-;;;;;;;;;;-1:-1:-1;24427:256:0;;;;;:::i;:::-;;:::i;10546:39::-;;;;;;;;;;-1:-1:-1;10546:39:0;;;;;;;;23657:497;;;;;;;;;;-1:-1:-1;23657:497:0;;;;;:::i;:::-;;:::i;24903:157::-;;;;;;;;;;-1:-1:-1;24903:157:0;;;;;:::i;:::-;;:::i;10662:27::-;;;;;;;;;;;;;;;;5843:151;;;;;;;;;;-1:-1:-1;5843:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;5959:18:0;;;5932:7;5959:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5843:151;10232:33;;;;;;;;;;;;;;;;25728:458;;;;;;;;;;-1:-1:-1;25728:458:0;;;;;:::i;:::-;;:::i;23452:135::-;;;;;;;;;;;;;:::i;10728:30::-;;;;;;;;;;;;;;;;10696:25;;;;;;;;;;;;;;;;2460:201;;;;;;;;;;-1:-1:-1;2460:201:0;;;;;:::i;:::-;;:::i;10305:28::-;;;;;;;;;;-1:-1:-1;10305:28:0;;;;;;;;10904:31;;;;;;;;;;;;;;;;10272:24;;;;;;;;;;;;;;;;11124:34;;;;;;;;;;;;;;;;5088:100;5142:13;5175:5;5168:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5088:100;:::o;6002:169::-;6085:4;6102:39;1752:10;6125:7;6134:6;6102:8;:39::i;:::-;-1:-1:-1;6159:4:0;6002:169;;;;;:::o;24162:257::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;;;;;;;;;24299:4:::1;24291;24270:13;5497:12:::0;;;5409:108;24270:13:::1;:17;::::0;24286:1:::1;24270:17;:::i;:::-;24269:26;;;;:::i;:::-;24268:35;;;;:::i;:::-;24258:6;:45;;24236:133;;;::::0;-1:-1:-1;;;24236:133:0;;5603:2:1;24236:133:0::1;::::0;::::1;5585:21:1::0;5642:2;5622:18;;;5615:30;5681:34;5661:18;;;5654:62;-1:-1:-1;;;5732:18:1;;;5725:36;5778:19;;24236:133:0::1;5401:402:1::0;24236:133:0::1;24394:17;:6:::0;24404::::1;24394:17;:::i;:::-;24380:11;:31:::0;-1:-1:-1;24162:257:0:o;6179:492::-;6319:4;6336:36;6346:6;6354:9;6365:6;6336:9;:36::i;:::-;-1:-1:-1;;;;;6412:19:0;;6385:24;6412:19;;;:11;:19;;;;;;;;1752:10;6412:33;;;;;;;;6464:26;;;;6456:79;;;;-1:-1:-1;;;6456:79:0;;6010:2:1;6456:79:0;;;5992:21:1;6049:2;6029:18;;;6022:30;6088:34;6068:18;;;6061:62;-1:-1:-1;;;6139:18:1;;;6132:38;6187:19;;6456:79:0;5808:404:1;6456:79:0;6571:57;6580:6;1752:10;6621:6;6602:16;:25;6571:8;:57::i;:::-;-1:-1:-1;6659:4:0;;6179:492;-1:-1:-1;;;;6179:492:0:o;25068:446::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;25246:10:::1;:21:::0;;;25278:15:::1;:31:::0;;;25320:9:::1;:19:::0;;;25350:16:::1;:33:::0;;;25369:14;25332:7;25409:28:::1;25296:13:::0;25259:8;25409:28:::1;:::i;:::-;:40;;;;:::i;:::-;:59;;;;:::i;:::-;25394:12;:74:::0;;;25503:2:::1;-1:-1:-1::0;25487:18:0::1;25479:27;;;::::0;::::1;;25068:446:::0;;;;:::o;6679:215::-;1752:10;6767:4;6816:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6816:34:0;;;;;;;;;;6767:4;;6784:80;;6807:7;;6816:47;;6853:10;;6816:47;:::i;:::-;6784:8;:80::i;25522:81::-;25570:25;25576:10;25588:6;25570:5;:25::i;:::-;25522:81;:::o;2349:103::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;2414:30:::1;2441:1;2414:18;:30::i;:::-;2349:103::o:0;23275:116::-;2199:6;;23327:4;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;-1:-1:-1;23344:9:0::1;:17:::0;;-1:-1:-1;;23344:17:0::1;::::0;;;23275:116;:::o;24728:167::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24841:39:0;;;::::1;;::::0;;;:31:::1;:39;::::0;;;;:46;;-1:-1:-1;;24841:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24728:167::o;22967:256::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;23050:13:::1;::::0;::::1;::::0;::::1;;;23049:14;23041:41;;;::::0;-1:-1:-1;;;23041:41:0;;6549:2:1;23041:41:0::1;::::0;::::1;6531:21:1::0;6588:2;6568:18;;;6561:30;-1:-1:-1;;;6607:18:1;;;6600:44;6661:18;;23041:41:0::1;6347:338:1::0;23041:41:0::1;23093:13;:20:::0;;23139:12:::1;23124;:27:::0;-1:-1:-1;;23162:18:0;;;;;23191:10:::1;:24:::0;22967:256::o;5196:104::-;5252:13;5285:7;5278:14;;;;;:::i;26384:304::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;26528:13:::1;-1:-1:-1::0;;;;;26520:21:0::1;:4;-1:-1:-1::0;;;;;26520:21:0::1;::::0;26498:128:::1;;;::::0;-1:-1:-1;;;26498:128:0;;6892:2:1;26498:128:0::1;::::0;::::1;6874:21:1::0;6931:2;6911:18;;;6904:30;6970:34;6950:18;;;6943:62;7041:27;7021:18;;;7014:55;7086:19;;26498:128:0::1;6690:421:1::0;26498:128:0::1;26639:41;26668:4;26674:5;26639:28;:41::i;:::-;26384:304:::0;;:::o;25611:109::-;11761:10;14903:4;14927:28;;;:19;:28;;;;;;;;11734:39;;;;;;25690:22:::1;25696:7;25705:6;25690:5;:22::i;6902:413::-:0;1752:10;6995:4;7039:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;7039:34:0;;;;;;;;;;7092:35;;;;7084:85;;;;-1:-1:-1;;;7084:85:0;;7318:2:1;7084:85:0;;;7300:21:1;7357:2;7337:18;;;7330:30;7396:34;7376:18;;;7369:62;-1:-1:-1;;;7447:18:1;;;7440:35;7492:19;;7084:85:0;7116:401:1;7084:85:0;7205:67;1752:10;7228:7;7256:15;7237:16;:34;7205:8;:67::i;:::-;-1:-1:-1;7303:4:0;;6902:413;-1:-1:-1;;;6902:413:0:o;5660:175::-;5746:4;5763:42;1752:10;5787:9;5798:6;5763:9;:42::i;26194:182::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26279:28:0;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;;:39;;-1:-1:-1;;26279:39:0::1;::::0;::::1;;::::0;;::::1;::::0;;;26334:34;;1371:41:1;;;26334:34:0::1;::::0;1344:18:1;26334:34:0::1;;;;;;;26194:182:::0;;:::o;24427:256::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;24567:4:::1;24559;24538:13;5497:12:::0;;;5409:108;24538:13:::1;:17;::::0;24554:1:::1;24538:17;:::i;:::-;24537:26;;;;:::i;:::-;24536:35;;;;:::i;:::-;24526:6;:45;;24504:131;;;::::0;-1:-1:-1;;;24504:131:0;;7724:2:1;24504:131:0::1;::::0;::::1;7706:21:1::0;7763:2;7743:18;;;7736:30;7802:34;7782:18;;;7775:62;-1:-1:-1;;;7853:18:1;;;7846:34;7897:19;;24504:131:0::1;7522:400:1::0;24504:131:0::1;24658:17;:6:::0;24668::::1;24658:17;:::i;:::-;24646:9;:29:::0;-1:-1:-1;24427:256:0:o;23657:497::-;2199:6;;23765:4;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;23844:6:::1;23823:13;5497:12:::0;;;5409:108;23823:13:::1;:17;::::0;23839:1:::1;23823:17;:::i;:::-;23822:28;;;;:::i;:::-;23809:9;:41;;23787:144;;;::::0;-1:-1:-1;;;23787:144:0;;8129:2:1;23787:144:0::1;::::0;::::1;8111:21:1::0;8168:2;8148:18;;;8141:30;8207:34;8187:18;;;8180:62;-1:-1:-1;;;8258:18:1;;;8251:51;8319:19;;23787:144:0::1;7927:417:1::0;23787:144:0::1;23999:4;23978:13;5497:12:::0;;;5409:108;23978:13:::1;:17;::::0;23994:1:::1;23978:17;:::i;:::-;23977:26;;;;:::i;:::-;23964:9;:39;;23942:141;;;::::0;-1:-1:-1;;;23942:141:0;;8551:2:1;23942:141:0::1;::::0;::::1;8533:21:1::0;8590:2;8570:18;;;8563:30;8629:34;8609:18;;;8602:62;-1:-1:-1;;;8680:18:1;;;8673:50;8740:19;;23942:141:0::1;8349:416:1::0;23942:141:0::1;-1:-1:-1::0;24094:18:0::1;:30:::0;24142:4:::1;::::0;23657:497::o;24903:157::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;25011:34:0;;;::::1;;::::0;;;:26:::1;:34;::::0;;;;:41;;-1:-1:-1;;25011:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24903:157::o;25728:458::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;25907:11:::1;:22:::0;;;25940:16:::1;:32:::0;;;25983:10:::1;:20:::0;;;26014:17:::1;:34:::0;;;26034:14;25996:7;26075:30:::1;25959:13:::0;25921:8;26075:30:::1;:::i;:::-;:43;;;;:::i;:::-;:63;;;;:::i;:::-;26059:13;:79:::0;;;26174:2:::1;-1:-1:-1::0;26157:19:0::1;26149:28;;;::::0;::::1;23452:135:::0;2199:6;;23512:4;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;-1:-1:-1;23529:20:0::1;:28:::0;;-1:-1:-1;;23529:28:0::1;::::0;;;23452:135;:::o;2460:201::-;2199:6;;-1:-1:-1;;;;;2199:6:0;1752:10;2261:23;2253:68;;;;-1:-1:-1;;;2253:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2549:22:0;::::1;2541:73;;;::::0;-1:-1:-1;;;2541:73:0;;8972:2:1;2541:73:0::1;::::0;::::1;8954:21:1::0;9011:2;8991:18;;;8984:30;9050:34;9030:18;;;9023:62;-1:-1:-1;;;9101:18:1;;;9094:36;9147:19;;2541:73:0::1;8770:402:1::0;2541:73:0::1;2625:28;2644:8;2625:18;:28::i;9070:380::-:0;-1:-1:-1;;;;;9206:19:0;;9198:68;;;;-1:-1:-1;;;9198:68:0;;9379:2:1;9198:68:0;;;9361:21:1;9418:2;9398:18;;;9391:30;9457:34;9437:18;;;9430:62;-1:-1:-1;;;9508:18:1;;;9501:34;9552:19;;9198:68:0;9177:400:1;9198:68:0;-1:-1:-1;;;;;9285:21:0;;9277:68;;;;-1:-1:-1;;;9277:68:0;;9784:2:1;9277:68:0;;;9766:21:1;9823:2;9803:18;;;9796:30;9862:34;9842:18;;;9835:62;-1:-1:-1;;;9913:18:1;;;9906:32;9955:19;;9277:68:0;9582:398:1;9277:68:0;-1:-1:-1;;;;;9358:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9410:32;;1821:25:1;;;9410:32:0;;1794:18:1;9410:32:0;;;;;;;9070:380;;;:::o;14971:5112::-;-1:-1:-1;;;;;15103:18:0;;15095:68;;;;-1:-1:-1;;;15095:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15182:16:0;;15174:64;;;;-1:-1:-1;;;15174:64:0;;;;;;;:::i;:::-;15255:6;15265:1;15255:11;15251:93;;15283:28;15299:4;15305:2;15309:1;15283:15;:28::i;:::-;14971:5112;;;:::o;15251:93::-;15360:9;;;;15356:2692;;;2199:6;;-1:-1:-1;;;;;15408:15:0;;;2199:6;;15408:15;;;;:49;;-1:-1:-1;2199:6:0;;-1:-1:-1;;;;;15444:13:0;;;2199:6;;15444:13;;15408:49;:86;;;;-1:-1:-1;;;;;;15478:16:0;;;;15408:86;:128;;;;-1:-1:-1;;;;;;15515:21:0;;15529:6;15515:21;;15408:128;:158;;;;-1:-1:-1;15558:8:0;;-1:-1:-1;;;15558:8:0;;;;15557:9;15408:158;15386:2651;;;15606:13;;;;;;;15601:223;;-1:-1:-1;;;;;15678:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;15707:23:0;;;;;;:19;:23;;;;;;;;15678:52;15644:160;;;;-1:-1:-1;;;15644:160:0;;10997:2:1;15644:160:0;;;10979:21:1;11036:2;11016:18;;;11009:30;-1:-1:-1;;;11055:18:1;;;11048:52;11117:18;;15644:160:0;10795:346:1;15644:160:0;15980:20;;;;15976:641;;;2199:6;;-1:-1:-1;;;;;16055:13:0;;;2199:6;;16055:13;;;;:72;;;16111:15;-1:-1:-1;;;;;16097:30:0;:2;-1:-1:-1;;;;;16097:30:0;;;16055:72;:129;;;;;16170:13;-1:-1:-1;;;;;16156:28:0;:2;-1:-1:-1;;;;;16156:28:0;;;16055:129;16025:573;;;16302:9;16273:39;;;;:28;:39;;;;;;16348:12;-1:-1:-1;16235:258:0;;;;-1:-1:-1;;;16235:258:0;;11348:2:1;16235:258:0;;;11330:21:1;11387:2;11367:18;;;11360:30;11426:34;11406:18;;;11399:62;11497:34;11477:18;;;11470:62;-1:-1:-1;;;11548:19:1;;;11541:40;11598:19;;16235:258:0;11146:477:1;16235:258:0;16549:9;16520:39;;;;:28;:39;;;;;16562:12;16520:54;;16025:573;-1:-1:-1;;;;;16691:31:0;;;;;;:25;:31;;;;;;;;:92;;;;-1:-1:-1;;;;;;16748:35:0;;;;;;:31;:35;;;;;;;;16747:36;16691:92;16665:1357;;;16870:11;;16860:6;:21;;16826:151;;;;-1:-1:-1;;;16826:151:0;;11830:2:1;16826:151:0;;;11812:21:1;11869:2;11849:18;;;11842:30;11908:34;11888:18;;;11881:62;-1:-1:-1;;;11959:18:1;;;11952:42;12011:19;;16826:151:0;11628:408:1;16826:151:0;-1:-1:-1;;;;;17005:30:0;;;;;;:26;:30;;;;;;;;17000:264;;17152:9;;-1:-1:-1;;;;;5626:18:0;;5599:7;5626:18;;;;;;;;;;;17126:22;;:6;:22;:::i;:::-;:35;;17088:152;;;;-1:-1:-1;;;17088:152:0;;12243:2:1;17088:152:0;;;12225:21:1;12282:2;12262:18;;;12255:30;-1:-1:-1;;;12301:18:1;;;12294:49;12360:18;;17088:152:0;12041:343:1;17088:152:0;16665:1357;;;-1:-1:-1;;;;;17361:29:0;;;;;;:25;:29;;;;;;;;:92;;;;-1:-1:-1;;;;;;17416:37:0;;;;;;:31;:37;;;;;;;;17415:38;17361:92;17335:687;;;17540:11;;17530:6;:21;;17496:152;;;;-1:-1:-1;;;17496:152:0;;12591:2:1;17496:152:0;;;12573:21:1;12630:2;12610:18;;;12603:30;12669:34;12649:18;;;12642:62;-1:-1:-1;;;12720:18:1;;;12713:43;12773:19;;17496:152:0;12389:409:1;17335:687:0;-1:-1:-1;;;;;17679:35:0;;;;;;:31;:35;;;;;;;;17674:348;;-1:-1:-1;;;;;17744:30:0;;;;;;:26;:30;;;;;;;;17739:264;;17891:9;;-1:-1:-1;;;;;5626:18:0;;5599:7;5626:18;;;;;;;;;;;17865:22;;:6;:22;:::i;:::-;:35;;17827:152;;;;-1:-1:-1;;;17827:152:0;;12243:2:1;17827:152:0;;;12225:21:1;12282:2;12262:18;;;12255:30;-1:-1:-1;;;12301:18:1;;;12294:49;12360:18;;17827:152:0;12041:343:1;17827:152:0;18109:4;18060:28;5626:18;;;;;;;;;;;18167;;18143:42;;;;;;;18216:51;;;18249:18;;18240:6;:27;18216:51;:79;;;;-1:-1:-1;18284:11:0;;;;;;;18216:79;:105;;;;-1:-1:-1;18313:8:0;;-1:-1:-1;;;18313:8:0;;;;18312:9;18216:105;:154;;;;-1:-1:-1;;;;;;18339:31:0;;;;;;:25;:31;;;;;;;;18338:32;18216:154;:197;;;;-1:-1:-1;;;;;;18388:25:0;;;;;;:19;:25;;;;;;;;18387:26;18216:197;:238;;;;-1:-1:-1;;;;;;18431:23:0;;;;;;:19;:23;;;;;;;;18430:24;18216:238;18198:370;;;18481:8;:15;;-1:-1:-1;;;;18481:15:0;-1:-1:-1;;;18481:15:0;;;18513:10;:8;:10::i;:::-;18540:8;:16;;-1:-1:-1;;;;18540:16:0;;;18198:370;18596:8;;-1:-1:-1;;;;;18706:25:0;;18580:12;18706:25;;;:19;:25;;;;;;18596:8;-1:-1:-1;;;18596:8:0;;;;;18595:9;;18706:25;;:52;;-1:-1:-1;;;;;;18735:23:0;;;;;;:19;:23;;;;;;;;18706:52;18702:100;;;-1:-1:-1;18785:5:0;18702:100;18814:12;18919:7;18915:1115;;;-1:-1:-1;;;;;18971:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;19020:1;19004:13;;:17;18971:50;18967:914;;;19049:34;19079:3;19049:25;19060:13;;19049:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;19042:41;;19152:13;;19132:16;;19125:4;:23;;;;:::i;:::-;19124:41;;;;:::i;:::-;19102:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;19222:13:0;;19208:10;;19201:17;;:4;:17;:::i;:::-;19200:35;;;;:::i;:::-;19184:12;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;;19294:13:0;;19279:11;;19272:18;;:4;:18;:::i;:::-;19271:36;;;;:::i;:::-;19254:13;;:53;;;;;;;:::i;:::-;;;;-1:-1:-1;;19378:13:0;;19357:17;;19350:24;;:4;:24;:::i;:::-;19349:42;;;;:::i;:::-;19326:19;;:65;;;;;;;:::i;:::-;;;;-1:-1:-1;18967:914:0;;-1:-1:-1;18967:914:0;;-1:-1:-1;;;;;19453:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;19503:1;19488:12;;:16;19453:51;19449:432;;;19532:33;19561:3;19532:24;19543:12;;19532:6;:10;;:24;;;;:::i;:33::-;19525:40;;19633:12;;19614:15;;19607:4;:22;;;;:::i;:::-;19606:39;;;;:::i;:::-;19584:18;;:61;;;;;;;:::i;:::-;;;;-1:-1:-1;;19701:12:0;;19688:9;;19681:16;;:4;:16;:::i;:::-;19680:33;;;;:::i;:::-;19664:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;19771:12:0;;19757:10;;19750:17;;:4;:17;:::i;:::-;19749:34;;;;:::i;:::-;19732:13;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;;19853:12:0;;19833:16;;19826:23;;:4;:23;:::i;:::-;19825:40;;;;:::i;:::-;19802:19;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;;19449:432:0;19901:8;;19897:91;;19930:42;19946:4;19960;19967;19930:15;:42::i;:::-;20004:14;20014:4;20004:14;;:::i;:::-;;;18915:1115;20042:33;20058:4;20064:2;20068:6;20042:15;:33::i;:::-;15084:4999;;;;14971:5112;;;:::o;8471:591::-;-1:-1:-1;;;;;8555:21:0;;8547:67;;;;-1:-1:-1;;;8547:67:0;;13138:2:1;8547:67:0;;;13120:21:1;13177:2;13157:18;;;13150:30;13216:34;13196:18;;;13189:62;-1:-1:-1;;;13267:18:1;;;13260:31;13308:19;;8547:67:0;12936:397:1;8547:67:0;-1:-1:-1;;;;;8714:18:0;;8689:22;8714:18;;;;;;;;;;;8751:24;;;;8743:71;;;;-1:-1:-1;;;8743:71:0;;13540:2:1;8743:71:0;;;13522:21:1;13579:2;13559:18;;;13552:30;13618:34;13598:18;;;13591:62;-1:-1:-1;;;13669:18:1;;;13662:32;13711:19;;8743:71:0;13338:398:1;8743:71:0;-1:-1:-1;;;;;8850:18:0;;:9;:18;;;;;;;;;;8871:23;;;8850:44;;8916:12;:22;;8888:6;;8850:9;8916:22;;8888:6;;8916:22;:::i;:::-;;;;-1:-1:-1;;8956:37:0;;1821:25:1;;;8982:1:0;;-1:-1:-1;;;;;8956:37:0;;;;;1809:2:1;1794:18;8956:37:0;;;;;;;14971:5112;;;:::o;2669:191::-;2762:6;;;-1:-1:-1;;;;;2779:17:0;;;-1:-1:-1;;;;;;2779:17:0;;;;;;;2812:40;;2762:6;;;2779:17;2762:6;;2812:40;;2743:16;;2812:40;2732:128;2669:191;:::o;14641:188::-;-1:-1:-1;;;;;14724:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;14724:39:0;;;;;;;;;;14781:40;;14724:39;;:31;14781:40;;;14641:188;;:::o;7323:733::-;-1:-1:-1;;;;;7463:20:0;;7455:70;;;;-1:-1:-1;;;7455:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7544:23:0;;7536:71;;;;-1:-1:-1;;;7536:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7704:17:0;;7680:21;7704:17;;;;;;;;;;;7740:23;;;;7732:74;;;;-1:-1:-1;;;7732:74:0;;13943:2:1;7732:74:0;;;13925:21:1;13982:2;13962:18;;;13955:30;14021:34;14001:18;;;13994:62;-1:-1:-1;;;14072:18:1;;;14065:36;14118:19;;7732:74:0;13741:402:1;7732:74:0;-1:-1:-1;;;;;7842:17:0;;;:9;:17;;;;;;;;;;;7862:22;;;7842:42;;7906:20;;;;;;;;:30;;7878:6;;7842:9;7906:30;;7878:6;;7906:30;:::i;:::-;;;;;;;;7971:9;-1:-1:-1;;;;;7954:35:0;7963:6;-1:-1:-1;;;;;7954:35:0;;7982:6;7954:35;;;;1821:25:1;;1809:2;1794:18;;1675:177;7954:35:0;;;;;;;;8002:46;14971:5112;21212:1743;21295:4;21251:23;5626:18;;;;;;;;;;;21251:50;;21312:25;21431:19;;21403:12;;21374:13;;21340:18;;:47;;;;:::i;:::-;:75;;;;:::i;:::-;:110;;;;:::i;:::-;21312:138;-1:-1:-1;21461:12:0;21490:20;;;:46;;-1:-1:-1;21514:22:0;;21490:46;21486:85;;;21553:7;;;21212:1743::o;21486:85::-;21605:18;;:23;;21626:2;21605:23;:::i;:::-;21587:15;:41;21583:115;;;21663:18;;:23;;21684:2;21663:23;:::i;:::-;21645:41;;21583:115;21759:23;21846:1;21826:17;21804:18;;21786:15;:36;;;;:::i;:::-;21785:58;;;;:::i;:::-;:62;;;;:::i;:::-;21759:88;-1:-1:-1;21858:26:0;21887:36;:15;21759:88;21887:19;:36::i;:::-;21858:65;-1:-1:-1;21964:21:0;21998:36;21858:65;21998:16;:36::i;:::-;22047:18;22068:44;:21;22094:17;22068:25;:44::i;:::-;22047:65;;22125:18;22146:52;22180:17;22146:29;22161:13;;22146:10;:14;;:29;;;;:::i;:52::-;22125:73;;22209:17;22229:51;22262:17;22229:28;22244:12;;22229:10;:14;;:28;;;;:::i;:51::-;22209:71;;22291:24;22318:58;22358:17;22318:35;22333:19;;22318:10;:14;;:35;;;;:::i;:58::-;22291:85;-1:-1:-1;22389:23:0;22291:85;22441:9;22415:23;22428:10;22415;:23;:::i;:::-;:35;;;;:::i;:::-;:54;;;;:::i;:::-;22503:1;22482:18;:22;;;22515:13;:17;;;22543:12;:16;;;22570:19;:23;;;22628:15;;22620:51;;22389:80;;-1:-1:-1;;;;;;22628:15:0;;22657:9;;22620:51;22503:1;22620:51;22657:9;22628:15;22620:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22606:65:0;;-1:-1:-1;;22688:19:0;;;;;:42;;;22729:1;22711:15;:19;22688:42;22684:121;;;22747:46;22760:15;22777;22747:12;:46::i;:::-;22837:10;;22829:53;;-1:-1:-1;;;;;22837:10:0;;;;22861:16;;22829:53;;;;22861:16;22837:10;22829:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22901:13:0;;22893:54;;22815:67;;-1:-1:-1;;;;;;22901:13:0;;22925:21;22893:54;;;;;22901:13;22893:54;22901:13;22893:54;22925:21;22901:13;22893:54;;;;;;;;;;;;;;;;;;;;;21240:1715;;;;;;;;;;;21212:1743::o;582:98::-;640:7;667:5;671:1;667;:5;:::i;:::-;660:12;582:98;-1:-1:-1;;;582:98:0:o;688:::-;746:7;773:5;777:1;773;:5;:::i;476:98::-;534:7;561:5;565:1;561;:5;:::i;20091:589::-;20241:16;;;20255:1;20241:16;;;;;;;;20217:21;;20241:16;;;;;;;;;;-1:-1:-1;20241:16:0;20217:40;;20286:4;20268;20273:1;20268:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20268:23:0;;;-1:-1:-1;;;;;20268:23:0;;;;;20312:15;-1:-1:-1;;;;;20312:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20302:4;20307:1;20302:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;20302:32:0;;;-1:-1:-1;;;;;20302:32:0;;;;;20347:62;20364:4;20379:15;20397:11;20347:8;:62::i;:::-;20448:224;;-1:-1:-1;;;20448:224:0;;-1:-1:-1;;;;;20448:15:0;:66;;;;:224;;20529:11;;20555:1;;20599:4;;20626;;20646:15;;20448:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20146:534;20091:589;:::o;20688:516::-;20836:62;20853:4;20868:15;20886:11;20836:8;:62::i;:::-;21145:10;;20941:255;;-1:-1:-1;;;20941:255:0;;21013:4;20941:255;;;16204:34:1;16254:18;;;16247:34;;;21059:1:0;16297:18:1;;;16290:34;;;16340:18;;;16333:34;-1:-1:-1;;;;;21145:10:0;;;16383:19:1;;;16376:44;21170:15:0;16436:19:1;;;16429:35;20941:15:0;:31;;;;;;20980:9;;16138:19:1;;20941:255:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20688:516;;:::o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:315;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1423:247::-;1482:6;1535:2;1523:9;1514:7;1510:23;1506:32;1503:52;;;1551:1;1548;1541:12;1503:52;1590:9;1577:23;1609:31;1634:5;1609:31;:::i;1857:180::-;1916:6;1969:2;1957:9;1948:7;1944:23;1940:32;1937:52;;;1985:1;1982;1975:12;1937:52;-1:-1:-1;2008:23:1;;1857:180;-1:-1:-1;1857:180:1:o;2042:456::-;2119:6;2127;2135;2188:2;2176:9;2167:7;2163:23;2159:32;2156:52;;;2204:1;2201;2194:12;2156:52;2243:9;2230:23;2262:31;2287:5;2262:31;:::i;:::-;2312:5;-1:-1:-1;2369:2:1;2354:18;;2341:32;2382:33;2341:32;2382:33;:::i;:::-;2042:456;;2434:7;;-1:-1:-1;;;2488:2:1;2473:18;;;;2460:32;;2042:456::o;2503:385::-;2589:6;2597;2605;2613;2666:3;2654:9;2645:7;2641:23;2637:33;2634:53;;;2683:1;2680;2673:12;2634:53;-1:-1:-1;;2706:23:1;;;2776:2;2761:18;;2748:32;;-1:-1:-1;2827:2:1;2812:18;;2799:32;;2878:2;2863:18;2850:32;;-1:-1:-1;2503:385:1;-1:-1:-1;2503:385:1:o;3314:416::-;3379:6;3387;3440:2;3428:9;3419:7;3415:23;3411:32;3408:52;;;3456:1;3453;3446:12;3408:52;3495:9;3482:23;3514:31;3539:5;3514:31;:::i;:::-;3564:5;-1:-1:-1;3621:2:1;3606:18;;3593:32;3663:15;;3656:23;3644:36;;3634:64;;3694:1;3691;3684:12;3634:64;3717:7;3707:17;;;3314:416;;;;;:::o;3735:388::-;3803:6;3811;3864:2;3852:9;3843:7;3839:23;3835:32;3832:52;;;3880:1;3877;3870:12;3832:52;3919:9;3906:23;3938:31;3963:5;3938:31;:::i;:::-;3988:5;-1:-1:-1;4045:2:1;4030:18;;4017:32;4058:33;4017:32;4058:33;:::i;4128:380::-;4207:1;4203:12;;;;4250;;;4271:61;;4325:4;4317:6;4313:17;4303:27;;4271:61;4378:2;4370:6;4367:14;4347:18;4344:38;4341:161;;4424:10;4419:3;4415:20;4412:1;4405:31;4459:4;4456:1;4449:15;4487:4;4484:1;4477:15;4341:161;;4128:380;;;:::o;4513:356::-;4715:2;4697:21;;;4734:18;;;4727:30;4793:34;4788:2;4773:18;;4766:62;4860:2;4845:18;;4513:356::o;4874:127::-;4935:10;4930:3;4926:20;4923:1;4916:31;4966:4;4963:1;4956:15;4990:4;4987:1;4980:15;5006:168;5079:9;;;5110;;5127:15;;;5121:22;;5107:37;5097:71;;5148:18;;:::i;5179:217::-;5219:1;5245;5235:132;;5289:10;5284:3;5280:20;5277:1;5270:31;5324:4;5321:1;5314:15;5352:4;5349:1;5342:15;5235:132;-1:-1:-1;5381:9:1;;5179:217::o;6217:125::-;6282:9;;;6303:10;;;6300:36;;;6316:18;;:::i;9985:401::-;10187:2;10169:21;;;10226:2;10206:18;;;10199:30;10265:34;10260:2;10245:18;;10238:62;-1:-1:-1;;;10331:2:1;10316:18;;10309:35;10376:3;10361:19;;9985:401::o;10391:399::-;10593:2;10575:21;;;10632:2;10612:18;;;10605:30;10671:34;10666:2;10651:18;;10644:62;-1:-1:-1;;;10737:2:1;10722:18;;10715:33;10780:3;10765:19;;10391:399::o;12803:128::-;12870:9;;;12891:11;;;12888:37;;;12905:18;;:::i;14490:127::-;14551:10;14546:3;14542:20;14539:1;14532:31;14582:4;14579:1;14572:15;14606:4;14603:1;14596:15;14622:251;14692:6;14745:2;14733:9;14724:7;14720:23;14716:32;14713:52;;;14761:1;14758;14751:12;14713:52;14793:9;14787:16;14812:31;14837:5;14812:31;:::i;14878:980::-;15140:4;15188:3;15177:9;15173:19;15219:6;15208:9;15201:25;15245:2;15283:6;15278:2;15267:9;15263:18;15256:34;15326:3;15321:2;15310:9;15306:18;15299:31;15350:6;15385;15379:13;15416:6;15408;15401:22;15454:3;15443:9;15439:19;15432:26;;15493:2;15485:6;15481:15;15467:29;;15514:1;15524:195;15538:6;15535:1;15532:13;15524:195;;;15603:13;;-1:-1:-1;;;;;15599:39:1;15587:52;;15694:15;;;;15659:12;;;;15635:1;15553:9;15524:195;;;-1:-1:-1;;;;;;;15775:32:1;;;;15770:2;15755:18;;15748:60;-1:-1:-1;;;15839:3:1;15824:19;15817:35;15736:3;14878:980;-1:-1:-1;;;14878:980:1:o;16475:306::-;16563:6;16571;16579;16632:2;16620:9;16611:7;16607:23;16603:32;16600:52;;;16648:1;16645;16638:12;16600:52;16677:9;16671:16;16661:26;;16727:2;16716:9;16712:18;16706:25;16696:35;;16771:2;16760:9;16756:18;16750:25;16740:35;;16475:306;;;;;:::o

Swarm Source

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