ETH Price: $2,696.26 (+2.05%)

Token

Good Boyz (GBS)
 

Overview

Max Total Supply

1,000,000,000,000 GBS

Holders

64

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,490,280.116573917 GBS

Value
$0.00
0x3c1f60b578f3aaf06edb594fae223cb2aaa5bfd1
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:
GOODBOYS

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-27
*/

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

pragma solidity ^0.8.7;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract GOODBOYS is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "Good Boyz";
    string private constant _symbol = "GBS";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 public _tTotal = 1000000000000 * 10**9; // 1T
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    //Original Fee
    uint256 private _redisFee = 2;
    uint256 private _taxFee = 8; // 5% marketing/dev, 1% liquidity, 1% charity, 1% dev
    uint256 private _launchpadFee = 20; // This will be the percentage of the total fee taken
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public blacklist;
    mapping(address => bool) public preTrader;

    address payable public teamAddress =
        payable(0x58a8589f597C39CcE127BaE07cAA1872bd907990);
    address payable public launchpadAddress =
        payable(0x2eE82E0A83282696b96fA8555E4A9823715A4F9C);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    uint256 private _tradingOpenDate;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 25000000000 * 10**9; // 2.5% 
    uint256 public _maxWalletSize = 50000000000 * 10**9; // 5%
    uint256 public _tokenSwapThreshold = 1000000000 * 10**9; //0.1%

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[teamAddress] = true;

        preTrader[owner()] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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 _decimals;
    }

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

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

    function setLaunchDate(uint256 timestamp) public onlyOwner {
        _tradingOpenDate = timestamp;
    }

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

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

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), 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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    // Transfer functions
    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 (from != owner() && to != owner()) {
            //Trade start check
            if (_tradingOpenDate > block.timestamp) {
                require(
                    preTrader[from] || preTrader[to],
                    "TOKEN: This account cannot send or receive tokens until trading is enabled"
                );
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(
                !blacklist[from] && !blacklist[to],
                "TOKEN: Your account is blacklisted!"
            );

            if (to != uniswapV2Pair) {
                require(
                    balanceOf(to) + amount < _maxWalletSize,
                    "TOKEN: Balance exceeds wallet size!"
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool shouldSwap = contractTokenBalance >= _tokenSwapThreshold;

            if (contractTokenBalance >= _maxTxAmount) {
                contractTokenBalance = _maxTxAmount;
            }

            if (shouldSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHtoTeamWallet(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if (
            (_isExcludedFromFee[from] || _isExcludedFromFee[to]) ||
            (from != uniswapV2Pair && to != uniswapV2Pair)
        ) {
            takeFee = false;
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    // Swap and send functions
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHtoTeamWallet(uint256 amount) private {
        // Take launchpad percentage
        uint256 launchpadAmount = amount.mul(_launchpadFee).div(100);
        uint256 teamAmount = amount.sub(launchpadAmount);
        if (launchpadAmount > 0) {
            (bool successLaunchpad, ) = launchpadAddress.call{
                value: launchpadAmount
            }("");
            require(successLaunchpad, "Tx Failed");
        }

        (bool successTeam, ) = teamAddress.call{value: teamAmount}("");
        require(successTeam, "Tx Failed");
    }

    function manualswap() external {
        require(_msgSender() == teamAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == teamAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHtoTeamWallet(contractETHBalance);
    }

    // Trading and pre-trading
    function addAccountToPreTrading(address account, bool allowed)
        public
        onlyOwner
    {
        require(preTrader[account] != allowed, "TOKEN: Already enabled.");
        preTrader[account] = allowed;
    }

    // Blacklist and whitelist
    function blacklistAddresses(address[] memory _blacklist) public onlyOwner {
        for (uint256 i = 0; i < _blacklist.length; i++) {
            blacklist[_blacklist[i]] = true;
        }
    }

    function setEnabledToTrade(address account, bool enable) external onlyOwner {
        blacklist[account] = !enable;
    }

    // Fee related functions
    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);

        _tTotal = _tTotal;
    }

    // Setters
    function setExcludeFromFee(address account, bool excluded)
        external
        onlyOwner
    {
        _isExcludedFromFee[account] = excluded;
    }

    function setTeamWalletAddress(address payable _teamAddress)
        external
        onlyOwner
    {
        teamAddress = _teamAddress;
    }

    function setFee(uint256 redisFee, uint256 taxFee) public onlyOwner {
        _redisFee = redisFee;
        _taxFee = taxFee;
    }

    function setLaunchpadFee(uint256 launchpadFee) public onlyOwner {
        _launchpadFee = launchpadFee;
    }

    function setLaunchpadAddress(address payable account) external onlyOwner {
        launchpadAddress = account;
    }

    function setMinSwapTokensThreshold(uint256 tokenSwapThreshold)
        public
        onlyOwner
    {
        _tokenSwapThreshold = tokenSwapThreshold;
    }

    function setSwapEnabled(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    // Getters
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);

        return (rSupply, tSupply);
    }

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(
            tAmount
        );
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(
            tAmount,
            tFee,
            tTeam,
            _getRate()
        );

        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(_redisFee).div(100);
        uint256 tTeam = tAmount.mul(_taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();

        return rSupply.div(tSupply);
    }

    // Enable the current contract to receive ETH
    receive() external payable {}
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"addAccountToPreTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_blacklist","type":"address[]"}],"name":"blacklistAddresses","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":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchpadAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setEnabledToTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFee","type":"uint256"},{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"setLaunchDate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"setLaunchpadAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"launchpadFee","type":"uint256"}],"name":"setLaunchpadFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenSwapThreshold","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_teamAddress","type":"address"}],"name":"setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea0000060068190556200002190600019620003df565b6200002f90600019620003b9565b600755600260098190556008600a8190556014600b55600c91909155600d55601080546001600160a01b03199081167358a8589f597c39cce127bae07caa1872bd9079901790915560118054909116732ee82e0a83282696b96fa8555e4a9823715a4f9c1790556015805461ffff191661010017905568015af1d78b58c400006016556802b5e3af16b1880000601755670de0b6b3a7640000601855348015620000d857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a01559260048083019392829003018186803b1580156200019157600080fd5b505afa158015620001a6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cc919062000387565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021557600080fd5b505afa1580156200022a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000250919062000387565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200029957600080fd5b505af1158015620002ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d4919062000387565b601380546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff199081166001908117909255308552828520805482168317905560105486168552828520805482168317905584549095168452600f8352818420805490951617909355600654925192835233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000402565b6000602082840312156200039a57600080fd5b81516001600160a01b0381168114620003b257600080fd5b9392505050565b600082821015620003da57634e487b7160e01b600052601160045260246000fd5b500390565b600082620003fd57634e487b7160e01b600052601260045260246000fd5b500690565b611f6380620004126000396000f3fe60806040526004361061021e5760003560e01c80637d1db4a511610123578063b79275da116100ab578063dd62ed3e1161006f578063dd62ed3e14610667578063e01af92c146106ad578063ea1644d5146106cd578063f16f07ae146106ed578063f9f92be41461070357600080fd5b8063b79275da146105c2578063bdd795ef146105e2578063c3c8cd8014610612578063cd98ed4014610627578063d6f8e0591461064757600080fd5b806398a5c315116100f257806398a5c3151461052c578063a9059cbb1461054c578063af465a271461056c578063af9549e014610582578063b5744134146105a257600080fd5b80637d1db4a5146104b65780638da5cb5b146104cc5780638f9a55c0146104ea57806395d89b411461050057600080fd5b80634aae03d4116101a65780636fc3eaec116101755780636fc3eaec1461042c57806370a0823114610441578063715018a61461046157806374010ece1461047657806377a54eb81461049657600080fd5b80634aae03d41461039357806352f7c988146103b35780635342acb4146103d35780635a4aad431461040c57600080fd5b80631c75f085116101ed5780631c75f085146102f557806323b872dd146103155780632c4b233414610335578063313ce5671461035757806349bd5a5e1461037357600080fd5b806306fdde031461022a578063095ea7b31461026e5780631694505e1461029e57806318160ddd146102d657600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5060408051808201909152600981526823b7b7b2102137bcbd60b91b60208201525b6040516102659190611d28565b60405180910390f35b34801561027a57600080fd5b5061028e610289366004611bda565b610733565b6040519015158152602001610265565b3480156102aa57600080fd5b506012546102be906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b3480156102e257600080fd5b506006545b604051908152602001610265565b34801561030157600080fd5b506010546102be906001600160a01b031681565b34801561032157600080fd5b5061028e610330366004611b64565b61074a565b34801561034157600080fd5b50610355610350366004611af1565b6107b3565b005b34801561036357600080fd5b5060405160098152602001610265565b34801561037f57600080fd5b506013546102be906001600160a01b031681565b34801561039f57600080fd5b506011546102be906001600160a01b031681565b3480156103bf57600080fd5b506103556103ce366004611d06565b610808565b3480156103df57600080fd5b5061028e6103ee366004611af1565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561041857600080fd5b50610355610427366004611ba5565b61083d565b34801561043857600080fd5b50610355610901565b34801561044d57600080fd5b506102e761045c366004611af1565b61092e565b34801561046d57600080fd5b50610355610950565b34801561048257600080fd5b50610355610491366004611ced565b6109c4565b3480156104a257600080fd5b506103556104b1366004611c06565b6109f3565b3480156104c257600080fd5b506102e760165481565b3480156104d857600080fd5b506000546001600160a01b03166102be565b3480156104f657600080fd5b506102e760175481565b34801561050c57600080fd5b5060408051808201909152600381526247425360e81b6020820152610258565b34801561053857600080fd5b50610355610547366004611ced565b610a89565b34801561055857600080fd5b5061028e610567366004611bda565b610ab8565b34801561057857600080fd5b506102e760065481565b34801561058e57600080fd5b5061035561059d366004611ba5565b610ac5565b3480156105ae57600080fd5b506103556105bd366004611ced565b610b1a565b3480156105ce57600080fd5b506103556105dd366004611ba5565b610b49565b3480156105ee57600080fd5b5061028e6105fd366004611af1565b600f6020526000908152604090205460ff1681565b34801561061e57600080fd5b50610355610b9c565b34801561063357600080fd5b50610355610642366004611af1565b610bd2565b34801561065357600080fd5b50610355610662366004611ced565b610c1e565b34801561067357600080fd5b506102e7610682366004611b2b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156106b957600080fd5b506103556106c8366004611cd2565b610c4d565b3480156106d957600080fd5b506103556106e8366004611ced565b610c91565b3480156106f957600080fd5b506102e760185481565b34801561070f57600080fd5b5061028e61071e366004611af1565b600e6020526000908152604090205460ff1681565b6000610740338484610cc0565b5060015b92915050565b6000610757848484610de4565b6107a984336107a485604051806060016040528060288152602001611f06602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061128f565b610cc0565b5060019392505050565b6000546001600160a01b031633146107e65760405162461bcd60e51b81526004016107dd90611d7d565b60405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108325760405162461bcd60e51b81526004016107dd90611d7d565b600991909155600a55565b6000546001600160a01b031633146108675760405162461bcd60e51b81526004016107dd90611d7d565b6001600160a01b0382166000908152600f602052604090205460ff16151581151514156108d65760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e00000000000000000060448201526064016107dd565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6010546001600160a01b0316336001600160a01b03161461092157600080fd5b4761092b816112c9565b50565b6001600160a01b03811660009081526002602052604081205461074490611421565b6000546001600160a01b0316331461097a5760405162461bcd60e51b81526004016107dd90611d7d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109ee5760405162461bcd60e51b81526004016107dd90611d7d565b601655565b6000546001600160a01b03163314610a1d5760405162461bcd60e51b81526004016107dd90611d7d565b60005b8151811015610a85576001600e6000848481518110610a4157610a41611ec4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a7d81611e93565b915050610a20565b5050565b6000546001600160a01b03163314610ab35760405162461bcd60e51b81526004016107dd90611d7d565b601855565b6000610740338484610de4565b6000546001600160a01b03163314610aef5760405162461bcd60e51b81526004016107dd90611d7d565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b445760405162461bcd60e51b81526004016107dd90611d7d565b601455565b6000546001600160a01b03163314610b735760405162461bcd60e51b81526004016107dd90611d7d565b6001600160a01b039091166000908152600e60205260409020805460ff19169115919091179055565b6010546001600160a01b0316336001600160a01b031614610bbc57600080fd5b6000610bc73061092e565b905061092b816114a5565b6000546001600160a01b03163314610bfc5760405162461bcd60e51b81526004016107dd90611d7d565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c485760405162461bcd60e51b81526004016107dd90611d7d565b600b55565b6000546001600160a01b03163314610c775760405162461bcd60e51b81526004016107dd90611d7d565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610cbb5760405162461bcd60e51b81526004016107dd90611d7d565b601755565b6001600160a01b038316610d225760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107dd565b6001600160a01b038216610d835760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107dd565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107dd565b6001600160a01b038216610eaa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107dd565b60008111610f0c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107dd565b6000546001600160a01b03848116911614801590610f3857506000546001600160a01b03838116911614155b156112005742601454111561100b576001600160a01b0383166000908152600f602052604090205460ff1680610f8657506001600160a01b0382166000908152600f602052604090205460ff165b61100b5760405162461bcd60e51b815260206004820152604a60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f6f72207265636569766520746f6b656e7320756e74696c2074726164696e67206064820152691a5cc8195b98589b195960b21b608482015260a4016107dd565b60165481111561105d5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016107dd565b6001600160a01b0383166000908152600e602052604090205460ff1615801561109f57506001600160a01b0382166000908152600e602052604090205460ff16155b6110f75760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016107dd565b6013546001600160a01b0383811691161461117c57601754816111198461092e565b6111239190611e23565b1061117c5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016107dd565b60006111873061092e565b6018546016549192508210159082106111a05760165491505b8080156111b0575060155460ff16155b80156111ca57506013546001600160a01b03868116911614155b80156111dd5750601554610100900460ff165b156111fd576111eb826114a5565b4780156111fb576111fb476112c9565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061124257506001600160a01b03831660009081526005602052604090205460ff165b8061127457506013546001600160a01b0385811691161480159061127457506013546001600160a01b03848116911614155b1561127d575060005b61128984848484611625565b50505050565b600081848411156112b35760405162461bcd60e51b81526004016107dd9190611d28565b5060006112c08486611e7c565b95945050505050565b60006112eb60646112e5600b548561165390919063ffffffff16565b906116d2565b905060006112f98383611714565b90508115611392576011546040516000916001600160a01b03169084908381818185875af1925050503d806000811461134e576040519150601f19603f3d011682016040523d82523d6000602084013e611353565b606091505b50509050806113905760405162461bcd60e51b8152602060048201526009602482015268151e0811985a5b195960ba1b60448201526064016107dd565b505b6010546040516000916001600160a01b03169083908381818185875af1925050503d80600081146113df576040519150601f19603f3d011682016040523d82523d6000602084013e6113e4565b606091505b50509050806112895760405162461bcd60e51b8152602060048201526009602482015268151e0811985a5b195960ba1b60448201526064016107dd565b60006007548211156114885760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107dd565b6000611492611756565b905061149e83826116d2565b9392505050565b6015805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114e7576114e7611ec4565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190611b0e565b8160018151811061158657611586611ec4565b6001600160a01b0392831660209182029290920101526012546115ac9130911684610cc0565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906115e5908590600090869030904290600401611db2565b600060405180830381600087803b1580156115ff57600080fd5b505af1158015611613573d6000803e3d6000fd5b50506015805460ff1916905550505050565b8061163257611632611779565b61163d8484846117a7565b8061128957611289600c54600955600d54600a55565b60008261166257506000610744565b600061166e8385611e5d565b90508261167b8583611e3b565b1461149e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107dd565b600061149e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061189e565b600061149e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061128f565b60008060006117636118cc565b909250905061177282826116d2565b9250505090565b6009541580156117895750600a54155b1561179057565b60098054600c55600a8054600d5560009182905555565b6000806000806000806117b987611901565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506117eb9087611714565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461181a9086611950565b6001600160a01b03891660009081526002602052604090205561183c816119af565b61184684836119f9565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161188b91815260200190565b60405180910390a3505050505050505050565b600081836118bf5760405162461bcd60e51b81526004016107dd9190611d28565b5060006112c08486611e3b565b60075460065460009182916118e182826116d2565b8210156118f8576007546006549350935050509091565b90939092509050565b60008060008060008060008060006119188a611a1d565b92509250925060008060006119368d8686611931611756565b611a81565b919f909e50909c50959a5093985091965092945050505050565b60008061195d8385611e23565b90508381101561149e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107dd565b60006119b9611756565b905060006119c78383611653565b306000908152600260205260409020549091506119e49082611950565b30600090815260026020526040902055505050565b600754611a069083611714565b600755600854611a169082611950565b6008555050565b600080600080611a3d60646112e56009548861165390919063ffffffff16565b90506000611a5b60646112e5600a548961165390919063ffffffff16565b90506000611a7382611a6d8986611714565b90611714565b979296509094509092505050565b6000808080611a908886611653565b90506000611a9e8887611653565b90506000611aac8888611653565b90506000611abe82611a6d8686611714565b939b939a50919850919650505050505050565b8035611adc81611ef0565b919050565b80358015158114611adc57600080fd5b600060208284031215611b0357600080fd5b813561149e81611ef0565b600060208284031215611b2057600080fd5b815161149e81611ef0565b60008060408385031215611b3e57600080fd5b8235611b4981611ef0565b91506020830135611b5981611ef0565b809150509250929050565b600080600060608486031215611b7957600080fd5b8335611b8481611ef0565b92506020840135611b9481611ef0565b929592945050506040919091013590565b60008060408385031215611bb857600080fd5b8235611bc381611ef0565b9150611bd160208401611ae1565b90509250929050565b60008060408385031215611bed57600080fd5b8235611bf881611ef0565b946020939093013593505050565b60006020808385031215611c1957600080fd5b823567ffffffffffffffff80821115611c3157600080fd5b818501915085601f830112611c4557600080fd5b813581811115611c5757611c57611eda565b8060051b604051601f19603f83011681018181108582111715611c7c57611c7c611eda565b604052828152858101935084860182860187018a1015611c9b57600080fd5b600095505b83861015611cc557611cb181611ad1565b855260019590950194938601938601611ca0565b5098975050505050505050565b600060208284031215611ce457600080fd5b61149e82611ae1565b600060208284031215611cff57600080fd5b5035919050565b60008060408385031215611d1957600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611d5557858101830151858201604001528201611d39565b81811115611d67576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e025784516001600160a01b031683529383019391830191600101611ddd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611e3657611e36611eae565b500190565b600082611e5857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611e7757611e77611eae565b500290565b600082821015611e8e57611e8e611eae565b500390565b6000600019821415611ea757611ea7611eae565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461092b57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122014c408eb791293f6bc24baa98101735125c367fea9264fa1eca985e800fe4b5d64736f6c63430008070033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80637d1db4a511610123578063b79275da116100ab578063dd62ed3e1161006f578063dd62ed3e14610667578063e01af92c146106ad578063ea1644d5146106cd578063f16f07ae146106ed578063f9f92be41461070357600080fd5b8063b79275da146105c2578063bdd795ef146105e2578063c3c8cd8014610612578063cd98ed4014610627578063d6f8e0591461064757600080fd5b806398a5c315116100f257806398a5c3151461052c578063a9059cbb1461054c578063af465a271461056c578063af9549e014610582578063b5744134146105a257600080fd5b80637d1db4a5146104b65780638da5cb5b146104cc5780638f9a55c0146104ea57806395d89b411461050057600080fd5b80634aae03d4116101a65780636fc3eaec116101755780636fc3eaec1461042c57806370a0823114610441578063715018a61461046157806374010ece1461047657806377a54eb81461049657600080fd5b80634aae03d41461039357806352f7c988146103b35780635342acb4146103d35780635a4aad431461040c57600080fd5b80631c75f085116101ed5780631c75f085146102f557806323b872dd146103155780632c4b233414610335578063313ce5671461035757806349bd5a5e1461037357600080fd5b806306fdde031461022a578063095ea7b31461026e5780631694505e1461029e57806318160ddd146102d657600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5060408051808201909152600981526823b7b7b2102137bcbd60b91b60208201525b6040516102659190611d28565b60405180910390f35b34801561027a57600080fd5b5061028e610289366004611bda565b610733565b6040519015158152602001610265565b3480156102aa57600080fd5b506012546102be906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b3480156102e257600080fd5b506006545b604051908152602001610265565b34801561030157600080fd5b506010546102be906001600160a01b031681565b34801561032157600080fd5b5061028e610330366004611b64565b61074a565b34801561034157600080fd5b50610355610350366004611af1565b6107b3565b005b34801561036357600080fd5b5060405160098152602001610265565b34801561037f57600080fd5b506013546102be906001600160a01b031681565b34801561039f57600080fd5b506011546102be906001600160a01b031681565b3480156103bf57600080fd5b506103556103ce366004611d06565b610808565b3480156103df57600080fd5b5061028e6103ee366004611af1565b6001600160a01b031660009081526005602052604090205460ff1690565b34801561041857600080fd5b50610355610427366004611ba5565b61083d565b34801561043857600080fd5b50610355610901565b34801561044d57600080fd5b506102e761045c366004611af1565b61092e565b34801561046d57600080fd5b50610355610950565b34801561048257600080fd5b50610355610491366004611ced565b6109c4565b3480156104a257600080fd5b506103556104b1366004611c06565b6109f3565b3480156104c257600080fd5b506102e760165481565b3480156104d857600080fd5b506000546001600160a01b03166102be565b3480156104f657600080fd5b506102e760175481565b34801561050c57600080fd5b5060408051808201909152600381526247425360e81b6020820152610258565b34801561053857600080fd5b50610355610547366004611ced565b610a89565b34801561055857600080fd5b5061028e610567366004611bda565b610ab8565b34801561057857600080fd5b506102e760065481565b34801561058e57600080fd5b5061035561059d366004611ba5565b610ac5565b3480156105ae57600080fd5b506103556105bd366004611ced565b610b1a565b3480156105ce57600080fd5b506103556105dd366004611ba5565b610b49565b3480156105ee57600080fd5b5061028e6105fd366004611af1565b600f6020526000908152604090205460ff1681565b34801561061e57600080fd5b50610355610b9c565b34801561063357600080fd5b50610355610642366004611af1565b610bd2565b34801561065357600080fd5b50610355610662366004611ced565b610c1e565b34801561067357600080fd5b506102e7610682366004611b2b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156106b957600080fd5b506103556106c8366004611cd2565b610c4d565b3480156106d957600080fd5b506103556106e8366004611ced565b610c91565b3480156106f957600080fd5b506102e760185481565b34801561070f57600080fd5b5061028e61071e366004611af1565b600e6020526000908152604090205460ff1681565b6000610740338484610cc0565b5060015b92915050565b6000610757848484610de4565b6107a984336107a485604051806060016040528060288152602001611f06602891396001600160a01b038a166000908152600460209081526040808320338452909152902054919061128f565b610cc0565b5060019392505050565b6000546001600160a01b031633146107e65760405162461bcd60e51b81526004016107dd90611d7d565b60405180910390fd5b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146108325760405162461bcd60e51b81526004016107dd90611d7d565b600991909155600a55565b6000546001600160a01b031633146108675760405162461bcd60e51b81526004016107dd90611d7d565b6001600160a01b0382166000908152600f602052604090205460ff16151581151514156108d65760405162461bcd60e51b815260206004820152601760248201527f544f4b454e3a20416c726561647920656e61626c65642e00000000000000000060448201526064016107dd565b6001600160a01b03919091166000908152600f60205260409020805460ff1916911515919091179055565b6010546001600160a01b0316336001600160a01b03161461092157600080fd5b4761092b816112c9565b50565b6001600160a01b03811660009081526002602052604081205461074490611421565b6000546001600160a01b0316331461097a5760405162461bcd60e51b81526004016107dd90611d7d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109ee5760405162461bcd60e51b81526004016107dd90611d7d565b601655565b6000546001600160a01b03163314610a1d5760405162461bcd60e51b81526004016107dd90611d7d565b60005b8151811015610a85576001600e6000848481518110610a4157610a41611ec4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a7d81611e93565b915050610a20565b5050565b6000546001600160a01b03163314610ab35760405162461bcd60e51b81526004016107dd90611d7d565b601855565b6000610740338484610de4565b6000546001600160a01b03163314610aef5760405162461bcd60e51b81526004016107dd90611d7d565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b445760405162461bcd60e51b81526004016107dd90611d7d565b601455565b6000546001600160a01b03163314610b735760405162461bcd60e51b81526004016107dd90611d7d565b6001600160a01b039091166000908152600e60205260409020805460ff19169115919091179055565b6010546001600160a01b0316336001600160a01b031614610bbc57600080fd5b6000610bc73061092e565b905061092b816114a5565b6000546001600160a01b03163314610bfc5760405162461bcd60e51b81526004016107dd90611d7d565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610c485760405162461bcd60e51b81526004016107dd90611d7d565b600b55565b6000546001600160a01b03163314610c775760405162461bcd60e51b81526004016107dd90611d7d565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610cbb5760405162461bcd60e51b81526004016107dd90611d7d565b601755565b6001600160a01b038316610d225760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107dd565b6001600160a01b038216610d835760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107dd565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e485760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107dd565b6001600160a01b038216610eaa5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107dd565b60008111610f0c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107dd565b6000546001600160a01b03848116911614801590610f3857506000546001600160a01b03838116911614155b156112005742601454111561100b576001600160a01b0383166000908152600f602052604090205460ff1680610f8657506001600160a01b0382166000908152600f602052604090205460ff165b61100b5760405162461bcd60e51b815260206004820152604a60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f6f72207265636569766520746f6b656e7320756e74696c2074726164696e67206064820152691a5cc8195b98589b195960b21b608482015260a4016107dd565b60165481111561105d5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016107dd565b6001600160a01b0383166000908152600e602052604090205460ff1615801561109f57506001600160a01b0382166000908152600e602052604090205460ff16155b6110f75760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016107dd565b6013546001600160a01b0383811691161461117c57601754816111198461092e565b6111239190611e23565b1061117c5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016107dd565b60006111873061092e565b6018546016549192508210159082106111a05760165491505b8080156111b0575060155460ff16155b80156111ca57506013546001600160a01b03868116911614155b80156111dd5750601554610100900460ff165b156111fd576111eb826114a5565b4780156111fb576111fb476112c9565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061124257506001600160a01b03831660009081526005602052604090205460ff165b8061127457506013546001600160a01b0385811691161480159061127457506013546001600160a01b03848116911614155b1561127d575060005b61128984848484611625565b50505050565b600081848411156112b35760405162461bcd60e51b81526004016107dd9190611d28565b5060006112c08486611e7c565b95945050505050565b60006112eb60646112e5600b548561165390919063ffffffff16565b906116d2565b905060006112f98383611714565b90508115611392576011546040516000916001600160a01b03169084908381818185875af1925050503d806000811461134e576040519150601f19603f3d011682016040523d82523d6000602084013e611353565b606091505b50509050806113905760405162461bcd60e51b8152602060048201526009602482015268151e0811985a5b195960ba1b60448201526064016107dd565b505b6010546040516000916001600160a01b03169083908381818185875af1925050503d80600081146113df576040519150601f19603f3d011682016040523d82523d6000602084013e6113e4565b606091505b50509050806112895760405162461bcd60e51b8152602060048201526009602482015268151e0811985a5b195960ba1b60448201526064016107dd565b60006007548211156114885760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016107dd565b6000611492611756565b905061149e83826116d2565b9392505050565b6015805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106114e7576114e7611ec4565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561153b57600080fd5b505afa15801561154f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115739190611b0e565b8160018151811061158657611586611ec4565b6001600160a01b0392831660209182029290920101526012546115ac9130911684610cc0565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906115e5908590600090869030904290600401611db2565b600060405180830381600087803b1580156115ff57600080fd5b505af1158015611613573d6000803e3d6000fd5b50506015805460ff1916905550505050565b8061163257611632611779565b61163d8484846117a7565b8061128957611289600c54600955600d54600a55565b60008261166257506000610744565b600061166e8385611e5d565b90508261167b8583611e3b565b1461149e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107dd565b600061149e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061189e565b600061149e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061128f565b60008060006117636118cc565b909250905061177282826116d2565b9250505090565b6009541580156117895750600a54155b1561179057565b60098054600c55600a8054600d5560009182905555565b6000806000806000806117b987611901565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506117eb9087611714565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461181a9086611950565b6001600160a01b03891660009081526002602052604090205561183c816119af565b61184684836119f9565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161188b91815260200190565b60405180910390a3505050505050505050565b600081836118bf5760405162461bcd60e51b81526004016107dd9190611d28565b5060006112c08486611e3b565b60075460065460009182916118e182826116d2565b8210156118f8576007546006549350935050509091565b90939092509050565b60008060008060008060008060006119188a611a1d565b92509250925060008060006119368d8686611931611756565b611a81565b919f909e50909c50959a5093985091965092945050505050565b60008061195d8385611e23565b90508381101561149e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107dd565b60006119b9611756565b905060006119c78383611653565b306000908152600260205260409020549091506119e49082611950565b30600090815260026020526040902055505050565b600754611a069083611714565b600755600854611a169082611950565b6008555050565b600080600080611a3d60646112e56009548861165390919063ffffffff16565b90506000611a5b60646112e5600a548961165390919063ffffffff16565b90506000611a7382611a6d8986611714565b90611714565b979296509094509092505050565b6000808080611a908886611653565b90506000611a9e8887611653565b90506000611aac8888611653565b90506000611abe82611a6d8686611714565b939b939a50919850919650505050505050565b8035611adc81611ef0565b919050565b80358015158114611adc57600080fd5b600060208284031215611b0357600080fd5b813561149e81611ef0565b600060208284031215611b2057600080fd5b815161149e81611ef0565b60008060408385031215611b3e57600080fd5b8235611b4981611ef0565b91506020830135611b5981611ef0565b809150509250929050565b600080600060608486031215611b7957600080fd5b8335611b8481611ef0565b92506020840135611b9481611ef0565b929592945050506040919091013590565b60008060408385031215611bb857600080fd5b8235611bc381611ef0565b9150611bd160208401611ae1565b90509250929050565b60008060408385031215611bed57600080fd5b8235611bf881611ef0565b946020939093013593505050565b60006020808385031215611c1957600080fd5b823567ffffffffffffffff80821115611c3157600080fd5b818501915085601f830112611c4557600080fd5b813581811115611c5757611c57611eda565b8060051b604051601f19603f83011681018181108582111715611c7c57611c7c611eda565b604052828152858101935084860182860187018a1015611c9b57600080fd5b600095505b83861015611cc557611cb181611ad1565b855260019590950194938601938601611ca0565b5098975050505050505050565b600060208284031215611ce457600080fd5b61149e82611ae1565b600060208284031215611cff57600080fd5b5035919050565b60008060408385031215611d1957600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611d5557858101830151858201604001528201611d39565b81811115611d67576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e025784516001600160a01b031683529383019391830191600101611ddd565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611e3657611e36611eae565b500190565b600082611e5857634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611e7757611e77611eae565b500290565b600082821015611e8e57611e8e611eae565b500390565b6000600019821415611ea757611ea7611eae565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461092b57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122014c408eb791293f6bc24baa98101735125c367fea9264fa1eca985e800fe4b5d64736f6c63430008070033

Deployed Bytecode Sourcemap

3867:14369:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6369:83;;;;;;;;;;-1:-1:-1;6439:5:0;;;;;;;;;;;;-1:-1:-1;;;6439:5:0;;;;6369:83;;;;;;;:::i;:::-;;;;;;;;7408:193;;;;;;;;;;-1:-1:-1;7408:193:0;;;;;:::i;:::-;;:::i;:::-;;;5147:14:1;;5140:22;5122:41;;5110:2;5095:18;7408:193:0;4982:187:1;5181:41:0;;;;;;;;;;-1:-1:-1;5181:41:0;;;;-1:-1:-1;;;;;5181:41:0;;;;;;-1:-1:-1;;;;;4714:32:1;;;4696:51;;4684:2;4669:18;5181:41:0;4550:203:1;6646:95:0;;;;;;;;;;-1:-1:-1;6726:7:0;;6646:95;;;12051:25:1;;;12039:2;12024:18;6646:95:0;11905:177:1;4966:97:0;;;;;;;;;;-1:-1:-1;4966:97:0;;;;-1:-1:-1;;;;;4966:97:0;;;8669:446;;;;;;;;;;-1:-1:-1;8669:446:0;;;;;:::i;:::-;;:::i;15054:147::-;;;;;;;;;;-1:-1:-1;15054:147:0;;;;;:::i;:::-;;:::i;:::-;;6555:83;;;;;;;;;;-1:-1:-1;6555:83:0;;4086:1;13214:36:1;;13202:2;13187:18;6555:83:0;13072:184:1;5229:28:0;;;;;;;;;;-1:-1:-1;5229:28:0;;;;-1:-1:-1;;;;;5229:28:0;;;5070:102;;;;;;;;;;-1:-1:-1;5070:102:0;;;;-1:-1:-1;;;;;5070:102:0;;;15209:133;;;;;;;;;;-1:-1:-1;15209:133:0;;;;;:::i;:::-;;:::i;14336:124::-;;;;;;;;;;-1:-1:-1;14336:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;14425:27:0;14401:4;14425:27;;;:18;:27;;;;;;;;;14336:124;13703:226;;;;;;;;;;-1:-1:-1;13703:226:0;;;;;:::i;:::-;;:::i;13466:197::-;;;;;;;;;;;;;:::i;6749:138::-;;;;;;;;;;-1:-1:-1;6749:138:0;;;;;:::i;:::-;;:::i;1608:148::-;;;;;;;;;;;;;:::i;15878:108::-;;;;;;;;;;-1:-1:-1;15878:108:0;;;;;:::i;:::-;;:::i;13969:198::-;;;;;;;;;;-1:-1:-1;13969:198:0;;;;;:::i;:::-;;:::i;5379:49::-;;;;;;;;;;;;;;;;1394:79;;;;;;;;;;-1:-1:-1;1432:7:0;1459:6;-1:-1:-1;;;;;1459:6:0;1394:79;;5444:51;;;;;;;;;;;;;;;;6460:87;;;;;;;;;;-1:-1:-1;6532:7:0;;;;;;;;;;;;-1:-1:-1;;;6532:7:0;;;;6460:87;;15595:162;;;;;;;;;;-1:-1:-1;15595:162:0;;;;;:::i;:::-;;:::i;7009:199::-;;;;;;;;;;-1:-1:-1;7009:199:0;;;;;:::i;:::-;;:::i;4377:46::-;;;;;;;;;;;;;;;;14888:158;;;;;;;;;;-1:-1:-1;14888:158:0;;;;;:::i;:::-;;:::i;6895:106::-;;;;;;;;;;-1:-1:-1;6895:106:0;;;;;:::i;:::-;;:::i;14175:123::-;;;;;;;;;;-1:-1:-1;14175:123:0;;;;;:::i;:::-;;:::i;4916:41::-;;;;;;;;;;-1:-1:-1;4916:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13267:191;;;;;;;;;;;;;:::i;15469:118::-;;;;;;;;;;-1:-1:-1;15469:118:0;;;;;:::i;:::-;;:::i;15350:111::-;;;;;;;;;;-1:-1:-1;15350:111:0;;;;;:::i;:::-;;:::i;7216:184::-;;;;;;;;;;-1:-1:-1;7216:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7365:18:0;;;7333:7;7365:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7216:184;15765:105;;;;;;;;;;-1:-1:-1;15765:105:0;;;;;:::i;:::-;;:::i;15994:115::-;;;;;;;;;;-1:-1:-1;15994:115:0;;;;;:::i;:::-;;:::i;5508:55::-;;;;;;;;;;;;;;;;4868:41;;;;;;;;;;-1:-1:-1;4868:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7408:193;7510:4;7532:39;188:10;7555:7;7564:6;7532:8;:39::i;:::-;-1:-1:-1;7589:4:0;7408:193;;;;;:::o;8669:446::-;8801:4;8818:36;8828:6;8836:9;8847:6;8818:9;:36::i;:::-;8865:220;8888:6;188:10;8936:138;8992:6;8936:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8936:19:0;;;;;;:11;:19;;;;;;;;188:10;8936:33;;;;;;;;;;:37;:138::i;:::-;8865:8;:220::i;:::-;-1:-1:-1;9103:4:0;8669:446;;;;;:::o;15054:147::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;;;;;;;;;15167:11:::1;:26:::0;;-1:-1:-1;;;;;;15167:26:0::1;-1:-1:-1::0;;;;;15167:26:0;;;::::1;::::0;;;::::1;::::0;;15054:147::o;15209:133::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;15287:9:::1;:20:::0;;;;15318:7:::1;:16:::0;15209:133::o;13703:226::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13825:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;::::1;;:29;;::::0;::::1;;;;13817:65;;;::::0;-1:-1:-1;;;13817:65:0;;8547:2:1;13817:65:0::1;::::0;::::1;8529:21:1::0;8586:2;8566:18;;;8559:30;8625:25;8605:18;;;8598:53;8668:18;;13817:65:0::1;8345:347:1::0;13817:65:0::1;-1:-1:-1::0;;;;;13893:18:0;;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;-1:-1:-1;;13893:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13703:226::o;13466:197::-;13532:11;;-1:-1:-1;;;;;13532:11:0;188:10;-1:-1:-1;;;;;13516:27:0;;13508:36;;;;;;13584:21;13616:39;13584:21;13616:19;:39::i;:::-;13497:166;13466:197::o;6749:138::-;-1:-1:-1;;;;;6862:16:0;;6815:7;6862:16;;;:7;:16;;;;;;6842:37;;:19;:37::i;1608:148::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;1715:1:::1;1699:6:::0;;1678:40:::1;::::0;-1:-1:-1;;;;;1699:6:0;;::::1;::::0;1678:40:::1;::::0;1715:1;;1678:40:::1;1746:1;1729:19:::0;;-1:-1:-1;;;;;;1729:19:0::1;::::0;;1608:148::o;15878:108::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;15952:12:::1;:26:::0;15878:108::o;13969:198::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;14059:9:::1;14054:106;14078:10;:17;14074:1;:21;14054:106;;;14144:4;14117:9;:24;14127:10;14138:1;14127:13;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14117:24:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14117:24:0;:31;;-1:-1:-1;;14117:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14097:3;::::1;::::0;::::1;:::i;:::-;;;;14054:106;;;;13969:198:::0;:::o;15595:162::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;15709:19:::1;:40:::0;15595:162::o;7009:199::-;7114:4;7136:42;188:10;7160:9;7171:6;7136:9;:42::i;14888:158::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15000:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:38;;-1:-1:-1;;15000:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14888:158::o;6895:106::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;6965:16:::1;:28:::0;6895:106::o;14175:123::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14262:18:0;;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;-1:-1:-1;;14262:28:0::1;14283:7:::0;::::1;14262:28:::0;;;::::1;::::0;;14175:123::o;13267:191::-;13333:11;;-1:-1:-1;;;;;13333:11:0;188:10;-1:-1:-1;;;;;13317:27:0;;13309:36;;;;;;13356:23;13382:24;13400:4;13382:9;:24::i;:::-;13356:50;;13417:33;13434:15;13417:16;:33::i;15469:118::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;15553:16:::1;:26:::0;;-1:-1:-1;;;;;;15553:26:0::1;-1:-1:-1::0;;;;;15553:26:0;;;::::1;::::0;;;::::1;::::0;;15469:118::o;15350:111::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;15425:13:::1;:28:::0;15350:111::o;15765:105::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;15836:11:::1;:26:::0;;;::::1;;;;-1:-1:-1::0;;15836:26:0;;::::1;::::0;;;::::1;::::0;;15765:105::o;15994:115::-;1521:6;;-1:-1:-1;;;;;1521:6:0;188:10;1521:22;1513:67;;;;-1:-1:-1;;;1513:67:0;;;;;;;:::i;:::-;16071:14:::1;:30:::0;15994:115::o;7609:369::-;-1:-1:-1;;;;;7736:19:0;;7728:68;;;;-1:-1:-1;;;7728:68:0;;11219:2:1;7728:68:0;;;11201:21:1;11258:2;11238:18;;;11231:30;11297:34;11277:18;;;11270:62;-1:-1:-1;;;11348:18:1;;;11341:34;11392:19;;7728:68:0;11017:400:1;7728:68:0;-1:-1:-1;;;;;7815:21:0;;7807:68;;;;-1:-1:-1;;;7807:68:0;;7384:2:1;7807:68:0;;;7366:21:1;7423:2;7403:18;;;7396:30;7462:34;7442:18;;;7435:62;-1:-1:-1;;;7513:18:1;;;7506:32;7555:19;;7807:68:0;7182:398:1;7807:68:0;-1:-1:-1;;;;;7886:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7938:32;;12051:25:1;;;7938:32:0;;12024:18:1;7938:32:0;;;;;;;7609:369;;;:::o;9150:2098::-;-1:-1:-1;;;;;9272:18:0;;9264:68;;;;-1:-1:-1;;;9264:68:0;;10409:2:1;9264:68:0;;;10391:21:1;10448:2;10428:18;;;10421:30;10487:34;10467:18;;;10460:62;-1:-1:-1;;;10538:18:1;;;10531:35;10583:19;;9264:68:0;10207:401:1;9264:68:0;-1:-1:-1;;;;;9351:16:0;;9343:64;;;;-1:-1:-1;;;9343:64:0;;6212:2:1;9343:64:0;;;6194:21:1;6251:2;6231:18;;;6224:30;6290:34;6270:18;;;6263:62;-1:-1:-1;;;6341:18:1;;;6334:33;6384:19;;9343:64:0;6010:399:1;9343:64:0;9435:1;9426:6;:10;9418:64;;;;-1:-1:-1;;;9418:64:0;;9999:2:1;9418:64:0;;;9981:21:1;10038:2;10018:18;;;10011:30;10077:34;10057:18;;;10050:62;-1:-1:-1;;;10128:18:1;;;10121:39;10177:19;;9418:64:0;9797:405:1;9418:64:0;1432:7;1459:6;-1:-1:-1;;;;;9499:15:0;;;1459:6;;9499:15;;;;:32;;-1:-1:-1;1432:7:0;1459:6;-1:-1:-1;;;;;9518:13:0;;;1459:6;;9518:13;;9499:32;9495:1434;;;9604:15;9585:16;;:34;9581:255;;;-1:-1:-1;;;;;9670:15:0;;;;;;:9;:15;;;;;;;;;:32;;-1:-1:-1;;;;;;9689:13:0;;;;;;:9;:13;;;;;;;;9670:32;9640:180;;;;-1:-1:-1;;;9640:180:0;;11624:2:1;9640:180:0;;;11606:21:1;11663:2;11643:18;;;11636:30;11702:34;11682:18;;;11675:62;11773:34;11753:18;;;11746:62;-1:-1:-1;;;11824:19:1;;;11817:41;11875:19;;9640:180:0;11422:478:1;9640:180:0;9870:12;;9860:6;:22;;9852:63;;;;-1:-1:-1;;;9852:63:0;;7027:2:1;9852:63:0;;;7009:21:1;7066:2;7046:18;;;7039:30;7105;7085:18;;;7078:58;7153:18;;9852:63:0;6825:352:1;9852:63:0;-1:-1:-1;;;;;9957:15:0;;;;;;:9;:15;;;;;;;;9956:16;:34;;;;-1:-1:-1;;;;;;9977:13:0;;;;;;:9;:13;;;;;;;;9976:14;9956:34;9930:131;;;;-1:-1:-1;;;9930:131:0;;7787:2:1;9930:131:0;;;7769:21:1;7826:2;7806:18;;;7799:30;7865:34;7845:18;;;7838:62;-1:-1:-1;;;7916:18:1;;;7909:33;7959:19;;9930:131:0;7585:399:1;9930:131:0;10088:13;;-1:-1:-1;;;;;10082:19:0;;;10088:13;;10082:19;10078:208;;10177:14;;10168:6;10152:13;10162:2;10152:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10122:148;;;;-1:-1:-1;;;10122:148:0;;10815:2:1;10122:148:0;;;10797:21:1;10854:2;10834:18;;;10827:30;10893:34;10873:18;;;10866:62;-1:-1:-1;;;10944:18:1;;;10937:33;10987:19;;10122:148:0;10613:399:1;10122:148:0;10302:28;10333:24;10351:4;10333:9;:24::i;:::-;10414:19;;10478:12;;10302:55;;-1:-1:-1;10390:43:0;;;;10454:36;;10450:112;;10534:12;;10511:35;;10450:112;10582:10;:21;;;;-1:-1:-1;10597:6:0;;;;10596:7;10582:21;:46;;;;-1:-1:-1;10615:13:0;;-1:-1:-1;;;;;10607:21:0;;;10615:13;;10607:21;;10582:46;:61;;;;-1:-1:-1;10632:11:0;;;;;;;10582:61;10578:340;;;10664:38;10681:20;10664:16;:38::i;:::-;10750:21;10794:22;;10790:113;;10841:42;10861:21;10841:19;:42::i;:::-;10645:273;10578:340;9533:1396;;9495:1434;-1:-1:-1;;;;;11019:24:0;;10941:12;11019:24;;;:18;:24;;;;;;10956:4;;11019:24;;;:50;;-1:-1:-1;;;;;;11047:22:0;;;;;;:18;:22;;;;;;;;11019:50;11018:115;;;-1:-1:-1;11096:13:0;;-1:-1:-1;;;;;11088:21:0;;;11096:13;;11088:21;;;;:44;;-1:-1:-1;11119:13:0;;-1:-1:-1;;;;;11113:19:0;;;11119:13;;11113:19;;11088:44;11000:187;;;-1:-1:-1;11170:5:0;11000:187;11199:41;11214:4;11220:2;11224:6;11232:7;11199:14;:41::i;:::-;9253:1995;9150:2098;;;:::o;2118:224::-;2238:7;2274:12;2266:6;;;;2258:29;;;;-1:-1:-1;;;2258:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2298:9:0;2310:5;2314:1;2310;:5;:::i;:::-;2298:17;2118:224;-1:-1:-1;;;;;2118:224:0:o;12687:572::-;12789:23;12815:34;12845:3;12815:25;12826:13;;12815:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;12789:60;-1:-1:-1;12860:18:0;12881:27;:6;12789:60;12881:10;:27::i;:::-;12860:48;-1:-1:-1;12923:19:0;;12919:214;;12987:16;;:81;;12960:21;;-1:-1:-1;;;;;12987:16:0;;13034:15;;12960:21;12987:81;12960:21;12987:81;13034:15;12987:16;:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12959:109;;;13091:16;13083:38;;;;-1:-1:-1;;;13083:38:0;;8899:2:1;13083:38:0;;;8881:21:1;8938:1;8918:18;;;8911:29;-1:-1:-1;;;8956:18:1;;;8949:39;9005:18;;13083:38:0;8697:332:1;13083:38:0;12944:189;12919:214;13168:11;;:39;;13146:16;;-1:-1:-1;;;;;13168:11:0;;13192:10;;13146:16;13168:39;13146:16;13168:39;13192:10;13168:11;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13145:62;;;13226:11;13218:33;;;;-1:-1:-1;;;13218:33:0;;8899:2:1;13218:33:0;;;8881:21:1;8938:1;8918:18;;;8911:29;-1:-1:-1;;;8956:18:1;;;8949:39;9005:18;;13218:33:0;8697:332:1;7986:323:0;8081:7;8139;;8128;:18;;8106:110;;;;-1:-1:-1;;;8106:110:0;;6616:2:1;8106:110:0;;;6598:21:1;6655:2;6635:18;;;6628:30;6694:34;6674:18;;;6667:62;-1:-1:-1;;;6745:18:1;;;6738:40;6795:19;;8106:110:0;6414:406:1;8106:110:0;8227:19;8249:10;:8;:10::i;:::-;8227:32;-1:-1:-1;8277:24:0;:7;8227:32;8277:11;:24::i;:::-;8270:31;7986:323;-1:-1:-1;;;7986:323:0:o;12196:483::-;5666:6;:13;;-1:-1:-1;;5666:13:0;5675:4;5666:13;;;12298:16:::1;::::0;;12312:1:::1;12298:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12298:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12298:16:0::1;12274:40;;12343:4;12325;12330:1;12325:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12325:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12369:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12369:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12325:7;;12369:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12359:4;12364:1;12359:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12359:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12434:15:::1;::::0;12402:62:::1;::::0;12419:4:::1;::::0;12434:15:::1;12452:11:::0;12402:8:::1;:62::i;:::-;12475:15;::::0;:196:::1;::::0;-1:-1:-1;;;12475:196:0;;-1:-1:-1;;;;;12475:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12556:11;;12475:15:::1;::::0;12598:4;;12625::::1;::::0;12645:15:::1;::::0;12475:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5702:6:0;:14;;-1:-1:-1;;5702:14:0;;;-1:-1:-1;;;;12196:483:0:o;11256:282::-;11412:7;11407:28;;11421:14;:12;:14::i;:::-;11446:44;11464:6;11472:9;11483:6;11446:17;:44::i;:::-;11506:7;11501:29;;11515:15;8600:17;;8588:9;:29;8638:15;;8628:7;:25;8544:117;2350:246;2408:7;2432:6;2428:47;;-1:-1:-1;2462:1:0;2455:8;;2428:47;2485:9;2497:5;2501:1;2497;:5;:::i;:::-;2485:17;-1:-1:-1;2530:1:0;2521:5;2525:1;2485:17;2521:5;:::i;:::-;:10;2513:56;;;;-1:-1:-1;;;2513:56:0;;9236:2:1;2513:56:0;;;9218:21:1;9275:2;9255:18;;;9248:30;9314:34;9294:18;;;9287:62;-1:-1:-1;;;9365:18:1;;;9358:31;9406:19;;2513:56:0;9034:397:1;2604:132:0;2662:7;2689:39;2693:1;2696;2689:39;;;;;;;;;;;;;;;;;:3;:39::i;1974:136::-;2032:7;2059:43;2063:1;2066;2059:43;;;;;;;;;;;;;;;;;:3;:43::i;17979:166::-;18021:7;18042:15;18059;18078:19;:17;:19::i;:::-;18041:56;;-1:-1:-1;18041:56:0;-1:-1:-1;18117:20:0;18041:56;;18117:11;:20::i;:::-;18110:27;;;;17979:166;:::o;8317:219::-;8364:9;;:14;:30;;;;-1:-1:-1;8382:7:0;;:12;8364:30;8360:43;;;8317:219::o;8360:43::-;8435:9;;;8415:17;:29;8473:7;;;8455:15;:25;-1:-1:-1;8493:13:0;;;;8517:11;8317:219::o;11546:610::-;11693:15;11723:23;11761:12;11788:23;11826:12;11853:13;11880:19;11891:7;11880:10;:19::i;:::-;-1:-1:-1;;;;;11928:15:0;;;;;;:7;:15;;;;;;11678:221;;-1:-1:-1;11678:221:0;;-1:-1:-1;11678:221:0;;-1:-1:-1;11678:221:0;-1:-1:-1;11678:221:0;-1:-1:-1;11678:221:0;-1:-1:-1;11928:28:0;;11678:221;11928:19;:28::i;:::-;-1:-1:-1;;;;;11910:15:0;;;;;;;:7;:15;;;;;;:46;;;;11988:18;;;;;;;:39;;12011:15;11988:22;:39::i;:::-;-1:-1:-1;;;;;11967:18:0;;;;;;:7;:18;;;;;:60;12038:16;12048:5;12038:9;:16::i;:::-;12065:23;12077:4;12083;12065:11;:23::i;:::-;12121:9;-1:-1:-1;;;;;12104:44:0;12113:6;-1:-1:-1;;;;;12104:44:0;;12132:15;12104:44;;;;12051:25:1;;12039:2;12024:18;;11905:177;12104:44:0;;;;;;;;11667:489;;;;;;11546:610;;;:::o;2744:223::-;2864:7;2899:12;2892:5;2884:28;;;;-1:-1:-1;;;2884:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2923:9:0;2935:5;2939:1;2935;:5;:::i;16133:259::-;16231:7;;16267;;16184;;;;16299:20;16231:7;16267;16299:11;:20::i;:::-;16289:7;:30;16285:61;;;16329:7;;16338;;16321:25;;;;;;16133:259;;:::o;16285:61::-;16367:7;;16376;;-1:-1:-1;16133:259:0;-1:-1:-1;16133:259:0:o;16400:614::-;16500:7;16522;16544;16566;16588;16610;16646:23;16671:12;16685:13;16702:44;16728:7;16702:11;:44::i;:::-;16645:101;;;;;;16758:15;16775:23;16800:12;16816:108;16842:7;16864:4;16883:5;16903:10;:8;:10::i;:::-;16816:11;:108::i;:::-;16757:167;;;;-1:-1:-1;16757:167:0;;-1:-1:-1;16977:15:0;;-1:-1:-1;16994:4:0;;-1:-1:-1;17000:5:0;;-1:-1:-1;16400:614:0;;-1:-1:-1;;;;;16400:614:0:o;1787:179::-;1845:7;;1877:5;1881:1;1877;:5;:::i;:::-;1865:17;;1906:1;1901;:6;;1893:46;;;;-1:-1:-1;;;1893:46:0;;8191:2:1;1893:46:0;;;8173:21:1;8230:2;8210:18;;;8203:30;8269:29;8249:18;;;8242:57;8316:18;;1893:46:0;7989:351:1;14468:211:0;14521:19;14543:10;:8;:10::i;:::-;14521:32;-1:-1:-1;14564:13:0;14580:22;:5;14521:32;14580:9;:22::i;:::-;14654:4;14638:22;;;;:7;:22;;;;;;14564:38;;-1:-1:-1;14638:33:0;;14564:38;14638:26;:33::i;:::-;14629:4;14613:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14468:211:0:o;14687:177::-;14765:7;;:17;;14777:4;14765:11;:17::i;:::-;14755:7;:27;14806:10;;:20;;14821:4;14806:14;:20::i;:::-;14793:10;:33;-1:-1:-1;;14687:177:0:o;17022:405::-;17123:7;17145;17167;17202:12;17217:31;17244:3;17217:22;17229:9;;17217:7;:11;;:22;;;;:::i;:31::-;17202:46;;17259:13;17275:29;17300:3;17275:20;17287:7;;17275;:11;;:20;;;;:::i;:29::-;17259:45;-1:-1:-1;17315:23:0;17341:28;17259:45;17341:17;:7;17353:4;17341:11;:17::i;:::-;:21;;:28::i;:::-;17315:54;17407:4;;-1:-1:-1;17413:5:0;;-1:-1:-1;17022:405:0;;-1:-1:-1;;;17022:405:0:o;17435:536::-;17629:7;;;;17726:24;:7;17738:11;17726;:24::i;:::-;17708:42;-1:-1:-1;17761:12:0;17776:21;:4;17785:11;17776:8;:21::i;:::-;17761:36;-1:-1:-1;17808:13:0;17824:22;:5;17834:11;17824:9;:22::i;:::-;17808:38;-1:-1:-1;17857:23:0;17883:28;17808:38;17883:17;:7;17895:4;17883:11;:17::i;:28::-;17932:7;;;;-1:-1:-1;17958:4:0;;-1:-1:-1;17435:536:0;;-1:-1:-1;;;;;;;17435:536:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:160::-;218:20;;274:13;;267:21;257:32;;247:60;;303:1;300;293:12;318:247;377:6;430:2;418:9;409:7;405:23;401:32;398:52;;;446:1;443;436:12;398:52;485:9;472:23;504:31;529:5;504:31;:::i;570:251::-;640:6;693:2;681:9;672:7;668:23;664:32;661:52;;;709:1;706;699:12;661:52;741:9;735:16;760:31;785:5;760:31;:::i;1086:388::-;1154:6;1162;1215:2;1203:9;1194:7;1190:23;1186:32;1183:52;;;1231:1;1228;1221:12;1183:52;1270:9;1257:23;1289:31;1314:5;1289:31;:::i;:::-;1339:5;-1:-1:-1;1396:2:1;1381:18;;1368:32;1409:33;1368:32;1409:33;:::i;:::-;1461:7;1451:17;;;1086:388;;;;;:::o;1479:456::-;1556:6;1564;1572;1625:2;1613:9;1604:7;1600:23;1596:32;1593:52;;;1641:1;1638;1631:12;1593:52;1680:9;1667:23;1699:31;1724:5;1699:31;:::i;:::-;1749:5;-1:-1:-1;1806:2:1;1791:18;;1778:32;1819:33;1778:32;1819:33;:::i;:::-;1479:456;;1871:7;;-1:-1:-1;;;1925:2:1;1910:18;;;;1897:32;;1479:456::o;1940:315::-;2005:6;2013;2066:2;2054:9;2045:7;2041:23;2037:32;2034:52;;;2082:1;2079;2072:12;2034:52;2121:9;2108:23;2140:31;2165:5;2140:31;:::i;:::-;2190:5;-1:-1:-1;2214:35:1;2245:2;2230:18;;2214:35;:::i;:::-;2204:45;;1940:315;;;;;:::o;2260:::-;2328:6;2336;2389:2;2377:9;2368:7;2364:23;2360:32;2357:52;;;2405:1;2402;2395:12;2357:52;2444:9;2431:23;2463:31;2488:5;2463:31;:::i;:::-;2513:5;2565:2;2550:18;;;;2537:32;;-1:-1:-1;;;2260:315:1:o;2580:1132::-;2664:6;2695:2;2738;2726:9;2717:7;2713:23;2709:32;2706:52;;;2754:1;2751;2744:12;2706:52;2794:9;2781:23;2823:18;2864:2;2856:6;2853:14;2850:34;;;2880:1;2877;2870:12;2850:34;2918:6;2907:9;2903:22;2893:32;;2963:7;2956:4;2952:2;2948:13;2944:27;2934:55;;2985:1;2982;2975:12;2934:55;3021:2;3008:16;3043:2;3039;3036:10;3033:36;;;3049:18;;:::i;:::-;3095:2;3092:1;3088:10;3127:2;3121:9;3190:2;3186:7;3181:2;3177;3173:11;3169:25;3161:6;3157:38;3245:6;3233:10;3230:22;3225:2;3213:10;3210:18;3207:46;3204:72;;;3256:18;;:::i;:::-;3292:2;3285:22;3342:18;;;3376:15;;;;-1:-1:-1;3411:11:1;;;3441;;;3437:20;;3434:33;-1:-1:-1;3431:53:1;;;3480:1;3477;3470:12;3431:53;3502:1;3493:10;;3512:169;3526:2;3523:1;3520:9;3512:169;;;3583:23;3602:3;3583:23;:::i;:::-;3571:36;;3544:1;3537:9;;;;;3627:12;;;;3659;;3512:169;;;-1:-1:-1;3700:6:1;2580:1132;-1:-1:-1;;;;;;;;2580:1132:1:o;3717:180::-;3773:6;3826:2;3814:9;3805:7;3801:23;3797:32;3794:52;;;3842:1;3839;3832:12;3794:52;3865:26;3881:9;3865:26;:::i;3902:180::-;3961:6;4014:2;4002:9;3993:7;3989:23;3985:32;3982:52;;;4030:1;4027;4020:12;3982:52;-1:-1:-1;4053:23:1;;3902:180;-1:-1:-1;3902:180:1:o;4087:248::-;4155:6;4163;4216:2;4204:9;4195:7;4191:23;4187:32;4184:52;;;4232:1;4229;4222:12;4184:52;-1:-1:-1;;4255:23:1;;;4325:2;4310:18;;;4297:32;;-1:-1:-1;4087:248:1:o;5408:597::-;5520:4;5549:2;5578;5567:9;5560:21;5610:6;5604:13;5653:6;5648:2;5637:9;5633:18;5626:34;5678:1;5688:140;5702:6;5699:1;5696:13;5688:140;;;5797:14;;;5793:23;;5787:30;5763:17;;;5782:2;5759:26;5752:66;5717:10;;5688:140;;;5846:6;5843:1;5840:13;5837:91;;;5916:1;5911:2;5902:6;5891:9;5887:22;5883:31;5876:42;5837:91;-1:-1:-1;5989:2:1;5968:15;-1:-1:-1;;5964:29:1;5949:45;;;;5996:2;5945:54;;5408:597;-1:-1:-1;;;5408:597:1:o;9436:356::-;9638:2;9620:21;;;9657:18;;;9650:30;9716:34;9711:2;9696:18;;9689:62;9783:2;9768:18;;9436:356::o;12087:980::-;12349:4;12397:3;12386:9;12382:19;12428:6;12417:9;12410:25;12454:2;12492:6;12487:2;12476:9;12472:18;12465:34;12535:3;12530:2;12519:9;12515:18;12508:31;12559:6;12594;12588:13;12625:6;12617;12610:22;12663:3;12652:9;12648:19;12641:26;;12702:2;12694:6;12690:15;12676:29;;12723:1;12733:195;12747:6;12744:1;12741:13;12733:195;;;12812:13;;-1:-1:-1;;;;;12808:39:1;12796:52;;12903:15;;;;12868:12;;;;12844:1;12762:9;12733:195;;;-1:-1:-1;;;;;;;12984:32:1;;;;12979:2;12964:18;;12957:60;-1:-1:-1;;;13048:3:1;13033:19;13026:35;12945:3;12087:980;-1:-1:-1;;;12087:980:1:o;13261:128::-;13301:3;13332:1;13328:6;13325:1;13322:13;13319:39;;;13338:18;;:::i;:::-;-1:-1:-1;13374:9:1;;13261:128::o;13394:217::-;13434:1;13460;13450:132;;13504:10;13499:3;13495:20;13492:1;13485:31;13539:4;13536:1;13529:15;13567:4;13564:1;13557:15;13450:132;-1:-1:-1;13596:9:1;;13394:217::o;13616:168::-;13656:7;13722:1;13718;13714:6;13710:14;13707:1;13704:21;13699:1;13692:9;13685:17;13681:45;13678:71;;;13729:18;;:::i;:::-;-1:-1:-1;13769:9:1;;13616:168::o;13789:125::-;13829:4;13857:1;13854;13851:8;13848:34;;;13862:18;;:::i;:::-;-1:-1:-1;13899:9:1;;13789:125::o;13919:135::-;13958:3;-1:-1:-1;;13979:17:1;;13976:43;;;13999:18;;:::i;:::-;-1:-1:-1;14046:1:1;14035:13;;13919:135::o;14059:127::-;14120:10;14115:3;14111:20;14108:1;14101:31;14151:4;14148:1;14141:15;14175:4;14172:1;14165:15;14191:127;14252:10;14247:3;14243:20;14240:1;14233:31;14283:4;14280:1;14273:15;14307:4;14304:1;14297:15;14323:127;14384:10;14379:3;14375:20;14372:1;14365:31;14415:4;14412:1;14405:15;14439:4;14436:1;14429:15;14455:131;-1:-1:-1;;;;;14530:31:1;;14520:42;;14510:70;;14576:1;14573;14566:12

Swarm Source

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