ETH Price: $2,414.97 (-0.26%)

Token

Meme Cup (MEMECUP)
 

Overview

Max Total Supply

1,000,000,000 MEMECUP

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,868,633.957796098557424342 MEMECUP

Value
$0.00
0xdb61de4824668a7e99d56f89013e95b602f49b13
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:
MemeCup

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-17
*/

/**
$$\      $$\ $$$$$$$$\ $$\      $$\ $$$$$$$$\  $$$$$$\  $$\   $$\ $$$$$$$\  
$$$\    $$$ |$$  _____|$$$\    $$$ |$$  _____|$$  __$$\ $$ |  $$ |$$  __$$\ 
$$$$\  $$$$ |$$ |      $$$$\  $$$$ |$$ |      $$ /  \__|$$ |  $$ |$$ |  $$ |
$$\$$\$$ $$ |$$$$$\    $$\$$\$$ $$ |$$$$$\    $$ |      $$ |  $$ |$$$$$$$  |
$$ \$$$  $$ |$$  __|   $$ \$$$  $$ |$$  __|   $$ |      $$ |  $$ |$$  ____/ 
$$ |\$  /$$ |$$ |      $$ |\$  /$$ |$$ |      $$ |  $$\ $$ |  $$ |$$ |      
$$ | \_/ $$ |$$$$$$$$\ $$ | \_/ $$ |$$$$$$$$\ \$$$$$$  |\$$$$$$  |$$ |      
\__|     \__|\________|\__|     \__|\________| \______/  \______/ \__|     
    Website: https://www.memecup.io/
    Twitter: https://x.com/Memecuptoken
    Telegram: https://t.me/MemeCuptoken

**/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;
pragma experimental ABIEncoderV2;

abstract contract Ownable {
    address private _owner;

    constructor() {
        _owner = msg.sender;
    }

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

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

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

library SafeERC20 {
    function safeTransfer(address token, address to, uint256 value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: INTERNAL TRANSFER_FAILED');
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external;
}

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

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

    function WETH() external pure returns (address);

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

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

contract MemeCup is Ownable {
    string private constant _name = unicode"Meme Cup";
    string private constant _symbol = unicode"MEMECUP";
    uint256 private constant _totalSupply = 1_000_000_000 * 1e18;

    uint256 public maxTransactionAmount = 20_000_000 * 1e18;
    uint256 public maxWallet = 20_000_000 * 1e18;
    uint256 public swapTokensAtAmount = (_totalSupply * 2) / 10000;

    address private prizepoolWallet = 0x62951A5Db1C9d64742CF3952567cDF90d6008f35;
    address private treasuryWallet = 0xf5bB025b5CF1427870338c9a51Ca4ba8c0Fb9D0A;
    address private marketingWallet = 0x1D264e869d2900B81f8d305E2F2D23bE90730F1E;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint8 public buyTotalFees = 3;
    uint8 public sellTotalFees = 3;

    uint8 public prizepoolFee = 100;
    uint8 public treasuryFee = 0;
    uint8 public teamFee = 0;

    bool private swapping;
    bool public limitsInEffect = true;
    bool private launched;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 teamETH, uint256 prizepoolETH, uint256 TreasuryETH);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable uniswapV2Pair;

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        address cexWallet = 0xF4326eAe67F5D888C882Fd8Cf467E92C4b9A0b4A;

        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(this), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(marketingWallet, true);
        setExcludedFromFees(prizepoolWallet, true);
        setExcludedFromFees(treasuryWallet, true);

        setExcludedFromMaxTransaction(owner(), true);
        setExcludedFromMaxTransaction(address(uniswapV2Router), true);
        setExcludedFromMaxTransaction(address(this), true);
        setExcludedFromMaxTransaction(address(0xdead), true);
        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);
        setExcludedFromMaxTransaction(marketingWallet, true);
        setExcludedFromMaxTransaction(prizepoolWallet, true);
        setExcludedFromMaxTransaction(treasuryWallet, true);

        _balances[msg.sender] = 30_000_000 * 1e18;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
        _balances[treasuryWallet] = 20_000_000 * 1e18;
        emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]);
        _balances[prizepoolWallet] = 20_000_000 * 1e18;
        emit Transfer(address(0), prizepoolWallet, _balances[prizepoolWallet]);
        _balances[cexWallet] = 30_000_000 * 1e18;
        emit Transfer(address(0), cexWallet, _balances[cexWallet]);
        _balances[address(this)] = 900_000_000 * 1e18;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return 18;
    }

    function totalSupply() public pure returns (uint256) {
        return _totalSupply;
    }

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        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 transfer(address recipient, uint256 amount) external returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!launched && (from != owner() && from != address(this) && to != owner())) {
            revert("Trading not enabled");
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTx");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTx");
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

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

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 1000;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 1000;
            }

            if (fees > 0) {
                unchecked {
                    amount = amount - fees;
                    _balances[from] -= fees;
                    _balances[address(this)] += fees;
                }
                emit Transfer(from, address(this), fees);
            }
        }
        unchecked {
            _balances[from] -= amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function setDistributionFees(uint8 _PrizePoolFee, uint8 _TreasuryFee, uint8 _teamFee) external onlyOwner {
        prizepoolFee = _PrizePoolFee;
        treasuryFee = _TreasuryFee;
        teamFee = _teamFee;
        require((prizepoolFee + treasuryFee + teamFee) == 100, "Distribution have to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 2, "Buy fees must be less than or equal to 2%");
        require(_sellTotalFees <= 2, "Sell fees must be less than or equal to 2%");
        buyTotalFees = _buyTotalFees;
        sellTotalFees = _sellTotalFees;
    }

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

    function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function cexWallets(address[] memory addresses, uint256[] memory amounts) external onlyOwner {
        require(!launched, "Already launched");
        for (uint256 i = 0; i < addresses.length; i++) {
            require(_balances[msg.sender] >= amounts[i], "ERC20: transfer amount exceeds balance");
            _balances[addresses[i]] += amounts[i];
            _balances[msg.sender] -= amounts[i];
            emit Transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function openTrade() external onlyOwner {
        require(!launched, "Already launched");
        launched = true;
    }

    function LETTHEGAMEBEGIN() external payable onlyOwner {
        require(!launched, "Already launched");
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _balances[address(this)],
            0,
            0,
            marketingWallet,
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");
        automatedMarketMakerPairs[pair] = value;
    }

    function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner {
        require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply");
        require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply");
        swapTokensAtAmount = newSwapAmount;
    }

    function setMaxTxnAmount(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max transaction lower than 0.1%");
        maxTransactionAmount = newMaxTx * (10**18);
    }

    function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * (10**18);
    }

    function updatePrizePoolWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        prizepoolWallet = newAddress;
    }

    function updateTreasuryWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        treasuryWallet = newAddress;
    }

    function updateMarketingWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        marketingWallet = newAddress;
    }

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

    function withdrawStuckToken(address token, address to) external onlyOwner {
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        SafeERC20.safeTransfer(token, to, _contractBalance); // Use safeTransfer
    }

    function withdrawStuckETH(address addr) external onlyOwner {
        require(addr != address(0), "Invalid address");

        (bool success, ) = addr.call{value: address(this).balance}("");
        require(success, "Withdrawal failed");
    }

    function swapBack() private {
        uint256 swapThreshold = swapTokensAtAmount;
        bool success;

        if (balanceOf(address(this)) > swapTokensAtAmount * 20) {
            swapThreshold = swapTokensAtAmount * 20;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(swapThreshold, 0, path, address(this), block.timestamp);

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            uint256 ethForPrizePool = (ethBalance * prizepoolFee) / 100;
            uint256 ethForTeam = (ethBalance * teamFee) / 100;
            uint256 ethForTreasury = ethBalance - ethForPrizePool - ethForTeam;

            (success, ) = address(marketingWallet).call{value: ethForTeam}("");
            (success, ) = address(treasuryWallet).call{value: ethForTreasury}("");
            (success, ) = address(prizepoolWallet).call{value: ethForPrizePool}("");

            emit SwapAndLiquify(swapThreshold, ethForTeam, ethForPrizePool, ethForTreasury);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"teamETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"prizepoolETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"TreasuryETH","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LETTHEGAMEBEGIN","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"cexWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","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":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prizepoolFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_PrizePoolFee","type":"uint8"},{"internalType":"uint8","name":"_TreasuryFee","type":"uint8"},{"internalType":"uint8","name":"_teamFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updatePrizePoolWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526a108b2a2c280290940000006001556a108b2a2c280290940000006002556127106b033b2e3c9fd0803ce8000000600262000040919062000737565b6200004c919062000761565b600355600480546001600160a01b03199081167362951a5db1c9d64742cf3952567cdf90d6008f35179091556005805490911673f5bb025b5cf1427870338c9a51ca4ba8c0fb9d0a179055600680547a010000006403031d264e869d2900b81f8d305e2f2d23be90730f1e600161ff0160c81b0319909116179055348015620000d3575f80fd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa15801562000134573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015a919062000781565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af1158015620001ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e0919062000781565b6001600160a01b031660808190525f908152600b60205260409020805460ff1916600117905573f4326eae67f5d888c882fd8cf467e92c4b9a0b4a62000239620002315f546001600160a01b031690565b600162000506565b6200024630600162000506565b6200025561dead600162000506565b6006546200026e906001600160a01b0316600162000506565b60045462000287906001600160a01b0316600162000506565b600554620002a0906001600160a01b0316600162000506565b620002be620002b65f546001600160a01b031690565b60016200058d565b620002df737a250d5630b4cf539739df2c5dacb4c659f2488d60016200058d565b620002ec3060016200058d565b620002fb61dead60016200058d565b6080516200030b9060016200058d565b60065462000324906001600160a01b031660016200058d565b6004546200033d906001600160a01b031660016200058d565b60055462000356906001600160a01b031660016200058d565b335f8181526007602090815260408083206a18d0bf423c03d8de0000009081905590519081525f80516020620031c3833981519152910160405180910390a3600580546001600160a01b039081165f908152600760205260408082206a108b2a2c280290940000009055925490911680825282822054925190925f80516020620031c383398151915291620003ed91815260200190565b60405180910390a3600480546001600160a01b039081165f908152600760205260408082206a108b2a2c280290940000009055925490911680825282822054925190925f80516020620031c3833981519152916200044d91815260200190565b60405180910390a36001600160a01b0381165f8181526007602090815260408083206a18d0bf423c03d8de0000009081905590519081525f80516020620031c3833981519152910160405180910390a3305f8181526007602090815260408083206b02e87669c308736a040000009081905590519081525f80516020620031c3833981519152910160405180910390a3620004ff30737a250d5630b4cf539739df2c5dacb4c659f2488d5f1962000610565b50620007b0565b33620005195f546001600160a01b031690565b6001600160a01b031614620005635760405162461bcd60e51b815260206004820181905260248201525f80516020620031a383398151915260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33620005a05f546001600160a01b031690565b6001600160a01b031614620005e65760405162461bcd60e51b815260206004820181905260248201525f80516020620031a383398151915260448201526064016200055a565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b6001600160a01b038316620006745760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016200055a565b6001600160a01b038216620006d75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016200055a565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b80820281158282048414176200075b57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826200077c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000792575f80fd5b81516001600160a01b0381168114620007a9575f80fd5b9392505050565b6080516129d3620007d05f395f81816103c9015261127801526129d35ff3fe608060405260043610610236575f3560e01c8063809d458d11610129578063c8c8ebe4116100a8578063dd62ed3e1161006d578063dd62ed3e146106fa578063e2f456051461073e578063f8b45b0514610753578063fb201b1d14610768578063fe2e25961461077c575f80fd5b8063c8c8ebe414610666578063cc32d1761461067b578063d201b01e1461069b578063d7c94efd146106ba578063d85ba063146106da575f80fd5b80639a7a23d6116100ee5780639a7a23d6146105e25780639df7358a14610601578063a9059cbb14610609578063aacebbe314610628578063bc205ad314610647575f80fd5b8063809d458d1461052257806381a5def11461054157806385ecafd7146105605780638da5cb5b1461059757806395d89b41146105b3575f80fd5b80634a62bb65116101b55780636a486a8e1161017a5780636a486a8e1461048757806370a08231146104a7578063715018a6146104db57806374010ece146104ef578063751039fc1461050e575f80fd5b80634a62bb65146103eb5780634fcd24461461040b578063590ffdce1461042a5780636402511e1461044957806366650dae14610468575f80fd5b806327a14fc2116101fb57806327a14fc214610338578063313ce567146103595780633c090c461461037a578063442e801b1461039957806349bd5a5e146103b8575f80fd5b806306fdde0314610241578063095ea7b3146102835780631694505e146102b257806318160ddd146102f157806323b872dd14610319575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5060408051808201909152600881526704d656d65204375760c41b60208201525b60405161027a91906123cf565b60405180910390f35b34801561028e575f80fd5b506102a261029d36600461241c565b61079c565b604051901515815260200161027a565b3480156102bd575f80fd5b506102d9737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161027a565b3480156102fc575f80fd5b506b033b2e3c9fd0803ce80000005b60405190815260200161027a565b348015610324575f80fd5b506102a2610333366004612444565b6107b2565b348015610343575f80fd5b5061035761035236600461247d565b610866565b005b348015610364575f80fd5b5060125b60405160ff909116815260200161027a565b348015610385575f80fd5b506103576103943660046124a4565b61094a565b3480156103a4575f80fd5b506103576103b33660046124e4565b610a52565b3480156103c3575f80fd5b506102d97f000000000000000000000000000000000000000000000000000000000000000081565b3480156103f6575f80fd5b506006546102a290600160d01b900460ff1681565b348015610416575f80fd5b50610357610425366004612504565b610ad2565b348015610435575f80fd5b50610357610444366004612545565b610c0b565b348015610454575f80fd5b5061035761046336600461247d565b610c6d565b348015610473575f80fd5b50610357610482366004612545565b610dcc565b348015610492575f80fd5b5060065461036890600160a81b900460ff1681565b3480156104b2575f80fd5b5061030b6104c13660046124e4565b6001600160a01b03165f9081526007602052604090205490565b3480156104e6575f80fd5b50610357610e2e565b3480156104fa575f80fd5b5061035761050936600461247d565b610e77565b348015610519575f80fd5b50610357610f60565b34801561052d575f80fd5b5061035761053c3660046124e4565b610fa7565b34801561054c575f80fd5b5061035761055b36600461264a565b611027565b34801561056b575f80fd5b506102a261057a3660046124e4565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105a2575f80fd5b505f546001600160a01b03166102d9565b3480156105be575f80fd5b5060408051808201909152600781526604d454d454355560cc1b602082015261026d565b3480156105ed575f80fd5b506103576105fc366004612545565b61123e565b610357611321565b348015610614575f80fd5b506102a261062336600461241c565b611434565b348015610633575f80fd5b506103576106423660046124e4565b611440565b348015610652575f80fd5b50610357610661366004612704565b6114c0565b348015610671575f80fd5b5061030b60015481565b348015610686575f80fd5b5060065461036890600160b81b900460ff1681565b3480156106a6575f80fd5b506103576106b53660046124e4565b61156d565b3480156106c5575f80fd5b5060065461036890600160c01b900460ff1681565b3480156106e5575f80fd5b5060065461036890600160a01b900460ff1681565b348015610705575f80fd5b5061030b610714366004612704565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610749575f80fd5b5061030b60035481565b34801561075e575f80fd5b5061030b60025481565b348015610773575f80fd5b50610357611684565b348015610787575f80fd5b5060065461036890600160b01b900460ff1681565b5f6107a83384846116fb565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461085057828110156108435760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61085085338584036116fb565b61085b85858561181e565b506001949350505050565b336108785f546001600160a01b031690565b6001600160a01b03161461089e5760405162461bcd60e51b815260040161083a9061272c565b670de0b6b3a76400006103e86108c16b033b2e3c9fd0803ce80000006001612775565b6108cb919061278c565b6108d5919061278c565b8110156109325760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b606482015260840161083a565b61094481670de0b6b3a7640000612775565b60025550565b3361095c5f546001600160a01b031690565b6001600160a01b0316146109825760405162461bcd60e51b815260040161083a9061272c565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b8685168102919091179485905584048316936109e3939181048216929004166127ab565b6109ed91906127ab565b60ff16606414610a4d5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b606482015260840161083a565b505050565b33610a645f546001600160a01b031690565b6001600160a01b031614610a8a5760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b038116610ab05760405162461bcd60e51b815260040161083a906127c4565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b33610ae45f546001600160a01b031690565b6001600160a01b031614610b0a5760405162461bcd60e51b815260040161083a9061272c565b60028260ff161115610b705760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20322560b81b606482015260840161083a565b60028160ff161115610bd75760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20322560b01b606482015260840161083a565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610c1d5f546001600160a01b031690565b6001600160a01b031614610c435760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610c7f5f546001600160a01b031690565b6001600160a01b031614610ca55760405162461bcd60e51b815260040161083a9061272c565b620186a0610cc06b033b2e3c9fd0803ce80000006001612775565b610cca919061278c565b811015610d375760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b606482015260840161083a565b6103e8610d516b033b2e3c9fd0803ce80000006005612775565b610d5b919061278c565b811115610dc75760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b606482015260840161083a565b600355565b33610dde5f546001600160a01b031690565b6001600160a01b031614610e045760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610e405f546001600160a01b031690565b6001600160a01b031614610e665760405162461bcd60e51b815260040161083a9061272c565b5f80546001600160a01b0319169055565b33610e895f546001600160a01b031690565b6001600160a01b031614610eaf5760405162461bcd60e51b815260040161083a9061272c565b670de0b6b3a76400006103e8610ed26b033b2e3c9fd0803ce80000006001612775565b610edc919061278c565b610ee6919061278c565b811015610f485760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b606482015260840161083a565b610f5a81670de0b6b3a7640000612775565b60015550565b33610f725f546001600160a01b031690565b6001600160a01b031614610f985760405162461bcd60e51b815260040161083a9061272c565b6006805460ff60d01b19169055565b33610fb95f546001600160a01b031690565b6001600160a01b031614610fdf5760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b0381166110055760405162461bcd60e51b815260040161083a906127c4565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336110395f546001600160a01b031690565b6001600160a01b03161461105f5760405162461bcd60e51b815260040161083a9061272c565b600654600160d81b900460ff16156110895760405162461bcd60e51b815260040161083a906127f4565b5f5b8251811015610a4d578181815181106110a6576110a661281e565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156110f05760405162461bcd60e51b815260040161083a90612832565b8181815181106111025761110261281e565b602002602001015160075f85848151811061111f5761111f61281e565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f8282546111549190612878565b9250508190555081818151811061116d5761116d61281e565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546111a6919061288b565b925050819055508281815181106111bf576111bf61281e565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061120d5761120d61281e565b602002602001015160405161122491815260200190565b60405180910390a3806112368161289e565b91505061108b565b336112505f546001600160a01b031690565b6001600160a01b0316146112765760405162461bcd60e51b815260040161083a9061272c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316036112f75760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f766564000000000000604482015260640161083a565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b336113335f546001600160a01b031690565b6001600160a01b0316146113595760405162461bcd60e51b815260040161083a9061272c565b600654600160d81b900460ff16156113835760405162461bcd60e51b815260040161083a906127f4565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af115801561140f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4d91906128b6565b5f6107a833848461181e565b336114525f546001600160a01b031690565b6001600160a01b0316146114785760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b03811661149e5760405162461bcd60e51b815260040161083a906127c4565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336114d25f546001600160a01b031690565b6001600160a01b0316146114f85760405162461bcd60e51b815260040161083a9061272c565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561153c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061156091906128e1565b9050610a4d838383611f97565b3361157f5f546001600160a01b031690565b6001600160a01b0316146115a55760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b0381166115ed5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161083a565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114611636576040519150601f19603f3d011682016040523d82523d5f602084013e61163b565b606091505b50509050806116805760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b604482015260640161083a565b5050565b336116965f546001600160a01b031690565b6001600160a01b0316146116bc5760405162461bcd60e51b815260040161083a9061272c565b600654600160d81b900460ff16156116e65760405162461bcd60e51b815260040161083a906127f4565b6006805460ff60d81b1916600160d81b179055565b6001600160a01b03831661175d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161083a565b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161083a565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118825760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161083a565b6001600160a01b0382166118e45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161083a565b5f81116119455760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161083a565b600654600160d81b900460ff1615801561199957505f546001600160a01b0384811691161480159061198057506001600160a01b0383163014155b801561199957505f546001600160a01b03838116911614155b156119dc5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161083a565b600654600160d01b900460ff1615611c9d575f546001600160a01b03848116911614801590611a1857505f546001600160a01b03838116911614155b8015611a2c57506001600160a01b03821615155b8015611a4357506001600160a01b03821661dead14155b8015611a595750600654600160c81b900460ff16155b15611c9d576001600160a01b0383165f908152600b602052604090205460ff168015611a9d57506001600160a01b0382165f908152600a602052604090205460ff16155b15611b7057600154811115611b025760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b606482015260840161083a565b6002546001600160a01b0383165f90815260076020526040902054611b279083612878565b1115611b6b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083a565b611c9d565b6001600160a01b0382165f908152600b602052604090205460ff168015611baf57506001600160a01b0383165f908152600a602052604090205460ff16155b15611c1557600154811115611b6b5760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b606482015260840161083a565b6001600160a01b0382165f908152600a602052604090205460ff16611c9d576002546001600160a01b0383165f90815260076020526040902054611c599083612878565b1115611c9d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083a565b600354305f90815260076020526040902054108015908190611cc95750600654600160c81b900460ff16155b8015611ced57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611d1157506001600160a01b0384165f9081526009602052604090205460ff16155b8015611d3557506001600160a01b0383165f9081526009602052604090205460ff16155b15611d63576006805460ff60c81b1916600160c81b179055611d556120be565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611daf57506001600160a01b0384165f9081526009602052604090205460ff165b15611db757505f5b6001600160a01b0385165f9081526007602052604090205483811015611def5760405162461bcd60e51b815260040161083a90612832565b5f8215611f25576001600160a01b0386165f908152600b602052604090205460ff168015611e285750600654600160a81b900460ff1615155b15611e59576006546103e890611e4890600160a81b900460ff1687612775565b611e52919061278c565b9050611eb8565b6001600160a01b0387165f908152600b602052604090205460ff168015611e8b5750600654600160a01b900460ff1615155b15611eb8576006546103e890611eab90600160a01b900460ff1687612775565b611eb5919061278c565b90505b8015611f25576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f869089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611ff291906128f8565b5f604051808303815f865af19150503d805f811461202b576040519150601f19603f3d011682016040523d82523d5f602084013e612030565b606091505b509150915081801561205a57508051158061205a57508080602001905181019061205a9190612913565b6120b75760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b606482015260840161083a565b5050505050565b6003545f6120cd826014612775565b305f9081526007602052604090205411156120f3576003546120f0906014612775565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106121265761212661281e565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061216e5761216e61281e565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906121c59086905f9086903090429060040161292e565b5f604051808303815f87803b1580156121dc575f80fd5b505af11580156121ee573d5f803e3d5ffd5b5047925050811590506123a7576006545f9060649061221790600160b01b900460ff1684612775565b612221919061278c565b6006549091505f9060649061224090600160c01b900460ff1685612775565b61224a919061278c565b90505f81612258848661288b565b612262919061288b565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146122ad576040519150601f19603f3d011682016040523d82523d5f602084013e6122b2565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f81146122ff576040519150601f19603f3d011682016040523d82523d5f602084013e612304565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f8114612351576040519150601f19603f3d011682016040523d82523d5f602084013e612356565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156123c75781810151838201526020016123af565b50505f910152565b602081525f82518060208401526123ed8160408501602087016123ad565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612417575f80fd5b919050565b5f806040838503121561242d575f80fd5b61243683612401565b946020939093013593505050565b5f805f60608486031215612456575f80fd5b61245f84612401565b925061246d60208501612401565b9150604084013590509250925092565b5f6020828403121561248d575f80fd5b5035919050565b803560ff81168114612417575f80fd5b5f805f606084860312156124b6575f80fd5b6124bf84612494565b92506124cd60208501612494565b91506124db60408501612494565b90509250925092565b5f602082840312156124f4575f80fd5b6124fd82612401565b9392505050565b5f8060408385031215612515575f80fd5b61251e83612494565b915061252c60208401612494565b90509250929050565b8015158114612542575f80fd5b50565b5f8060408385031215612556575f80fd5b61255f83612401565b9150602083013561256f81612535565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156125b7576125b761257a565b604052919050565b5f67ffffffffffffffff8211156125d8576125d861257a565b5060051b60200190565b5f82601f8301126125f1575f80fd5b81356020612606612601836125bf565b61258e565b82815260059290921b84018101918181019086841115612624575f80fd5b8286015b8481101561263f5780358352918301918301612628565b509695505050505050565b5f806040838503121561265b575f80fd5b823567ffffffffffffffff80821115612672575f80fd5b818501915085601f830112612685575f80fd5b81356020612695612601836125bf565b82815260059290921b840181019181810190898411156126b3575f80fd5b948201945b838610156126d8576126c986612401565b825294820194908201906126b8565b965050860135925050808211156126ed575f80fd5b506126fa858286016125e2565b9150509250929050565b5f8060408385031215612715575f80fd5b61271e83612401565b915061252c60208401612401565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107ac576107ac612761565b5f826127a657634e487b7160e01b5f52601260045260245ffd5b500490565b60ff81811683821601908111156107ac576107ac612761565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156107ac576107ac612761565b818103818111156107ac576107ac612761565b5f600182016128af576128af612761565b5060010190565b5f805f606084860312156128c8575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156128f1575f80fd5b5051919050565b5f82516129098184602087016123ad565b9190910192915050565b5f60208284031215612923575f80fd5b81516124fd81612535565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561297c5784516001600160a01b031683529383019391830191600101612957565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122000ca1327933c23aebb4c035a7b14a01adf5fb5322d8b035b1b51f08537d3b2e264736f6c634300081500334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405260043610610236575f3560e01c8063809d458d11610129578063c8c8ebe4116100a8578063dd62ed3e1161006d578063dd62ed3e146106fa578063e2f456051461073e578063f8b45b0514610753578063fb201b1d14610768578063fe2e25961461077c575f80fd5b8063c8c8ebe414610666578063cc32d1761461067b578063d201b01e1461069b578063d7c94efd146106ba578063d85ba063146106da575f80fd5b80639a7a23d6116100ee5780639a7a23d6146105e25780639df7358a14610601578063a9059cbb14610609578063aacebbe314610628578063bc205ad314610647575f80fd5b8063809d458d1461052257806381a5def11461054157806385ecafd7146105605780638da5cb5b1461059757806395d89b41146105b3575f80fd5b80634a62bb65116101b55780636a486a8e1161017a5780636a486a8e1461048757806370a08231146104a7578063715018a6146104db57806374010ece146104ef578063751039fc1461050e575f80fd5b80634a62bb65146103eb5780634fcd24461461040b578063590ffdce1461042a5780636402511e1461044957806366650dae14610468575f80fd5b806327a14fc2116101fb57806327a14fc214610338578063313ce567146103595780633c090c461461037a578063442e801b1461039957806349bd5a5e146103b8575f80fd5b806306fdde0314610241578063095ea7b3146102835780631694505e146102b257806318160ddd146102f157806323b872dd14610319575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5060408051808201909152600881526704d656d65204375760c41b60208201525b60405161027a91906123cf565b60405180910390f35b34801561028e575f80fd5b506102a261029d36600461241c565b61079c565b604051901515815260200161027a565b3480156102bd575f80fd5b506102d9737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b03909116815260200161027a565b3480156102fc575f80fd5b506b033b2e3c9fd0803ce80000005b60405190815260200161027a565b348015610324575f80fd5b506102a2610333366004612444565b6107b2565b348015610343575f80fd5b5061035761035236600461247d565b610866565b005b348015610364575f80fd5b5060125b60405160ff909116815260200161027a565b348015610385575f80fd5b506103576103943660046124a4565b61094a565b3480156103a4575f80fd5b506103576103b33660046124e4565b610a52565b3480156103c3575f80fd5b506102d97f000000000000000000000000a8db14108dc67c577b7bf0d0b8beec8039cbb9b681565b3480156103f6575f80fd5b506006546102a290600160d01b900460ff1681565b348015610416575f80fd5b50610357610425366004612504565b610ad2565b348015610435575f80fd5b50610357610444366004612545565b610c0b565b348015610454575f80fd5b5061035761046336600461247d565b610c6d565b348015610473575f80fd5b50610357610482366004612545565b610dcc565b348015610492575f80fd5b5060065461036890600160a81b900460ff1681565b3480156104b2575f80fd5b5061030b6104c13660046124e4565b6001600160a01b03165f9081526007602052604090205490565b3480156104e6575f80fd5b50610357610e2e565b3480156104fa575f80fd5b5061035761050936600461247d565b610e77565b348015610519575f80fd5b50610357610f60565b34801561052d575f80fd5b5061035761053c3660046124e4565b610fa7565b34801561054c575f80fd5b5061035761055b36600461264a565b611027565b34801561056b575f80fd5b506102a261057a3660046124e4565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156105a2575f80fd5b505f546001600160a01b03166102d9565b3480156105be575f80fd5b5060408051808201909152600781526604d454d454355560cc1b602082015261026d565b3480156105ed575f80fd5b506103576105fc366004612545565b61123e565b610357611321565b348015610614575f80fd5b506102a261062336600461241c565b611434565b348015610633575f80fd5b506103576106423660046124e4565b611440565b348015610652575f80fd5b50610357610661366004612704565b6114c0565b348015610671575f80fd5b5061030b60015481565b348015610686575f80fd5b5060065461036890600160b81b900460ff1681565b3480156106a6575f80fd5b506103576106b53660046124e4565b61156d565b3480156106c5575f80fd5b5060065461036890600160c01b900460ff1681565b3480156106e5575f80fd5b5060065461036890600160a01b900460ff1681565b348015610705575f80fd5b5061030b610714366004612704565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610749575f80fd5b5061030b60035481565b34801561075e575f80fd5b5061030b60025481565b348015610773575f80fd5b50610357611684565b348015610787575f80fd5b5060065461036890600160b01b900460ff1681565b5f6107a83384846116fb565b5060015b92915050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19811461085057828110156108435760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61085085338584036116fb565b61085b85858561181e565b506001949350505050565b336108785f546001600160a01b031690565b6001600160a01b03161461089e5760405162461bcd60e51b815260040161083a9061272c565b670de0b6b3a76400006103e86108c16b033b2e3c9fd0803ce80000006001612775565b6108cb919061278c565b6108d5919061278c565b8110156109325760405162461bcd60e51b815260206004820152602560248201527f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e60448201526420302e312560d81b606482015260840161083a565b61094481670de0b6b3a7640000612775565b60025550565b3361095c5f546001600160a01b031690565b6001600160a01b0316146109825760405162461bcd60e51b815260040161083a9061272c565b6006805461ffff60b01b1916600160b01b60ff868116820260ff60b81b191692909217600160b81b86841681029190911760ff60c01b1916600160c01b8685168102919091179485905584048316936109e3939181048216929004166127ab565b6109ed91906127ab565b60ff16606414610a4d5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b606482015260840161083a565b505050565b33610a645f546001600160a01b031690565b6001600160a01b031614610a8a5760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b038116610ab05760405162461bcd60e51b815260040161083a906127c4565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b33610ae45f546001600160a01b031690565b6001600160a01b031614610b0a5760405162461bcd60e51b815260040161083a9061272c565b60028260ff161115610b705760405162461bcd60e51b815260206004820152602960248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526875616c20746f20322560b81b606482015260840161083a565b60028160ff161115610bd75760405162461bcd60e51b815260206004820152602a60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f7220656044820152697175616c20746f20322560b01b606482015260840161083a565b6006805461ffff60a01b1916600160a01b60ff9485160260ff60a81b191617600160a81b9290931691909102919091179055565b33610c1d5f546001600160a01b031690565b6001600160a01b031614610c435760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b33610c7f5f546001600160a01b031690565b6001600160a01b031614610ca55760405162461bcd60e51b815260040161083a9061272c565b620186a0610cc06b033b2e3c9fd0803ce80000006001612775565b610cca919061278c565b811015610d375760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b606482015260840161083a565b6103e8610d516b033b2e3c9fd0803ce80000006005612775565b610d5b919061278c565b811115610dc75760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b606482015260840161083a565b600355565b33610dde5f546001600160a01b031690565b6001600160a01b031614610e045760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b33610e405f546001600160a01b031690565b6001600160a01b031614610e665760405162461bcd60e51b815260040161083a9061272c565b5f80546001600160a01b0319169055565b33610e895f546001600160a01b031690565b6001600160a01b031614610eaf5760405162461bcd60e51b815260040161083a9061272c565b670de0b6b3a76400006103e8610ed26b033b2e3c9fd0803ce80000006001612775565b610edc919061278c565b610ee6919061278c565b811015610f485760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f776572604482015269207468616e20302e312560b01b606482015260840161083a565b610f5a81670de0b6b3a7640000612775565b60015550565b33610f725f546001600160a01b031690565b6001600160a01b031614610f985760405162461bcd60e51b815260040161083a9061272c565b6006805460ff60d01b19169055565b33610fb95f546001600160a01b031690565b6001600160a01b031614610fdf5760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b0381166110055760405162461bcd60e51b815260040161083a906127c4565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b336110395f546001600160a01b031690565b6001600160a01b03161461105f5760405162461bcd60e51b815260040161083a9061272c565b600654600160d81b900460ff16156110895760405162461bcd60e51b815260040161083a906127f4565b5f5b8251811015610a4d578181815181106110a6576110a661281e565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205410156110f05760405162461bcd60e51b815260040161083a90612832565b8181815181106111025761110261281e565b602002602001015160075f85848151811061111f5761111f61281e565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f8282546111549190612878565b9250508190555081818151811061116d5761116d61281e565b602002602001015160075f336001600160a01b03166001600160a01b031681526020019081526020015f205f8282546111a6919061288b565b925050819055508281815181106111bf576111bf61281e565b60200260200101516001600160a01b0316336001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84848151811061120d5761120d61281e565b602002602001015160405161122491815260200190565b60405180910390a3806112368161289e565b91505061108b565b336112505f546001600160a01b031690565b6001600160a01b0316146112765760405162461bcd60e51b815260040161083a9061272c565b7f000000000000000000000000a8db14108dc67c577b7bf0d0b8beec8039cbb9b66001600160a01b0316826001600160a01b0316036112f75760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f766564000000000000604482015260640161083a565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b336113335f546001600160a01b031690565b6001600160a01b0316146113595760405162461bcd60e51b815260040161083a9061272c565b600654600160d81b900460ff16156113835760405162461bcd60e51b815260040161083a906127f4565b305f8181526007602052604080822054600654915163f305d71960e01b8152600481019490945260248401526044830182905260648301919091526001600160a01b031660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990349060c40160606040518083038185885af115801561140f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a4d91906128b6565b5f6107a833848461181e565b336114525f546001600160a01b031690565b6001600160a01b0316146114785760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b03811661149e5760405162461bcd60e51b815260040161083a906127c4565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b336114d25f546001600160a01b031690565b6001600160a01b0316146114f85760405162461bcd60e51b815260040161083a9061272c565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa15801561153c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061156091906128e1565b9050610a4d838383611f97565b3361157f5f546001600160a01b031690565b6001600160a01b0316146115a55760405162461bcd60e51b815260040161083a9061272c565b6001600160a01b0381166115ed5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015260640161083a565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114611636576040519150601f19603f3d011682016040523d82523d5f602084013e61163b565b606091505b50509050806116805760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b604482015260640161083a565b5050565b336116965f546001600160a01b031690565b6001600160a01b0316146116bc5760405162461bcd60e51b815260040161083a9061272c565b600654600160d81b900460ff16156116e65760405162461bcd60e51b815260040161083a906127f4565b6006805460ff60d81b1916600160d81b179055565b6001600160a01b03831661175d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161083a565b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161083a565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118825760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161083a565b6001600160a01b0382166118e45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161083a565b5f81116119455760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161083a565b600654600160d81b900460ff1615801561199957505f546001600160a01b0384811691161480159061198057506001600160a01b0383163014155b801561199957505f546001600160a01b03838116911614155b156119dc5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b604482015260640161083a565b600654600160d01b900460ff1615611c9d575f546001600160a01b03848116911614801590611a1857505f546001600160a01b03838116911614155b8015611a2c57506001600160a01b03821615155b8015611a4357506001600160a01b03821661dead14155b8015611a595750600654600160c81b900460ff16155b15611c9d576001600160a01b0383165f908152600b602052604090205460ff168015611a9d57506001600160a01b0382165f908152600a602052604090205460ff16155b15611b7057600154811115611b025760405162461bcd60e51b815260206004820152602560248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152640dac2f0a8f60db1b606482015260840161083a565b6002546001600160a01b0383165f90815260076020526040902054611b279083612878565b1115611b6b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083a565b611c9d565b6001600160a01b0382165f908152600b602052604090205460ff168015611baf57506001600160a01b0383165f908152600a602052604090205460ff16155b15611c1557600154811115611b6b5760405162461bcd60e51b815260206004820152602660248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015265040dac2f0a8f60d31b606482015260840161083a565b6001600160a01b0382165f908152600a602052604090205460ff16611c9d576002546001600160a01b0383165f90815260076020526040902054611c599083612878565b1115611c9d5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161083a565b600354305f90815260076020526040902054108015908190611cc95750600654600160c81b900460ff16155b8015611ced57506001600160a01b0384165f908152600b602052604090205460ff16155b8015611d1157506001600160a01b0384165f9081526009602052604090205460ff16155b8015611d3557506001600160a01b0383165f9081526009602052604090205460ff16155b15611d63576006805460ff60c81b1916600160c81b179055611d556120be565b6006805460ff60c81b191690555b6006546001600160a01b0385165f9081526009602052604090205460ff600160c81b909204821615911680611daf57506001600160a01b0384165f9081526009602052604090205460ff165b15611db757505f5b6001600160a01b0385165f9081526007602052604090205483811015611def5760405162461bcd60e51b815260040161083a90612832565b5f8215611f25576001600160a01b0386165f908152600b602052604090205460ff168015611e285750600654600160a81b900460ff1615155b15611e59576006546103e890611e4890600160a81b900460ff1687612775565b611e52919061278c565b9050611eb8565b6001600160a01b0387165f908152600b602052604090205460ff168015611e8b5750600654600160a01b900460ff1615155b15611eb8576006546103e890611eab90600160a01b900460ff1687612775565b611eb5919061278c565b90505b8015611f25576001600160a01b0387165f8181526007602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526007602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f869089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691611ff291906128f8565b5f604051808303815f865af19150503d805f811461202b576040519150601f19603f3d011682016040523d82523d5f602084013e612030565b606091505b509150915081801561205a57508051158061205a57508080602001905181019061205a9190612913565b6120b75760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b606482015260840161083a565b5050505050565b6003545f6120cd826014612775565b305f9081526007602052604090205411156120f3576003546120f0906014612775565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106121265761212661281e565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061216e5761216e61281e565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906121c59086905f9086903090429060040161292e565b5f604051808303815f87803b1580156121dc575f80fd5b505af11580156121ee573d5f803e3d5ffd5b5047925050811590506123a7576006545f9060649061221790600160b01b900460ff1684612775565b612221919061278c565b6006549091505f9060649061224090600160c01b900460ff1685612775565b61224a919061278c565b90505f81612258848661288b565b612262919061288b565b6006546040519192506001600160a01b03169083905f81818185875af1925050503d805f81146122ad576040519150601f19603f3d011682016040523d82523d5f602084013e6122b2565b606091505b50506005546040519197506001600160a01b03169082905f81818185875af1925050503d805f81146122ff576040519150601f19603f3d011682016040523d82523d5f602084013e612304565b606091505b50506004546040519197506001600160a01b03169084905f81818185875af1925050503d805f8114612351576040519150601f19603f3d011682016040523d82523d5f602084013e612356565b606091505b50506040805189815260208101859052908101859052606081018390529096507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f9060800160405180910390a15050505b50505050565b5f5b838110156123c75781810151838201526020016123af565b50505f910152565b602081525f82518060208401526123ed8160408501602087016123ad565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612417575f80fd5b919050565b5f806040838503121561242d575f80fd5b61243683612401565b946020939093013593505050565b5f805f60608486031215612456575f80fd5b61245f84612401565b925061246d60208501612401565b9150604084013590509250925092565b5f6020828403121561248d575f80fd5b5035919050565b803560ff81168114612417575f80fd5b5f805f606084860312156124b6575f80fd5b6124bf84612494565b92506124cd60208501612494565b91506124db60408501612494565b90509250925092565b5f602082840312156124f4575f80fd5b6124fd82612401565b9392505050565b5f8060408385031215612515575f80fd5b61251e83612494565b915061252c60208401612494565b90509250929050565b8015158114612542575f80fd5b50565b5f8060408385031215612556575f80fd5b61255f83612401565b9150602083013561256f81612535565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156125b7576125b761257a565b604052919050565b5f67ffffffffffffffff8211156125d8576125d861257a565b5060051b60200190565b5f82601f8301126125f1575f80fd5b81356020612606612601836125bf565b61258e565b82815260059290921b84018101918181019086841115612624575f80fd5b8286015b8481101561263f5780358352918301918301612628565b509695505050505050565b5f806040838503121561265b575f80fd5b823567ffffffffffffffff80821115612672575f80fd5b818501915085601f830112612685575f80fd5b81356020612695612601836125bf565b82815260059290921b840181019181810190898411156126b3575f80fd5b948201945b838610156126d8576126c986612401565b825294820194908201906126b8565b965050860135925050808211156126ed575f80fd5b506126fa858286016125e2565b9150509250929050565b5f8060408385031215612715575f80fd5b61271e83612401565b915061252c60208401612401565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176107ac576107ac612761565b5f826127a657634e487b7160e01b5f52601260045260245ffd5b500490565b60ff81811683821601908111156107ac576107ac612761565b602080825260169082015275416464726573732063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526010908201526f105b1c9958591e481b185d5b98da195960821b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156107ac576107ac612761565b818103818111156107ac576107ac612761565b5f600182016128af576128af612761565b5060010190565b5f805f606084860312156128c8575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156128f1575f80fd5b5051919050565b5f82516129098184602087016123ad565b9190910192915050565b5f60208284031215612923575f80fd5b81516124fd81612535565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561297c5784516001600160a01b031683529383019391830191600101612957565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122000ca1327933c23aebb4c035a7b14a01adf5fb5322d8b035b1b51f08537d3b2e264736f6c63430008150033

Deployed Bytecode Sourcemap

2500:13651:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6132:83;;;;;;;;;;-1:-1:-1;6202:5:0;;;;;;;;;;;;-1:-1:-1;;;6202:5:0;;;;6132:83;;;;;;;:::i;:::-;;;;;;;;6761:152;;;;;;;;;;-1:-1:-1;6761:152:0;;;;;:::i;:::-;;:::i;:::-;;;1272:14:1;;1265:22;1247:41;;1235:2;1220:18;6761:152:0;1107:187:1;4108:115:0;;;;;;;;;;;;4180:42;4108:115;;;;;-1:-1:-1;;;;;1489:32:1;;;1471:51;;1459:2;1444:18;4108:115:0;1299:229:1;6402:91:0;;;;;;;;;;-1:-1:-1;2688:20:0;6402:91;;;1679:25:1;;;1667:2;1652:18;6402:91:0;1533:177:1;7432:520:0;;;;;;;;;;-1:-1:-1;7432:520:0;;;;;:::i;:::-;;:::i;13530:235::-;;;;;;;;;;-1:-1:-1;13530:235:0;;;;;:::i;:::-;;:::i;:::-;;6318:76;;;;;;;;;;-1:-1:-1;6384:2:0;6318:76;;;2405:4:1;2393:17;;;2375:36;;2363:2;2348:18;6318:76:0;2233:184:1;10737:324:0;;;;;;;;;;-1:-1:-1;10737:324:0;;;;;:::i;:::-;;:::i;13773:187::-;;;;;;;;;;-1:-1:-1;13773:187:0;;;;;:::i;:::-;;:::i;4230:38::-;;;;;;;;;;;;;;;3441:33;;;;;;;;;;-1:-1:-1;3441:33:0;;;;-1:-1:-1;;;3441:33:0;;;;;;11069:335;;;;;;;;;;-1:-1:-1;11069:335:0;;;;;:::i;:::-;;:::i;11412:136::-;;;;;;;;;;-1:-1:-1;11412:136:0;;;;;:::i;:::-;;:::i;12917:361::-;;;;;;;;;;-1:-1:-1;12917:361:0;;;;;:::i;:::-;;:::i;11556:158::-;;;;;;;;;;-1:-1:-1;11556:158:0;;;;;:::i;:::-;;:::i;3268:30::-;;;;;;;;;;-1:-1:-1;3268:30:0;;;;-1:-1:-1;;;3268:30:0;;;;;;6501:110;;;;;;;;;;-1:-1:-1;6501:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;6585:18:0;6558:7;6585:18;;;:9;:18;;;;;;;6501:110;1197:92;;;;;;;;;;;;;:::i;13286:236::-;;;;;;;;;;-1:-1:-1;13286:236:0;;;;;:::i;:::-;;:::i;10645:84::-;;;;;;;;;;;;;:::i;13968:185::-;;;;;;;;;;-1:-1:-1;13968:185:0;;;;;:::i;:::-;;:::i;11722:488::-;;;;;;;;;;-1:-1:-1;11722:488:0;;;;;:::i;:::-;;:::i;14356:123::-;;;;;;;;;;-1:-1:-1;14356:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;14443:28:0;14419:4;14443:28;;;:19;:28;;;;;;;;;14356:123;976:87;;;;;;;;;;-1:-1:-1;1022:7:0;1049:6;-1:-1:-1;;;;;1049:6:0;976:87;;6223;;;;;;;;;;-1:-1:-1;6295:7:0;;;;;;;;;;;;-1:-1:-1;;;6295:7:0;;;;6223:87;;12698:211;;;;;;;;;;-1:-1:-1;12698:211:0;;;;;:::i;:::-;;:::i;12349:341::-;;;:::i;7266:158::-;;;;;;;;;;-1:-1:-1;7266:158:0;;;;;:::i;:::-;;:::i;14161:187::-;;;;;;;;;;-1:-1:-1;14161:187:0;;;;;:::i;:::-;;:::i;14487:240::-;;;;;;;;;;-1:-1:-1;14487:240:0;;;;;:::i;:::-;;:::i;2717:55::-;;;;;;;;;;;;;;;;3345:28;;;;;;;;;;-1:-1:-1;3345:28:0;;;;-1:-1:-1;;;3345:28:0;;;;;;14735:247;;;;;;;;;;-1:-1:-1;14735:247:0;;;;;:::i;:::-;;:::i;3380:24::-;;;;;;;;;;-1:-1:-1;3380:24:0;;;;-1:-1:-1;;;3380:24:0;;;;;;3232:29;;;;;;;;;;-1:-1:-1;3232:29:0;;;;-1:-1:-1;;;3232:29:0;;;;;;6619:134;;;;;;;;;;-1:-1:-1;6619:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;6718:18:0;;;6691:7;6718:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6619:134;2830:62;;;;;;;;;;;;;;;;2779:44;;;;;;;;;;;;;;;;12218:123;;;;;;;;;;;;;:::i;3307:31::-;;;;;;;;;;-1:-1:-1;3307:31:0;;;;-1:-1:-1;;;3307:31:0;;;;;;6761:152;6829:4;6846:37;6855:10;6867:7;6876:6;6846:8;:37::i;:::-;-1:-1:-1;6901:4:0;6761:152;;;;;:::o;7432:520::-;-1:-1:-1;;;;;7567:19:0;;7523:4;7567:19;;;:11;:19;;;;;;;;7587:10;7567:31;;;;;;;;-1:-1:-1;;7613:37:0;;7609:263;;7695:6;7675:16;:26;;7667:79;;;;-1:-1:-1;;;7667:79:0;;6894:2:1;7667:79:0;;;6876:21:1;6933:2;6913:18;;;6906:30;6972:34;6952:18;;;6945:62;-1:-1:-1;;;7023:18:1;;;7016:38;7071:19;;7667:79:0;;;;;;;;;7790:55;7799:6;7807:10;7838:6;7819:16;:25;7790:8;:55::i;:::-;7884:36;7894:6;7902:9;7913:6;7884:9;:36::i;:::-;-1:-1:-1;7940:4:0;;7432:520;-1:-1:-1;;;;7432:520:0:o;13530:235::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;13665:4:::1;13657;13636:17;2688:20:::0;13652:1:::1;13636:17;:::i;:::-;13635:26;;;;:::i;:::-;13634:35;;;;:::i;:::-;13618:12;:51;;13610:101;;;::::0;-1:-1:-1;;;13610:101:0;;8191:2:1;13610:101:0::1;::::0;::::1;8173:21:1::0;8230:2;8210:18;;;8203:30;8269:34;8249:18;;;8242:62;-1:-1:-1;;;8320:18:1;;;8313:35;8365:19;;13610:101:0::1;7989:401:1::0;13610:101:0::1;13734:23;:12:::0;13750:6:::1;13734:23;:::i;:::-;13722:9;:35:::0;-1:-1:-1;13530:235:0:o;10737:324::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;10853:12:::1;:28:::0;;-1:-1:-1;;;;10892:26:0;-1:-1:-1;;;10853:28:0::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;;;10892:26:0;;;;;-1:-1:-1;;;10892:26:0;;::::1;::::0;::::1;::::0;;;::::1;-1:-1:-1::0;;;;10929:18:0::1;-1:-1:-1::0;;;10929:18:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;10996:7;::::1;::::0;::::1;::::0;10967:26:::1;::::0;10982:11;;::::1;::::0;::::1;::::0;10967:12;::::1;;:26;:::i;:::-;:36;;;;:::i;:::-;10966:45;;11008:3;10966:45;10958:95;;;::::0;-1:-1:-1;;;10958:95:0;;8750:2:1;10958:95:0::1;::::0;::::1;8732:21:1::0;8789:2;8769:18;;;8762:30;8828:34;8808:18;;;8801:62;-1:-1:-1;;;8879:18:1;;;8872:35;8924:19;;10958:95:0::1;8548:401:1::0;10958:95:0::1;10737:324:::0;;;:::o;13773:187::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13862:24:0;::::1;13854:59;;;;-1:-1:-1::0;;;13854:59:0::1;;;;;;;:::i;:::-;13924:15;:28:::0;;-1:-1:-1;;;;;;13924:28:0::1;-1:-1:-1::0;;;;;13924:28:0;;;::::1;::::0;;;::::1;::::0;;13773:187::o;11069:335::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;11184:1:::1;11167:13;:18;;;;11159:72;;;::::0;-1:-1:-1;;;11159:72:0;;9507:2:1;11159:72:0::1;::::0;::::1;9489:21:1::0;9546:2;9526:18;;;9519:30;9585:34;9565:18;;;9558:62;-1:-1:-1;;;9636:18:1;;;9629:39;9685:19;;11159:72:0::1;9305:405:1::0;11159:72:0::1;11268:1;11250:14;:19;;;;11242:74;;;::::0;-1:-1:-1;;;11242:74:0;;9917:2:1;11242:74:0::1;::::0;::::1;9899:21:1::0;9956:2;9936:18;;;9929:30;9995:34;9975:18;;;9968:62;-1:-1:-1;;;10046:18:1;;;10039:40;10096:19;;11242:74:0::1;9715:406:1::0;11242:74:0::1;11327:12;:28:::0;;-1:-1:-1;;;;11366:30:0;-1:-1:-1;;;11327:28:0::1;::::0;;::::1;;-1:-1:-1::0;;;;11366:30:0;;-1:-1:-1;;;11366:30:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;11069:335::o;11412:136::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11501:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;11501:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11412:136::o;12917:361::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;13042:6:::1;13021:17;2688:20:::0;13037:1:::1;13021:17;:::i;:::-;13020:28;;;;:::i;:::-;13003:13;:45;;12995:111;;;::::0;-1:-1:-1;;;12995:111:0;;10328:2:1;12995:111:0::1;::::0;::::1;10310:21:1::0;10367:2;10347:18;;;10340:30;10406:34;10386:18;;;10379:62;-1:-1:-1;;;10457:18:1;;;10450:51;10518:19;;12995:111:0::1;10126:417:1::0;12995:111:0::1;13164:4;13143:17;2688:20:::0;13159:1:::1;13143:17;:::i;:::-;13142:26;;;;:::i;:::-;13125:13;:43;;13117:108;;;::::0;-1:-1:-1;;;13117:108:0;;10750:2:1;13117:108:0::1;::::0;::::1;10732:21:1::0;10789:2;10769:18;;;10762:30;10828:34;10808:18;;;10801:62;-1:-1:-1;;;10879:18:1;;;10872:50;10939:19;;13117:108:0::1;10548:416:1::0;13117:108:0::1;13236:18;:34:::0;12917:361::o;11556:158::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11655:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;-1:-1:-1;;11655:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11556:158::o;1197:92::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;1279:1:::1;1262:19:::0;;-1:-1:-1;;;;;;1262:19:0::1;::::0;;1197:92::o;13286:236::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;13410:4:::1;13402;13381:17;2688:20:::0;13397:1:::1;13381:17;:::i;:::-;13380:26;;;;:::i;:::-;13379:35;;;;:::i;:::-;13367:8;:47;;13359:102;;;::::0;-1:-1:-1;;;13359:102:0;;11171:2:1;13359:102:0::1;::::0;::::1;11153:21:1::0;11210:2;11190:18;;;11183:30;11249:34;11229:18;;;11222:62;-1:-1:-1;;;11300:18:1;;;11293:40;11350:19;;13359:102:0::1;10969:406:1::0;13359:102:0::1;13495:19;:8:::0;13507:6:::1;13495:19;:::i;:::-;13472:20;:42:::0;-1:-1:-1;13286:236:0:o;10645:84::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;10699:14:::1;:22:::0;;-1:-1:-1;;;;10699:22:0::1;::::0;;10645:84::o;13968:185::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14056:24:0;::::1;14048:59;;;;-1:-1:-1::0;;;14048:59:0::1;;;;;;;:::i;:::-;14118:14;:27:::0;;-1:-1:-1;;;;;;14118:27:0::1;-1:-1:-1::0;;;;;14118:27:0;;;::::1;::::0;;;::::1;::::0;;13968:185::o;11722:488::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;11835:8:::1;::::0;-1:-1:-1;;;11835:8:0;::::1;;;11834:9;11826:38;;;;-1:-1:-1::0;;;11826:38:0::1;;;;;;;:::i;:::-;11880:9;11875:328;11899:9;:16;11895:1;:20;11875:328;;;11970:7;11978:1;11970:10;;;;;;;;:::i;:::-;;;;;;;11945:9;:21;11955:10;-1:-1:-1::0;;;;;11945:21:0::1;-1:-1:-1::0;;;;;11945:21:0::1;;;;;;;;;;;;;:35;;11937:86;;;;-1:-1:-1::0;;;11937:86:0::1;;;;;;;:::i;:::-;12065:7;12073:1;12065:10;;;;;;;;:::i;:::-;;;;;;;12038:9;:23;12048:9;12058:1;12048:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;12038:23:0::1;-1:-1:-1::0;;;;;12038:23:0::1;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;12115:7;12123:1;12115:10;;;;;;;;:::i;:::-;;;;;;;12090:9;:21;12100:10;-1:-1:-1::0;;;;;12090:21:0::1;-1:-1:-1::0;;;;;12090:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;12166:9;12176:1;12166:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;12145:46:0::1;12154:10;-1:-1:-1::0;;;;;12145:46:0::1;;12180:7;12188:1;12180:10;;;;;;;;:::i;:::-;;;;;;;12145:46;;;;1679:25:1::0;;1667:2;1652:18;;1533:177;12145:46:0::1;;;;;;;;11917:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11875:328;;12698:211:::0;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;12807:13:::1;-1:-1:-1::0;;;;;12799:21:0::1;:4;-1:-1:-1::0;;;;;12799:21:0::1;::::0;12791:60:::1;;;::::0;-1:-1:-1;;;12791:60:0;;12869:2:1;12791:60:0::1;::::0;::::1;12851:21:1::0;12908:2;12888:18;;;12881:30;12947:28;12927:18;;;12920:56;12993:18;;12791:60:0::1;12667:350:1::0;12791:60:0::1;-1:-1:-1::0;;;;;12862:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;12862:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12698:211::o;12349:341::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;12423:8:::1;::::0;-1:-1:-1;;;12423:8:0;::::1;;;12422:9;12414:38;;;;-1:-1:-1::0;;;12414:38:0::1;;;;;;;:::i;:::-;12535:4;12555:24;::::0;;;:9:::1;:24;::::0;;;;;;12626:15:::1;::::0;12463:219;;-1:-1:-1;;;12463:219:0;;::::1;::::0;::::1;13363:34:1::0;;;;13413:18;;;13406:34;13456:18;;;13449:34;;;13499:18;;;13492:34;;;;-1:-1:-1;;;;;12626:15:0::1;13542:19:1::0;;;13535:44;12656:15:0::1;13595:19:1::0;;;13588:35;4180:42:0::1;::::0;12463:31:::1;::::0;12502:9:::1;::::0;13297:19:1;;12463:219:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7266:158::-:0;7337:4;7354:40;7364:10;7376:9;7387:6;7354:9;:40::i;14161:187::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14250:24:0;::::1;14242:59;;;;-1:-1:-1::0;;;14242:59:0::1;;;;;;;:::i;:::-;14312:15;:28:::0;;-1:-1:-1;;;;;;14312:28:0::1;-1:-1:-1::0;;;;;14312:28:0;;;::::1;::::0;;;::::1;::::0;;14161:187::o;14487:240::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;14599:38:::1;::::0;-1:-1:-1;;;14599:38:0;;14631:4:::1;14599:38;::::0;::::1;1471:51:1::0;14572:24:0::1;::::0;-1:-1:-1;;;;;14599:23:0;::::1;::::0;::::1;::::0;1444:18:1;;14599:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14572:65;;14648:51;14671:5;14678:2;14682:16;14648:22;:51::i;14735:247::-:0;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14813:18:0;::::1;14805:46;;;::::0;-1:-1:-1;;;14805:46:0;;14336:2:1;14805:46:0::1;::::0;::::1;14318:21:1::0;14375:2;14355:18;;;14348:30;-1:-1:-1;;;14394:18:1;;;14387:45;14449:18;;14805:46:0::1;14134:339:1::0;14805:46:0::1;14865:12;14883:4;-1:-1:-1::0;;;;;14883:9:0::1;14900:21;14883:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14864:62;;;14945:7;14937:37;;;::::0;-1:-1:-1;;;14937:37:0;;14890:2:1;14937:37:0::1;::::0;::::1;14872:21:1::0;14929:2;14909:18;;;14902:30;-1:-1:-1;;;14948:18:1;;;14941:47;15005:18;;14937:37:0::1;14688:341:1::0;14937:37:0::1;14794:188;14735:247:::0;:::o;12218:123::-;1122:10;1111:7;1022;1049:6;-1:-1:-1;;;;;1049:6:0;;976:87;1111:7;-1:-1:-1;;;;;1111:21:0;;1103:66;;;;-1:-1:-1;;;1103:66:0;;;;;;;:::i;:::-;12278:8:::1;::::0;-1:-1:-1;;;12278:8:0;::::1;;;12277:9;12269:38;;;;-1:-1:-1::0;;;12269:38:0::1;;;;;;;:::i;:::-;12318:8;:15:::0;;-1:-1:-1;;;;12318:15:0::1;-1:-1:-1::0;;;12318:15:0::1;::::0;;12218:123::o;6921:337::-;-1:-1:-1;;;;;7014:19:0;;7006:68;;;;-1:-1:-1;;;7006:68:0;;15236:2:1;7006:68:0;;;15218:21:1;15275:2;15255:18;;;15248:30;15314:34;15294:18;;;15287:62;-1:-1:-1;;;15365:18:1;;;15358:34;15409:19;;7006:68:0;15034:400:1;7006:68:0;-1:-1:-1;;;;;7093:21:0;;7085:68;;;;-1:-1:-1;;;7085:68:0;;15641:2:1;7085:68:0;;;15623:21:1;15680:2;15660:18;;;15653:30;15719:34;15699:18;;;15692:62;-1:-1:-1;;;15770:18:1;;;15763:32;15812:19;;7085:68:0;15439:398:1;7085:68:0;-1:-1:-1;;;;;7166:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7218:32;;1679:25:1;;;7218:32:0;;1652:18:1;7218:32:0;;;;;;;6921:337;;;:::o;7960:2677::-;-1:-1:-1;;;;;8048:18:0;;8040:68;;;;-1:-1:-1;;;8040:68:0;;16044:2:1;8040:68:0;;;16026:21:1;16083:2;16063:18;;;16056:30;16122:34;16102:18;;;16095:62;-1:-1:-1;;;16173:18:1;;;16166:35;16218:19;;8040:68:0;15842:401:1;8040:68:0;-1:-1:-1;;;;;8127:16:0;;8119:64;;;;-1:-1:-1;;;8119:64:0;;16450:2:1;8119:64:0;;;16432:21:1;16489:2;16469:18;;;16462:30;16528:34;16508:18;;;16501:62;-1:-1:-1;;;16579:18:1;;;16572:33;16622:19;;8119:64:0;16248:399:1;8119:64:0;8211:1;8202:6;:10;8194:64;;;;-1:-1:-1;;;8194:64:0;;16854:2:1;8194:64:0;;;16836:21:1;16893:2;16873:18;;;16866:30;16932:34;16912:18;;;16905:62;-1:-1:-1;;;16983:18:1;;;16976:39;17032:19;;8194:64:0;16652:405:1;8194:64:0;8276:8;;-1:-1:-1;;;8276:8:0;;;;8275:9;:72;;;;-1:-1:-1;1022:7:0;1049:6;-1:-1:-1;;;;;8289:15:0;;;1049:6;;8289:15;;;;:40;;-1:-1:-1;;;;;;8308:21:0;;8324:4;8308:21;;8289:40;:57;;;;-1:-1:-1;1022:7:0;1049:6;-1:-1:-1;;;;;8333:13:0;;;1049:6;;8333:13;;8289:57;8271:134;;;8364:29;;-1:-1:-1;;;8364:29:0;;17264:2:1;8364:29:0;;;17246:21:1;17303:2;17283:18;;;17276:30;-1:-1:-1;;;17322:18:1;;;17315:49;17381:18;;8364:29:0;17062:343:1;8271:134:0;8421:14;;-1:-1:-1;;;8421:14:0;;;;8417:830;;;1022:7;1049:6;-1:-1:-1;;;;;8456:15:0;;;1049:6;;8456:15;;;;:32;;-1:-1:-1;1022:7:0;1049:6;-1:-1:-1;;;;;8475:13:0;;;1049:6;;8475:13;;8456:32;:52;;;;-1:-1:-1;;;;;;8492:16:0;;;;8456:52;:77;;;;-1:-1:-1;;;;;;8512:21:0;;8526:6;8512:21;;8456:77;:90;;;;-1:-1:-1;8538:8:0;;-1:-1:-1;;;8538:8:0;;;;8537:9;8456:90;8452:784;;;-1:-1:-1;;;;;8571:31:0;;;;;;:25;:31;;;;;;;;:71;;;;-1:-1:-1;;;;;;8607:35:0;;;;;;:31;:35;;;;;;;;8606:36;8571:71;8567:654;;;8685:20;;8675:6;:30;;8667:80;;;;-1:-1:-1;;;8667:80:0;;17612:2:1;8667:80:0;;;17594:21:1;17651:2;17631:18;;;17624:30;17690:34;17670:18;;;17663:62;-1:-1:-1;;;17741:18:1;;;17734:35;17786:19;;8667:80:0;17410:401:1;8667:80:0;8804:9;;-1:-1:-1;;;;;6585:18:0;;6558:7;6585:18;;;:9;:18;;;;;;8778:22;;:6;:22;:::i;:::-;:35;;8770:67;;;;-1:-1:-1;;;8770:67:0;;18018:2:1;8770:67:0;;;18000:21:1;18057:2;18037:18;;;18030:30;-1:-1:-1;;;18076:18:1;;;18069:49;18135:18;;8770:67:0;17816:343:1;8770:67:0;8567:654;;;-1:-1:-1;;;;;8867:29:0;;;;;;:25;:29;;;;;;;;:71;;;;-1:-1:-1;;;;;;8901:37:0;;;;;;:31;:37;;;;;;;;8900:38;8867:71;8863:358;;;8981:20;;8971:6;:30;;8963:80;;;;-1:-1:-1;;;8963:80:0;;18366:2:1;8963:80:0;;;18348:21:1;18405:2;18385:18;;;18378:30;18444:34;18424:18;;;18417:62;-1:-1:-1;;;18495:18:1;;;18488:36;18541:19;;8963:80:0;18164:402:1;8863:358:0;-1:-1:-1;;;;;9074:35:0;;;;;;:31;:35;;;;;;;;9069:152;;9168:9;;-1:-1:-1;;;;;6585:18:0;;6558:7;6585:18;;;:9;:18;;;;;;9142:22;;:6;:22;:::i;:::-;:35;;9134:67;;;;-1:-1:-1;;;9134:67:0;;18018:2:1;9134:67:0;;;18000:21:1;18057:2;18037:18;;;18030:30;-1:-1:-1;;;18076:18:1;;;18069:49;18135:18;;9134:67:0;17816:343:1;9134:67:0;9302:18;;9292:4;9259:12;6585:18;;;:9;:18;;;;;;-1:-1:-1;9274:46:0;;;;;9337:20;;-1:-1:-1;9349:8:0;;-1:-1:-1;;;9349:8:0;;;;9348:9;9337:20;:56;;;;-1:-1:-1;;;;;;9362:31:0;;;;;;:25;:31;;;;;;;;9361:32;9337:56;:86;;;;-1:-1:-1;;;;;;9398:25:0;;;;;;:19;:25;;;;;;;;9397:26;9337:86;:114;;;;-1:-1:-1;;;;;;9428:23:0;;;;;;:19;:23;;;;;;;;9427:24;9337:114;9333:218;;;9468:8;:15;;-1:-1:-1;;;;9468:15:0;-1:-1:-1;;;9468:15:0;;;9498:10;:8;:10::i;:::-;9523:8;:16;;-1:-1:-1;;;;9523:16:0;;;9333:218;9579:8;;-1:-1:-1;;;;;9604:25:0;;9563:12;9604:25;;;:19;:25;;;;;;9579:8;-1:-1:-1;;;9579:8:0;;;;;9578:9;;9604:25;;:52;;-1:-1:-1;;;;;;9633:23:0;;;;;;:19;:23;;;;;;;;9604:52;9600:100;;;-1:-1:-1;9683:5:0;9600:100;-1:-1:-1;;;;;9736:15:0;;9712:21;9736:15;;;:9;:15;;;;;;9770:23;;;;9762:74;;;;-1:-1:-1;;;9762:74:0;;;;;;;:::i;:::-;9849:12;9880:7;9876:602;;;-1:-1:-1;;;;;9908:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;9941:13:0;;-1:-1:-1;;;9941:13:0;;;;:17;;9908:50;9904:264;;;9996:13;;10013:4;;9987:22;;-1:-1:-1;;;9996:13:0;;;;9987:6;:22;:::i;:::-;9986:31;;;;:::i;:::-;9979:38;;9904:264;;;-1:-1:-1;;;;;10043:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;10078:12:0;;-1:-1:-1;;;10078:12:0;;;;:16;;10043:51;10039:129;;;10132:12;;10148:4;;10123:21;;-1:-1:-1;;;10132:12:0;;;;10123:6;:21;:::i;:::-;10122:30;;;;:::i;:::-;10115:37;;10039:129;10188:8;;10184:283;;-1:-1:-1;;;;;10295:15:0;;;;;;:9;:15;;;;;;;;:23;;;;;;;10359:4;10341:24;;;;;;;:32;;;;;;10416:35;1679:25:1;;;10259:13:0;;;;;10359:4;;10295:15;10416:35;;1652:18:1;10416:35:0;;;;;;;10184:283;-1:-1:-1;;;;;10513:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;10553:13;;;;;;;;;;:23;;;;;;10603:26;;;;;;10532:6;1679:25:1;;1667:2;1652:18;;1533:177;10603:26:0;;;;;;;;8029:2608;;;;7960:2677;;;:::o;1321:320::-;1452:59;;;-1:-1:-1;;;;;18763:32:1;;;1452:59:0;;;18745:51:1;18812:18;;;;18805:34;;;1452:59:0;;;;;;;;;;18718:18:1;;;;1452:59:0;;;;;;;-1:-1:-1;;;;;1452:59:0;-1:-1:-1;;;1452:59:0;;;1441:71;;-1:-1:-1;;;;1441:10:0;;;;:71;;1452:59;1441:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1405:107;;;;1531:7;:57;;;;-1:-1:-1;1543:11:0;;:16;;:44;;;1574:4;1563:24;;;;;;;;;;;;:::i;:::-;1523:110;;;;-1:-1:-1;;;1523:110:0;;19594:2:1;1523:110:0;;;19576:21:1;19633:2;19613:18;;;19606:30;19672:34;19652:18;;;19645:62;-1:-1:-1;;;19723:18:1;;;19716:38;19771:19;;1523:110:0;19392:404:1;1523:110:0;1394:247;;1321:320;;;:::o;14990:1158::-;15053:18;;15029:21;15138:23;15053:18;15159:2;15138:23;:::i;:::-;15129:4;6558:7;6585:18;;;:9;:18;;;;;;15111:50;15107:122;;;15194:18;;:23;;15215:2;15194:23;:::i;:::-;15178:39;;15107:122;15265:16;;;15279:1;15265:16;;;;;;;;15241:21;;15265:16;;;;;;;;;;-1:-1:-1;15265:16:0;15241:40;;15310:4;15292;15297:1;15292:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;15292:23:0;;;-1:-1:-1;;;;;15292:23:0;;;;;3181:42;15326:4;15331:1;15326:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15326:14:0;;;:7;;;;;;;;;;;:14;15353:122;;-1:-1:-1;;;15353:122:0;;4180:42;;15353:66;;:122;;15420:13;;15435:1;;15438:4;;15452;;15459:15;;15353:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15509:21:0;;-1:-1:-1;;15545:14:0;;;-1:-1:-1;15541:600:0;;15616:12;;15576:23;;15632:3;;15603:25;;-1:-1:-1;;;15616:12:0;;;;15603:10;:25;:::i;:::-;15602:33;;;;:::i;:::-;15685:7;;15576:59;;-1:-1:-1;15650:18:0;;15696:3;;15672:20;;-1:-1:-1;;;15685:7:0;;;;15672:10;:20;:::i;:::-;15671:28;;;;:::i;:::-;15650:49;-1:-1:-1;15714:22:0;15650:49;15739:28;15752:15;15739:10;:28;:::i;:::-;:41;;;;:::i;:::-;15819:15;;15811:52;;15714:66;;-1:-1:-1;;;;;;15819:15:0;;15848:10;;15811:52;;;;15848:10;15819:15;15811:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15900:14:0;;15892:55;;15797:66;;-1:-1:-1;;;;;;15900:14:0;;15928;;15892:55;;;;15928:14;15900;15892:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15984:15:0;;15976:57;;15878:69;;-1:-1:-1;;;;;;15984:15:0;;16013;;15976:57;;;;16013:15;15984;15976:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16055:74:0;;;21017:25:1;;;21073:2;21058:18;;21051:34;;;21101:18;;;21094:34;;;21159:2;21144:18;;21137:34;;;15962:71:0;;-1:-1:-1;16055:74:0;;21004:3:1;20989:19;16055:74:0;;;;;;;15561:580;;;15541:600;15018:1130;;;;14990:1158::o;14:250:1:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:173::-;738:20;;-1:-1:-1;;;;;787:31:1;;777:42;;767:70;;833:1;830;823:12;767:70;670:173;;;:::o;848:254::-;916:6;924;977:2;965:9;956:7;952:23;948:32;945:52;;;993:1;990;983:12;945:52;1016:29;1035:9;1016:29;:::i;:::-;1006:39;1092:2;1077:18;;;;1064:32;;-1:-1:-1;;;848:254:1:o;1715:328::-;1792:6;1800;1808;1861:2;1849:9;1840:7;1836:23;1832:32;1829:52;;;1877:1;1874;1867:12;1829:52;1900:29;1919:9;1900:29;:::i;:::-;1890:39;;1948:38;1982:2;1971:9;1967:18;1948:38;:::i;:::-;1938:48;;2033:2;2022:9;2018:18;2005:32;1995:42;;1715:328;;;;;:::o;2048:180::-;2107:6;2160:2;2148:9;2139:7;2135:23;2131:32;2128:52;;;2176:1;2173;2166:12;2128:52;-1:-1:-1;2199:23:1;;2048:180;-1:-1:-1;2048:180:1:o;2422:156::-;2488:20;;2548:4;2537:16;;2527:27;;2517:55;;2568:1;2565;2558:12;2583:322;2654:6;2662;2670;2723:2;2711:9;2702:7;2698:23;2694:32;2691:52;;;2739:1;2736;2729:12;2691:52;2762:27;2779:9;2762:27;:::i;:::-;2752:37;;2808:36;2840:2;2829:9;2825:18;2808:36;:::i;:::-;2798:46;;2863:36;2895:2;2884:9;2880:18;2863:36;:::i;:::-;2853:46;;2583:322;;;;;:::o;2910:186::-;2969:6;3022:2;3010:9;3001:7;2997:23;2993:32;2990:52;;;3038:1;3035;3028:12;2990:52;3061:29;3080:9;3061:29;:::i;:::-;3051:39;2910:186;-1:-1:-1;;;2910:186:1:o;3309:252::-;3373:6;3381;3434:2;3422:9;3413:7;3409:23;3405:32;3402:52;;;3450:1;3447;3440:12;3402:52;3473:27;3490:9;3473:27;:::i;:::-;3463:37;;3519:36;3551:2;3540:9;3536:18;3519:36;:::i;:::-;3509:46;;3309:252;;;;;:::o;3566:118::-;3652:5;3645:13;3638:21;3631:5;3628:32;3618:60;;3674:1;3671;3664:12;3618:60;3566:118;:::o;3689:315::-;3754:6;3762;3815:2;3803:9;3794:7;3790:23;3786:32;3783:52;;;3831:1;3828;3821:12;3783:52;3854:29;3873:9;3854:29;:::i;:::-;3844:39;;3933:2;3922:9;3918:18;3905:32;3946:28;3968:5;3946:28;:::i;:::-;3993:5;3983:15;;;3689:315;;;;;:::o;4009:127::-;4070:10;4065:3;4061:20;4058:1;4051:31;4101:4;4098:1;4091:15;4125:4;4122:1;4115:15;4141:275;4212:2;4206:9;4277:2;4258:13;;-1:-1:-1;;4254:27:1;4242:40;;4312:18;4297:34;;4333:22;;;4294:62;4291:88;;;4359:18;;:::i;:::-;4395:2;4388:22;4141:275;;-1:-1:-1;4141:275:1:o;4421:183::-;4481:4;4514:18;4506:6;4503:30;4500:56;;;4536:18;;:::i;:::-;-1:-1:-1;4581:1:1;4577:14;4593:4;4573:25;;4421:183::o;4609:662::-;4663:5;4716:3;4709:4;4701:6;4697:17;4693:27;4683:55;;4734:1;4731;4724:12;4683:55;4770:6;4757:20;4796:4;4820:60;4836:43;4876:2;4836:43;:::i;:::-;4820:60;:::i;:::-;4914:15;;;5000:1;4996:10;;;;4984:23;;4980:32;;;4945:12;;;;5024:15;;;5021:35;;;5052:1;5049;5042:12;5021:35;5088:2;5080:6;5076:15;5100:142;5116:6;5111:3;5108:15;5100:142;;;5182:17;;5170:30;;5220:12;;;;5133;;5100:142;;;-1:-1:-1;5260:5:1;4609:662;-1:-1:-1;;;;;;4609:662:1:o;5276:1146::-;5394:6;5402;5455:2;5443:9;5434:7;5430:23;5426:32;5423:52;;;5471:1;5468;5461:12;5423:52;5511:9;5498:23;5540:18;5581:2;5573:6;5570:14;5567:34;;;5597:1;5594;5587:12;5567:34;5635:6;5624:9;5620:22;5610:32;;5680:7;5673:4;5669:2;5665:13;5661:27;5651:55;;5702:1;5699;5692:12;5651:55;5738:2;5725:16;5760:4;5784:60;5800:43;5840:2;5800:43;:::i;5784:60::-;5878:15;;;5960:1;5956:10;;;;5948:19;;5944:28;;;5909:12;;;;5984:19;;;5981:39;;;6016:1;6013;6006:12;5981:39;6040:11;;;;6060:148;6076:6;6071:3;6068:15;6060:148;;;6142:23;6161:3;6142:23;:::i;:::-;6130:36;;6093:12;;;;6186;;;;6060:148;;;6227:5;-1:-1:-1;;6270:18:1;;6257:32;;-1:-1:-1;;6301:16:1;;;6298:36;;;6330:1;6327;6320:12;6298:36;;6353:63;6408:7;6397:8;6386:9;6382:24;6353:63;:::i;:::-;6343:73;;;5276:1146;;;;;:::o;6427:260::-;6495:6;6503;6556:2;6544:9;6535:7;6531:23;6527:32;6524:52;;;6572:1;6569;6562:12;6524:52;6595:29;6614:9;6595:29;:::i;:::-;6585:39;;6643:38;6677:2;6666:9;6662:18;6643:38;:::i;7101:356::-;7303:2;7285:21;;;7322:18;;;7315:30;7381:34;7376:2;7361:18;;7354:62;7448:2;7433:18;;7101:356::o;7462:127::-;7523:10;7518:3;7514:20;7511:1;7504:31;7554:4;7551:1;7544:15;7578:4;7575:1;7568:15;7594:168;7667:9;;;7698;;7715:15;;;7709:22;;7695:37;7685:71;;7736:18;;:::i;7767:217::-;7807:1;7833;7823:132;;7877:10;7872:3;7868:20;7865:1;7858:31;7912:4;7909:1;7902:15;7940:4;7937:1;7930:15;7823:132;-1:-1:-1;7969:9:1;;7767:217::o;8395:148::-;8483:4;8462:12;;;8476;;;8458:31;;8501:13;;8498:39;;;8517:18;;:::i;8954:346::-;9156:2;9138:21;;;9195:2;9175:18;;;9168:30;-1:-1:-1;;;9229:2:1;9214:18;;9207:52;9291:2;9276:18;;8954:346::o;11380:340::-;11582:2;11564:21;;;11621:2;11601:18;;;11594:30;-1:-1:-1;;;11655:2:1;11640:18;;11633:46;11711:2;11696:18;;11380:340::o;11725:127::-;11786:10;11781:3;11777:20;11774:1;11767:31;11817:4;11814:1;11807:15;11841:4;11838:1;11831:15;11857:402;12059:2;12041:21;;;12098:2;12078:18;;;12071:30;12137:34;12132:2;12117:18;;12110:62;-1:-1:-1;;;12203:2:1;12188:18;;12181:36;12249:3;12234:19;;11857:402::o;12264:125::-;12329:9;;;12350:10;;;12347:36;;;12363:18;;:::i;12394:128::-;12461:9;;;12482:11;;;12479:37;;;12496:18;;:::i;12527:135::-;12566:3;12587:17;;;12584:43;;12607:18;;:::i;:::-;-1:-1:-1;12654:1:1;12643:13;;12527:135::o;13634:306::-;13722:6;13730;13738;13791:2;13779:9;13770:7;13766:23;13762:32;13759:52;;;13807:1;13804;13797:12;13759:52;13836:9;13830:16;13820:26;;13886:2;13875:9;13871:18;13865:25;13855:35;;13930:2;13919:9;13915:18;13909:25;13899:35;;13634:306;;;;;:::o;13945:184::-;14015:6;14068:2;14056:9;14047:7;14043:23;14039:32;14036:52;;;14084:1;14081;14074:12;14036:52;-1:-1:-1;14107:16:1;;13945:184;-1:-1:-1;13945:184:1:o;18850:287::-;18979:3;19017:6;19011:13;19033:66;19092:6;19087:3;19080:4;19072:6;19068:17;19033:66;:::i;:::-;19115:16;;;;;18850:287;-1:-1:-1;;18850:287:1:o;19142:245::-;19209:6;19262:2;19250:9;19241:7;19237:23;19233:32;19230:52;;;19278:1;19275;19268:12;19230:52;19310:9;19304:16;19329:28;19351:5;19329:28;:::i;19801:980::-;20063:4;20111:3;20100:9;20096:19;20142:6;20131:9;20124:25;20168:2;20206:6;20201:2;20190:9;20186:18;20179:34;20249:3;20244:2;20233:9;20229:18;20222:31;20273:6;20308;20302:13;20339:6;20331;20324:22;20377:3;20366:9;20362:19;20355:26;;20416:2;20408:6;20404:15;20390:29;;20437:1;20447:195;20461:6;20458:1;20455:13;20447:195;;;20526:13;;-1:-1:-1;;;;;20522:39:1;20510:52;;20617:15;;;;20582:12;;;;20558:1;20476:9;20447:195;;;-1:-1:-1;;;;;;;20698:32:1;;;;20693:2;20678:18;;20671:60;-1:-1:-1;;;20762:3:1;20747:19;20740:35;20659:3;19801:980;-1:-1:-1;;;19801:980:1:o

Swarm Source

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