ETH Price: $3,782.49 (-1.92%)
Gas: 20 Gwei

Token

Dev Needs Kidney (KIDNEY)
 

Overview

Max Total Supply

100,000,000 KIDNEY

Holders

109

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
KIDNEY

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-03
*/

// SPDX-License-Identifier: Unlicensed

/**
I need liver and kidney transplant and i am positive enough that i can achieve that through this project.
Dev Twitter:      https://twitter.com/0xsquire
Project Twitter:  https://twitter.com/devneedskidney
All other links:  https://linktr.ee/iumair

**/
pragma solidity ^0.8.18;
 
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);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
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 KIDNEY is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Dev Needs Kidney";
    string private constant _symbol = "KIDNEY";
    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 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 5;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 5;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
    address payable private _developmentAddress = payable(0xe0b85a28edf459e12b0E2242AE3C4a5636D115A0); 
    address payable private _marketingAddress = payable(0xe0b85a28edf459e12b0E2242AE3C4a5636D115A0);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 1000000 * 10**9; 
    uint256 public _maxWalletSize = 1000000 * 10**9; 
    uint256 public _swapTokensAtAmount = 1000 * 10**9;

    bool private _maxTxn = false;
    bool private _maxWallet = false;
    bool private _maxTxnCan = false;
    bool private _maxWalletCan = false;

    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[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    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 transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "the transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount has to 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 _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "Can't approve from zero address");
        require(spender != address(0), "Can't approve to zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "Cant transfer from address zero");
        require(to != address(0), "Cant transfer to address zero");
        require(amount > 0, "Amount should be above zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "Only owner can trade before trading activation");
            }
 
            require(amount <= _maxTxAmount, "Exceeded max transaction limit");
            require(!bots[from] && !bots[to], "This account is on the blacklist");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "Exceeds max wallet balance");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    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 sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    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);
    }
 
    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);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        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);
    }
 
    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 setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 95, "Buy tax must be between 0% and 95%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 95, "Sell tax must be between 0% and 95%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount, bool maxTxn, bool maxTxnCan) public onlyOwner {
           _maxTxAmount = maxTxAmount;
           _maxTxn = maxTxn;
           _maxTxnCan = maxTxnCan;
        
    }
 
    function setMaxWalletSize(uint256 maxWalletSize, bool maxWallet, bool maxWalletCan) public onlyOwner {
        _maxWalletSize = maxWalletSize;
        _maxWallet = maxWallet;
        _maxWalletCan = maxWalletCan;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"bool","name":"maxTxn","type":"bool"},{"internalType":"bool","name":"maxTxnCan","type":"bool"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"},{"internalType":"bool","name":"maxWallet","type":"bool"},{"internalType":"bool","name":"maxWalletCan","type":"bool"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"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"}]

608060405261001767016345785d8a00005f1961034f565b610022905f1961036e565b6006555f600881905560056009819055600a829055600b819055600c829055600d819055600e91909155600f55601280546001600160a01b031990811673e0b85a28edf459e12b0e2242ae3c4a5636d115a09081179092556013805490911690911790556015805461ffff60a81b1916600160b01b17905566038d7ea4c68000601681905560175564e8d4a510006018556019805463ffffffff191690553480156100cb575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015610184573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a89190610393565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101f3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102179190610393565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610261573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102859190610393565b601580546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a000060405161034191815260200190565b60405180910390a3506103c0565b5f8261036957634e487b7160e01b5f52601260045260245ffd5b500690565b8181038181111561038d57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f602082840312156103a3575f80fd5b81516001600160a01b03811681146103b9575f80fd5b9392505050565b611e8b806103cd5f395ff3fe6080604052600436106101c7575f3560e01c80637f2feddc116100f2578063a9059cbb11610092578063c492f04611610062578063c492f04614610536578063dd62ed3e14610555578063f2fde38b14610599578063fc7d9469146105b8575f80fd5b8063a9059cbb146104b6578063bd6bba91146104d5578063bfd79284146104f4578063c3c8cd8014610522575f80fd5b80638f9a55c0116100cd5780638f9a55c01461043557806395d89b411461044a57806398a5c31514610478578063a2a957bb14610497575f80fd5b80637f2feddc146103cf5780638da5cb5b146103fa5780638f70ccf714610416575f80fd5b8063313ce567116101685780636fc3eaec116101385780636fc3eaec1461037357806370a0823114610387578063715018a6146103a65780637d1db4a5146103ba575f80fd5b8063313ce567146102fb57806349bd5a5e146103165780636b999053146103355780636d8aa8f814610354575f80fd5b80631694505e116101a35780631694505e1461026c57806318160ddd146102a357806323b872dd146102c75780632fd689e3146102e6575f80fd5b8062b8cf2a146101d257806306fdde03146101f3578063095ea7b31461023d575f80fd5b366101ce57005b5f80fd5b3480156101dd575f80fd5b506101f16101ec366004611a21565b6105d7565b005b3480156101fe575f80fd5b5060408051808201909152601081526f446576204e65656473204b69646e657960801b60208201525b6040516102349190611ae1565b60405180910390f35b348015610248575f80fd5b5061025c610257366004611b16565b610668565b6040519015158152602001610234565b348015610277575f80fd5b5060145461028b906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156102ae575f80fd5b5067016345785d8a00005b604051908152602001610234565b3480156102d2575f80fd5b5061025c6102e1366004611b40565b61067e565b3480156102f1575f80fd5b506102b960185481565b348015610306575f80fd5b5060405160098152602001610234565b348015610321575f80fd5b5060155461028b906001600160a01b031681565b348015610340575f80fd5b506101f161034f366004611b7e565b6106e5565b34801561035f575f80fd5b506101f161036e366004611ba8565b61072e565b34801561037e575f80fd5b506101f1610775565b348015610392575f80fd5b506102b96103a1366004611b7e565b6107bf565b3480156103b1575f80fd5b506101f16107e0565b3480156103c5575f80fd5b506102b960165481565b3480156103da575f80fd5b506102b96103e9366004611b7e565b60116020525f908152604090205481565b348015610405575f80fd5b505f546001600160a01b031661028b565b348015610421575f80fd5b506101f1610430366004611ba8565b610851565b348015610440575f80fd5b506102b960175481565b348015610455575f80fd5b506040805180820190915260068152654b49444e455960d01b6020820152610227565b348015610483575f80fd5b506101f1610492366004611bc1565b610898565b3480156104a2575f80fd5b506101f16104b1366004611bd8565b6108c6565b3480156104c1575f80fd5b5061025c6104d0366004611b16565b610a7b565b3480156104e0575f80fd5b506101f16104ef366004611c07565b610a87565b3480156104ff575f80fd5b5061025c61050e366004611b7e565b60106020525f908152604090205460ff1681565b34801561052d575f80fd5b506101f1610adf565b348015610541575f80fd5b506101f1610550366004611c40565b610b31565b348015610560575f80fd5b506102b961056f366004611cb4565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105a4575f80fd5b506101f16105b3366004611b7e565b610bc4565b3480156105c3575f80fd5b506101f16105d2366004611c07565b610cab565b5f546001600160a01b031633146106095760405162461bcd60e51b815260040161060090611ceb565b60405180910390fd5b5f5b815181101561066457600160105f84848151811061062b5761062b611d20565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161060b565b5050565b5f610674338484610d0a565b5060015b92915050565b5f61068a848484610e16565b6106db84336106d685604051806060016040528060258152602001611e31602591396001600160a01b038a165f90815260046020908152604080832033845290915290205491906112f3565b610d0a565b5060019392505050565b5f546001600160a01b0316331461070e5760405162461bcd60e51b815260040161060090611ceb565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146107575760405162461bcd60e51b815260040161060090611ceb565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107aa57506013546001600160a01b0316336001600160a01b0316145b6107b2575f80fd5b476107bc8161132b565b50565b6001600160a01b0381165f9081526002602052604081205461067890611362565b5f546001600160a01b031633146108095760405162461bcd60e51b815260040161060090611ceb565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461087a5760405162461bcd60e51b815260040161060090611ceb565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146108c15760405162461bcd60e51b815260040161060090611ceb565b601855565b5f546001600160a01b031633146108ef5760405162461bcd60e51b815260040161060090611ceb565b600484111561094e5760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420342560d81b6064820152608401610600565b605f8211156109aa5760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642039604482015261352560f01b6064820152608401610600565b6004831115610a0a5760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420342560d01b6064820152608401610600565b605f811115610a675760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526239352560e81b6064820152608401610600565b600893909355600a91909155600955600b55565b5f610674338484610e16565b5f546001600160a01b03163314610ab05760405162461bcd60e51b815260040161060090611ceb565b60169290925560198054921515620100000262ff0000199215159290921662ff00ff1990931692909217179055565b6012546001600160a01b0316336001600160a01b03161480610b1457506013546001600160a01b0316336001600160a01b0316145b610b1c575f80fd5b5f610b26306107bf565b90506107bc816113e6565b5f546001600160a01b03163314610b5a5760405162461bcd60e51b815260040161060090611ceb565b5f5b82811015610bbe578160055f868685818110610b7a57610b7a611d20565b9050602002016020810190610b8f9190611b7e565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610b5c565b50505050565b5f546001600160a01b03163314610bed5760405162461bcd60e51b815260040161060090611ceb565b6001600160a01b038116610c525760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610600565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610cd45760405162461bcd60e51b815260040161060090611ceb565b6017929092556019805492151563010000000263ff00000019921515610100029290921663ff00ff001990931692909217179055565b6001600160a01b038316610d605760405162461bcd60e51b815260206004820152601f60248201527f43616e277420617070726f76652066726f6d207a65726f2061646472657373006044820152606401610600565b6001600160a01b038216610db65760405162461bcd60e51b815260206004820152601d60248201527f43616e277420617070726f766520746f207a65726f20616464726573730000006044820152606401610600565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e6c5760405162461bcd60e51b815260206004820152601f60248201527f43616e74207472616e736665722066726f6d2061646472657373207a65726f006044820152606401610600565b6001600160a01b038216610ec25760405162461bcd60e51b815260206004820152601d60248201527f43616e74207472616e7366657220746f2061646472657373207a65726f0000006044820152606401610600565b5f8111610f115760405162461bcd60e51b815260206004820152601b60248201527f416d6f756e742073686f756c642062652061626f7665207a65726f00000000006044820152606401610600565b5f546001600160a01b03848116911614801590610f3b57505f546001600160a01b03838116911614155b156111ef57601554600160a01b900460ff16610fc4575f546001600160a01b03848116911614610fc45760405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460448201526d34b7339030b1ba34bb30ba34b7b760911b6064820152608401610600565b6016548111156110165760405162461bcd60e51b815260206004820152601e60248201527f4578636565646564206d6178207472616e73616374696f6e206c696d697400006044820152606401610600565b6001600160a01b0383165f9081526010602052604090205460ff1615801561105657506001600160a01b0382165f9081526010602052604090205460ff16155b6110a25760405162461bcd60e51b815260206004820181905260248201527f54686973206163636f756e74206973206f6e2074686520626c61636b6c6973746044820152606401610600565b6015546001600160a01b0383811691161461111b57601754816110c4846107bf565b6110ce9190611d48565b1061111b5760405162461bcd60e51b815260206004820152601a60248201527f45786365656473206d61782077616c6c65742062616c616e63650000000000006044820152606401610600565b5f611125306107bf565b60185460165491925082101590821061113e5760165491505b8080156111555750601554600160a81b900460ff16155b801561116f57506015546001600160a01b03868116911614155b80156111845750601554600160b01b900460ff165b80156111a857506001600160a01b0385165f9081526005602052604090205460ff16155b80156111cc57506001600160a01b0384165f9081526005602052604090205460ff16155b156111ec576111da826113e6565b4780156111ea576111ea4761132b565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061122f57506001600160a01b0383165f9081526005602052604090205460ff165b8061126157506015546001600160a01b0385811691161480159061126157506015546001600160a01b03848116911614155b1561126d57505f6112e7565b6015546001600160a01b03858116911614801561129857506014546001600160a01b03848116911614155b156112aa57600854600c55600954600d555b6015546001600160a01b0384811691161480156112d557506014546001600160a01b03858116911614155b156112e757600a54600c55600b54600d555b610bbe84848484611556565b5f81848411156113165760405162461bcd60e51b81526004016106009190611ae1565b505f6113228486611d5b565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610664573d5f803e3d5ffd5b5f6006548211156113ca5760405162461bcd60e51b815260206004820152602c60248201527f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60448201526b207265666c656374696f6e7360a01b6064820152608401610600565b5f6113d3611584565b90506113df83826115a5565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061142c5761142c611d20565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611483573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a79190611d6e565b816001815181106114ba576114ba611d20565b6001600160a01b0392831660209182029290920101526014546114e09130911684610d0a565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906115189085905f90869030904290600401611d89565b5f604051808303815f87803b15801561152f575f80fd5b505af1158015611541573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b80611563576115636115e6565b61156e848484611613565b80610bbe57610bbe600e54600c55600f54600d55565b5f805f61158f611704565b909250905061159e82826115a5565b9250505090565b5f6113df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611743565b600c541580156115f65750600d54155b156115fd57565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806116228761176f565b6001600160a01b038f165f90815260026020526040902054959b5093995091975095509350915061165390876117c4565b6001600160a01b03808b165f9081526002602052604080822093909355908a16815220546116819086611805565b6001600160a01b0389165f908152600260205260409020556116a281611863565b6116ac84836118a9565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116f191815260200190565b60405180910390a3505050505050505050565b6006545f90819067016345785d8a000061171e82826115a5565b82101561173a5750506006549267016345785d8a000092509050565b90939092509050565b5f81836117635760405162461bcd60e51b81526004016106009190611ae1565b505f6113228486611dfa565b5f805f805f805f805f6117878a600c54600d546118cd565b9250925092505f611796611584565b90505f805f6117a78e87878761191f565b919e509c509a509598509396509194505050505091939550919395565b5f6113df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112f3565b5f806118118385611d48565b9050838110156113df5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610600565b5f61186c611584565b90505f611879838361196b565b305f908152600260205260409020549091506118959082611805565b305f90815260026020526040902055505050565b6006546118b690836117c4565b6006556007546118c69082611805565b6007555050565b5f8080806118e660646118e0898961196b565b906115a5565b90505f6118f860646118e08a8961196b565b90505f61190f826119098b866117c4565b906117c4565b9992985090965090945050505050565b5f80808061192d888661196b565b90505f61193a888761196b565b90505f611947888861196b565b90505f6119588261190986866117c4565b939b939a50919850919650505050505050565b5f825f0361197a57505f610678565b5f6119858385611e19565b9050826119928583611dfa565b146113df5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610600565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b03811681146107bc575f80fd5b8035611a1c816119fd565b919050565b5f6020808385031215611a32575f80fd5b823567ffffffffffffffff80821115611a49575f80fd5b818501915085601f830112611a5c575f80fd5b813581811115611a6e57611a6e6119e9565b8060051b604051601f19603f83011681018181108582111715611a9357611a936119e9565b604052918252848201925083810185019188831115611ab0575f80fd5b938501935b82851015611ad557611ac685611a11565b84529385019392850192611ab5565b98975050505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611b27575f80fd5b8235611b32816119fd565b946020939093013593505050565b5f805f60608486031215611b52575f80fd5b8335611b5d816119fd565b92506020840135611b6d816119fd565b929592945050506040919091013590565b5f60208284031215611b8e575f80fd5b81356113df816119fd565b80358015158114611a1c575f80fd5b5f60208284031215611bb8575f80fd5b6113df82611b99565b5f60208284031215611bd1575f80fd5b5035919050565b5f805f8060808587031215611beb575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60608486031215611c19575f80fd5b83359250611c2960208501611b99565b9150611c3760408501611b99565b90509250925092565b5f805f60408486031215611c52575f80fd5b833567ffffffffffffffff80821115611c69575f80fd5b818601915086601f830112611c7c575f80fd5b813581811115611c8a575f80fd5b8760208260051b8501011115611c9e575f80fd5b602092830195509350611c379186019050611b99565b5f8060408385031215611cc5575f80fd5b8235611cd0816119fd565b91506020830135611ce0816119fd565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561067857610678611d34565b8181038181111561067857610678611d34565b5f60208284031215611d7e575f80fd5b81516113df816119fd565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611dd95784516001600160a01b031683529383019391830191600101611db4565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611e1457634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761067857610678611d3456fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a41355a76810e6dbaf076d3c6263cdc442400bbf979b9f9d410f16ad96510e364736f6c63430008190033

Deployed Bytecode

0x6080604052600436106101c7575f3560e01c80637f2feddc116100f2578063a9059cbb11610092578063c492f04611610062578063c492f04614610536578063dd62ed3e14610555578063f2fde38b14610599578063fc7d9469146105b8575f80fd5b8063a9059cbb146104b6578063bd6bba91146104d5578063bfd79284146104f4578063c3c8cd8014610522575f80fd5b80638f9a55c0116100cd5780638f9a55c01461043557806395d89b411461044a57806398a5c31514610478578063a2a957bb14610497575f80fd5b80637f2feddc146103cf5780638da5cb5b146103fa5780638f70ccf714610416575f80fd5b8063313ce567116101685780636fc3eaec116101385780636fc3eaec1461037357806370a0823114610387578063715018a6146103a65780637d1db4a5146103ba575f80fd5b8063313ce567146102fb57806349bd5a5e146103165780636b999053146103355780636d8aa8f814610354575f80fd5b80631694505e116101a35780631694505e1461026c57806318160ddd146102a357806323b872dd146102c75780632fd689e3146102e6575f80fd5b8062b8cf2a146101d257806306fdde03146101f3578063095ea7b31461023d575f80fd5b366101ce57005b5f80fd5b3480156101dd575f80fd5b506101f16101ec366004611a21565b6105d7565b005b3480156101fe575f80fd5b5060408051808201909152601081526f446576204e65656473204b69646e657960801b60208201525b6040516102349190611ae1565b60405180910390f35b348015610248575f80fd5b5061025c610257366004611b16565b610668565b6040519015158152602001610234565b348015610277575f80fd5b5060145461028b906001600160a01b031681565b6040516001600160a01b039091168152602001610234565b3480156102ae575f80fd5b5067016345785d8a00005b604051908152602001610234565b3480156102d2575f80fd5b5061025c6102e1366004611b40565b61067e565b3480156102f1575f80fd5b506102b960185481565b348015610306575f80fd5b5060405160098152602001610234565b348015610321575f80fd5b5060155461028b906001600160a01b031681565b348015610340575f80fd5b506101f161034f366004611b7e565b6106e5565b34801561035f575f80fd5b506101f161036e366004611ba8565b61072e565b34801561037e575f80fd5b506101f1610775565b348015610392575f80fd5b506102b96103a1366004611b7e565b6107bf565b3480156103b1575f80fd5b506101f16107e0565b3480156103c5575f80fd5b506102b960165481565b3480156103da575f80fd5b506102b96103e9366004611b7e565b60116020525f908152604090205481565b348015610405575f80fd5b505f546001600160a01b031661028b565b348015610421575f80fd5b506101f1610430366004611ba8565b610851565b348015610440575f80fd5b506102b960175481565b348015610455575f80fd5b506040805180820190915260068152654b49444e455960d01b6020820152610227565b348015610483575f80fd5b506101f1610492366004611bc1565b610898565b3480156104a2575f80fd5b506101f16104b1366004611bd8565b6108c6565b3480156104c1575f80fd5b5061025c6104d0366004611b16565b610a7b565b3480156104e0575f80fd5b506101f16104ef366004611c07565b610a87565b3480156104ff575f80fd5b5061025c61050e366004611b7e565b60106020525f908152604090205460ff1681565b34801561052d575f80fd5b506101f1610adf565b348015610541575f80fd5b506101f1610550366004611c40565b610b31565b348015610560575f80fd5b506102b961056f366004611cb4565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105a4575f80fd5b506101f16105b3366004611b7e565b610bc4565b3480156105c3575f80fd5b506101f16105d2366004611c07565b610cab565b5f546001600160a01b031633146106095760405162461bcd60e51b815260040161060090611ceb565b60405180910390fd5b5f5b815181101561066457600160105f84848151811061062b5761062b611d20565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161060b565b5050565b5f610674338484610d0a565b5060015b92915050565b5f61068a848484610e16565b6106db84336106d685604051806060016040528060258152602001611e31602591396001600160a01b038a165f90815260046020908152604080832033845290915290205491906112f3565b610d0a565b5060019392505050565b5f546001600160a01b0316331461070e5760405162461bcd60e51b815260040161060090611ceb565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146107575760405162461bcd60e51b815260040161060090611ceb565b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316336001600160a01b031614806107aa57506013546001600160a01b0316336001600160a01b0316145b6107b2575f80fd5b476107bc8161132b565b50565b6001600160a01b0381165f9081526002602052604081205461067890611362565b5f546001600160a01b031633146108095760405162461bcd60e51b815260040161060090611ceb565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461087a5760405162461bcd60e51b815260040161060090611ceb565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146108c15760405162461bcd60e51b815260040161060090611ceb565b601855565b5f546001600160a01b031633146108ef5760405162461bcd60e51b815260040161060090611ceb565b600484111561094e5760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420342560d81b6064820152608401610600565b605f8211156109aa5760405162461bcd60e51b815260206004820152602260248201527f42757920746178206d757374206265206265747765656e20302520616e642039604482015261352560f01b6064820152608401610600565b6004831115610a0a5760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420342560d01b6064820152608401610600565b605f811115610a675760405162461bcd60e51b815260206004820152602360248201527f53656c6c20746178206d757374206265206265747765656e20302520616e642060448201526239352560e81b6064820152608401610600565b600893909355600a91909155600955600b55565b5f610674338484610e16565b5f546001600160a01b03163314610ab05760405162461bcd60e51b815260040161060090611ceb565b60169290925560198054921515620100000262ff0000199215159290921662ff00ff1990931692909217179055565b6012546001600160a01b0316336001600160a01b03161480610b1457506013546001600160a01b0316336001600160a01b0316145b610b1c575f80fd5b5f610b26306107bf565b90506107bc816113e6565b5f546001600160a01b03163314610b5a5760405162461bcd60e51b815260040161060090611ceb565b5f5b82811015610bbe578160055f868685818110610b7a57610b7a611d20565b9050602002016020810190610b8f9190611b7e565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610b5c565b50505050565b5f546001600160a01b03163314610bed5760405162461bcd60e51b815260040161060090611ceb565b6001600160a01b038116610c525760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610600565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b03163314610cd45760405162461bcd60e51b815260040161060090611ceb565b6017929092556019805492151563010000000263ff00000019921515610100029290921663ff00ff001990931692909217179055565b6001600160a01b038316610d605760405162461bcd60e51b815260206004820152601f60248201527f43616e277420617070726f76652066726f6d207a65726f2061646472657373006044820152606401610600565b6001600160a01b038216610db65760405162461bcd60e51b815260206004820152601d60248201527f43616e277420617070726f766520746f207a65726f20616464726573730000006044820152606401610600565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e6c5760405162461bcd60e51b815260206004820152601f60248201527f43616e74207472616e736665722066726f6d2061646472657373207a65726f006044820152606401610600565b6001600160a01b038216610ec25760405162461bcd60e51b815260206004820152601d60248201527f43616e74207472616e7366657220746f2061646472657373207a65726f0000006044820152606401610600565b5f8111610f115760405162461bcd60e51b815260206004820152601b60248201527f416d6f756e742073686f756c642062652061626f7665207a65726f00000000006044820152606401610600565b5f546001600160a01b03848116911614801590610f3b57505f546001600160a01b03838116911614155b156111ef57601554600160a01b900460ff16610fc4575f546001600160a01b03848116911614610fc45760405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79206f776e65722063616e207472616465206265666f7265207472616460448201526d34b7339030b1ba34bb30ba34b7b760911b6064820152608401610600565b6016548111156110165760405162461bcd60e51b815260206004820152601e60248201527f4578636565646564206d6178207472616e73616374696f6e206c696d697400006044820152606401610600565b6001600160a01b0383165f9081526010602052604090205460ff1615801561105657506001600160a01b0382165f9081526010602052604090205460ff16155b6110a25760405162461bcd60e51b815260206004820181905260248201527f54686973206163636f756e74206973206f6e2074686520626c61636b6c6973746044820152606401610600565b6015546001600160a01b0383811691161461111b57601754816110c4846107bf565b6110ce9190611d48565b1061111b5760405162461bcd60e51b815260206004820152601a60248201527f45786365656473206d61782077616c6c65742062616c616e63650000000000006044820152606401610600565b5f611125306107bf565b60185460165491925082101590821061113e5760165491505b8080156111555750601554600160a81b900460ff16155b801561116f57506015546001600160a01b03868116911614155b80156111845750601554600160b01b900460ff165b80156111a857506001600160a01b0385165f9081526005602052604090205460ff16155b80156111cc57506001600160a01b0384165f9081526005602052604090205460ff16155b156111ec576111da826113e6565b4780156111ea576111ea4761132b565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061122f57506001600160a01b0383165f9081526005602052604090205460ff165b8061126157506015546001600160a01b0385811691161480159061126157506015546001600160a01b03848116911614155b1561126d57505f6112e7565b6015546001600160a01b03858116911614801561129857506014546001600160a01b03848116911614155b156112aa57600854600c55600954600d555b6015546001600160a01b0384811691161480156112d557506014546001600160a01b03858116911614155b156112e757600a54600c55600b54600d555b610bbe84848484611556565b5f81848411156113165760405162461bcd60e51b81526004016106009190611ae1565b505f6113228486611d5b565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610664573d5f803e3d5ffd5b5f6006548211156113ca5760405162461bcd60e51b815260206004820152602c60248201527f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60448201526b207265666c656374696f6e7360a01b6064820152608401610600565b5f6113d3611584565b90506113df83826115a5565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061142c5761142c611d20565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611483573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114a79190611d6e565b816001815181106114ba576114ba611d20565b6001600160a01b0392831660209182029290920101526014546114e09130911684610d0a565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906115189085905f90869030904290600401611d89565b5f604051808303815f87803b15801561152f575f80fd5b505af1158015611541573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b80611563576115636115e6565b61156e848484611613565b80610bbe57610bbe600e54600c55600f54600d55565b5f805f61158f611704565b909250905061159e82826115a5565b9250505090565b5f6113df83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611743565b600c541580156115f65750600d54155b156115fd57565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806116228761176f565b6001600160a01b038f165f90815260026020526040902054959b5093995091975095509350915061165390876117c4565b6001600160a01b03808b165f9081526002602052604080822093909355908a16815220546116819086611805565b6001600160a01b0389165f908152600260205260409020556116a281611863565b6116ac84836118a9565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516116f191815260200190565b60405180910390a3505050505050505050565b6006545f90819067016345785d8a000061171e82826115a5565b82101561173a5750506006549267016345785d8a000092509050565b90939092509050565b5f81836117635760405162461bcd60e51b81526004016106009190611ae1565b505f6113228486611dfa565b5f805f805f805f805f6117878a600c54600d546118cd565b9250925092505f611796611584565b90505f805f6117a78e87878761191f565b919e509c509a509598509396509194505050505091939550919395565b5f6113df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112f3565b5f806118118385611d48565b9050838110156113df5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610600565b5f61186c611584565b90505f611879838361196b565b305f908152600260205260409020549091506118959082611805565b305f90815260026020526040902055505050565b6006546118b690836117c4565b6006556007546118c69082611805565b6007555050565b5f8080806118e660646118e0898961196b565b906115a5565b90505f6118f860646118e08a8961196b565b90505f61190f826119098b866117c4565b906117c4565b9992985090965090945050505050565b5f80808061192d888661196b565b90505f61193a888761196b565b90505f611947888861196b565b90505f6119588261190986866117c4565b939b939a50919850919650505050505050565b5f825f0361197a57505f610678565b5f6119858385611e19565b9050826119928583611dfa565b146113df5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610600565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b03811681146107bc575f80fd5b8035611a1c816119fd565b919050565b5f6020808385031215611a32575f80fd5b823567ffffffffffffffff80821115611a49575f80fd5b818501915085601f830112611a5c575f80fd5b813581811115611a6e57611a6e6119e9565b8060051b604051601f19603f83011681018181108582111715611a9357611a936119e9565b604052918252848201925083810185019188831115611ab0575f80fd5b938501935b82851015611ad557611ac685611a11565b84529385019392850192611ab5565b98975050505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611b27575f80fd5b8235611b32816119fd565b946020939093013593505050565b5f805f60608486031215611b52575f80fd5b8335611b5d816119fd565b92506020840135611b6d816119fd565b929592945050506040919091013590565b5f60208284031215611b8e575f80fd5b81356113df816119fd565b80358015158114611a1c575f80fd5b5f60208284031215611bb8575f80fd5b6113df82611b99565b5f60208284031215611bd1575f80fd5b5035919050565b5f805f8060808587031215611beb575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f60608486031215611c19575f80fd5b83359250611c2960208501611b99565b9150611c3760408501611b99565b90509250925092565b5f805f60408486031215611c52575f80fd5b833567ffffffffffffffff80821115611c69575f80fd5b818601915086601f830112611c7c575f80fd5b813581811115611c8a575f80fd5b8760208260051b8501011115611c9e575f80fd5b602092830195509350611c379186019050611b99565b5f8060408385031215611cc5575f80fd5b8235611cd0816119fd565b91506020830135611ce0816119fd565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561067857610678611d34565b8181038181111561067857610678611d34565b5f60208284031215611d7e575f80fd5b81516113df816119fd565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611dd95784516001600160a01b031683529383019391830191600101611db4565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611e1457634e487b7160e01b5f52601260045260245ffd5b500490565b808202811582820484141761067857610678611d3456fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a41355a76810e6dbaf076d3c6263cdc442400bbf979b9f9d410f16ad96510e364736f6c63430008190033

Deployed Bytecode Sourcemap

4363:14277:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13179:169;;;;;;;;;;-1:-1:-1;13179:169:0;;;;;:::i;:::-;;:::i;:::-;;7035:83;;;;;;;;;;-1:-1:-1;7105:5:0;;;;;;;;;;;;-1:-1:-1;;;7105:5:0;;;;7035:83;;;;;;;:::i;:::-;;;;;;;;7967:193;;;;;;;;;;-1:-1:-1;7967:193:0;;;;;:::i;:::-;;:::i;:::-;;;2455:14:1;;2448:22;2430:41;;2418:2;2403:18;7967:193:0;2290:187:1;5726:41:0;;;;;;;;;;-1:-1:-1;5726:41:0;;;;-1:-1:-1;;;;;5726:41:0;;;;;;-1:-1:-1;;;;;2672:32:1;;;2654:51;;2642:2;2627:18;5726:41:0;2482:229:1;7315:95:0;;;;;;;;;;-1:-1:-1;4921:17:0;7315:95;;;2862:25:1;;;2850:2;2835:18;7315:95:0;2716:177:1;8169:443:0;;;;;;;;;;-1:-1:-1;8169:443:0;;;;;:::i;:::-;;:::i;6026:49::-;;;;;;;;;;;;;;;;7223:83;;;;;;;;;;-1:-1:-1;7223:83:0;;4594:1;3501:36:1;;3489:2;3474:18;7223:83:0;3359:184:1;5774:28:0;;;;;;;;;;-1:-1:-1;5774:28:0;;;;-1:-1:-1;;;;;5774:28:0;;;13357:92;;;;;;;;;;-1:-1:-1;13357:92:0;;;;;:::i;:::-;;:::i;17804:101::-;;;;;;;;;;-1:-1:-1;17804:101:0;;;;;:::i;:::-;;:::i;12935:235::-;;;;;;;;;;;;;:::i;7419:138::-;;;;;;;;;;-1:-1:-1;7419:138:0;;;;;:::i;:::-;;:::i;1836:148::-;;;;;;;;;;;;;:::i;5918:45::-;;;;;;;;;;;;;;;;5465:43;;;;;;;;;;-1:-1:-1;5465:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1620:79;;;;;;;;;;-1:-1:-1;1658:7:0;1685:6;-1:-1:-1;;;;;1685:6:0;1620:79;;12580:101;;;;;;;;;;-1:-1:-1;12580:101:0;;;;;:::i;:::-;;:::i;5971:47::-;;;;;;;;;;;;;;;;7127:87;;;;;;;;;;-1:-1:-1;7199:7:0;;;;;;;;;;;;-1:-1:-1;;;7199:7:0;;;;7127:87;;17612:139;;;;;;;;;;-1:-1:-1;17612:139:0;;;;;:::i;:::-;;:::i;16866:693::-;;;;;;;;;;-1:-1:-1;16866:693:0;;;;;:::i;:::-;;:::i;7566:199::-;;;;;;;;;;-1:-1:-1;7566:199:0;;;;;:::i;:::-;;:::i;17945:216::-;;;;;;;;;;-1:-1:-1;17945:216:0;;;;;:::i;:::-;;:::i;5427:36::-;;;;;;;;;;-1:-1:-1;5427:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12690:236;;;;;;;;;;;;;:::i;18401:234::-;;;;;;;;;;-1:-1:-1;18401:234:0;;;;;:::i;:::-;;:::i;7774:184::-;;;;;;;;;;-1:-1:-1;7774:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7923:18:0;;;7891:7;7923:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7774:184;1993:244;;;;;;;;;;-1:-1:-1;1993:244:0;;;;;:::i;:::-;;:::i;18170:222::-;;;;;;;;;;-1:-1:-1;18170:222:0;;;;;:::i;:::-;;:::i;13179:169::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;;;;;;;;;13255:9:::1;13250:91;13274:5;:12;13270:1;:16;13250:91;;;13325:4;13308;:14;13313:5;13319:1;13313:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13308:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13308:14:0;:21;;-1:-1:-1;;13308:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13288:3:0::1;13250:91;;;;13179:169:::0;:::o;7967:193::-;8069:4;8091:39;449:10;8114:7;8123:6;8091:8;:39::i;:::-;-1:-1:-1;8148:4:0;7967:193;;;;;:::o;8169:443::-;8301:4;8318:36;8328:6;8336:9;8347:6;8318:9;:36::i;:::-;8365:217;8388:6;449:10;8436:135;8492:6;8436:135;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8436:19:0;;;;;;:11;:19;;;;;;;;449:10;8436:33;;;;;;;;;;:37;:135::i;:::-;8365:8;:217::i;:::-;-1:-1:-1;8600:4:0;8169:443;;;;;:::o;13357:92::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13421:12:0::1;13436:5;13421:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13421:20:0::1;::::0;;13357:92::o;17804:101::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;17871:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17871:26:0::1;-1:-1:-1::0;;;;17871:26:0;;::::1;::::0;;;::::1;::::0;;17804:101::o;12935:235::-;13001:19;;-1:-1:-1;;;;;13001:19:0;449:10;-1:-1:-1;;;;;12985:35:0;;:72;;;-1:-1:-1;13040:17:0;;-1:-1:-1;;;;;13040:17:0;449:10;-1:-1:-1;;;;;13024:33:0;;12985:72;12977:81;;;;;;13098:21;13130:32;13098:21;13130:12;:32::i;:::-;12966:204;12935:235::o;7419:138::-;-1:-1:-1;;;;;7532:16:0;;7485:7;7532:16;;;:7;:16;;;;;;7512:37;;:19;:37::i;1836:148::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;1943:1:::1;1927:6:::0;;1906:40:::1;::::0;-1:-1:-1;;;;;1927:6:0;;::::1;::::0;1906:40:::1;::::0;1943:1;;1906:40:::1;1974:1;1957:19:::0;;-1:-1:-1;;;;;;1957:19:0::1;::::0;;1836:148::o;12580:101::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;12647:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12647:26:0::1;-1:-1:-1::0;;;;12647:26:0;;::::1;::::0;;;::::1;::::0;;12580:101::o;17612:139::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;17703:19:::1;:40:::0;17612:139::o;16866:693::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;17047:1:::1;17030:13;:18;;17000:90;;;::::0;-1:-1:-1;;;17000:90:0;;7036:2:1;17000:90:0::1;::::0;::::1;7018:21:1::0;7075:2;7055:18;;;7048:30;7114:34;7094:18;;;7087:62;-1:-1:-1;;;7165:18:1;;;7158:35;7210:19;;17000:90:0::1;6834:401:1::0;17000:90:0::1;17144:2;17129:11;:17;;17101:84;;;::::0;-1:-1:-1;;;17101:84:0;;7442:2:1;17101:84:0::1;::::0;::::1;7424:21:1::0;7481:2;7461:18;;;7454:30;7520:34;7500:18;;;7493:62;-1:-1:-1;;;7571:18:1;;;7564:32;7613:19;;17101:84:0::1;7240:398:1::0;17101:84:0::1;17245:1;17227:14;:19;;17196:93;;;::::0;-1:-1:-1;;;17196:93:0;;7845:2:1;17196:93:0::1;::::0;::::1;7827:21:1::0;7884:2;7864:18;;;7857:30;7923:34;7903:18;;;7896:62;-1:-1:-1;;;7974:18:1;;;7967:36;8020:19;;17196:93:0::1;7643:402:1::0;17196:93:0::1;17345:2;17329:12;:18;;17300:87;;;::::0;-1:-1:-1;;;17300:87:0;;8252:2:1;17300:87:0::1;::::0;::::1;8234:21:1::0;8291:2;8271:18;;;8264:30;8330:34;8310:18;;;8303:62;-1:-1:-1;;;8381:18:1;;;8374:33;8424:19;;17300:87:0::1;8050:399:1::0;17300:87:0::1;17400:14;:30:::0;;;;17441:15:::1;:32:::0;;;;17484:12:::1;:26:::0;17521:13:::1;:28:::0;16866:693::o;7566:199::-;7671:4;7693:42;449:10;7717:9;7728:6;7693:9;:42::i;17945:216::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;18051:12:::1;:26:::0;;;;18091:7:::1;:16:::0;;18121:22;::::1;;::::0;::::1;-1:-1:-1::0;;18091:16:0;::::1;;18121:22:::0;;;;-1:-1:-1;;18121:22:0;;;;;;;::::1;::::0;;17945:216::o;12690:236::-;12756:19;;-1:-1:-1;;;;;12756:19:0;449:10;-1:-1:-1;;;;;12740:35:0;;:72;;;-1:-1:-1;12795:17:0;;-1:-1:-1;;;;;12795:17:0;449:10;-1:-1:-1;;;;;12779:33:0;;12740:72;12732:81;;;;;;12824:23;12850:24;12868:4;12850:9;:24::i;:::-;12824:50;;12885:33;12902:15;12885:16;:33::i;18401:234::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;18518:9:::1;18514:114;18533:19:::0;;::::1;18514:114;;;18608:8;18574:18;:31;18593:8;;18602:1;18593:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18574:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18574:31:0;:42;;-1:-1:-1;;18574:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;18554:3:0::1;18514:114;;;;18401:234:::0;;;:::o;1993:244::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2082:22:0;::::1;2074:73;;;::::0;-1:-1:-1;;;2074:73:0;;8656:2:1;2074:73:0::1;::::0;::::1;8638:21:1::0;8695:2;8675:18;;;8668:30;8734:34;8714:18;;;8707:62;-1:-1:-1;;;8785:18:1;;;8778:36;8831:19;;2074:73:0::1;8454:402:1::0;2074:73:0::1;2184:6;::::0;;2163:38:::1;::::0;-1:-1:-1;;;;;2163:38:0;;::::1;::::0;2184:6;::::1;::::0;2163:38:::1;::::0;::::1;2212:6;:17:::0;;-1:-1:-1;;;;;;2212:17:0::1;-1:-1:-1::0;;;;;2212:17:0;;;::::1;::::0;;;::::1;::::0;;1993:244::o;18170:222::-;1748:6;;-1:-1:-1;;;;;1748:6:0;449:10;1748:22;1740:67;;;;-1:-1:-1;;;1740:67:0;;;;;;;:::i;:::-;18282:14:::1;:30:::0;;;;18323:10:::1;:22:::0;;18356:28;::::1;;::::0;::::1;-1:-1:-1::0;;18323:22:0;::::1;;;;18356:28:::0;;;;-1:-1:-1;;18356:28:0;;;;;;;::::1;::::0;;18170:222::o;9311:361::-;-1:-1:-1;;;;;9438:19:0;;9430:63;;;;-1:-1:-1;;;9430:63:0;;9063:2:1;9430:63:0;;;9045:21:1;9102:2;9082:18;;;9075:30;9141:33;9121:18;;;9114:61;9192:18;;9430:63:0;8861:355:1;9430:63:0;-1:-1:-1;;;;;9512:21:0;;9504:63;;;;-1:-1:-1;;;9504:63:0;;9423:2:1;9504:63:0;;;9405:21:1;9462:2;9442:18;;;9435:30;9501:31;9481:18;;;9474:59;9550:18;;9504:63:0;9221:353:1;9504:63:0;-1:-1:-1;;;;;9580:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9632:32;;2862:25:1;;;9632:32:0;;2835:18:1;9632:32:0;;;;;;;9311:361;;;:::o;9681:2290::-;-1:-1:-1;;;;;9803:18:0;;9795:62;;;;-1:-1:-1;;;9795:62:0;;9781:2:1;9795:62:0;;;9763:21:1;9820:2;9800:18;;;9793:30;9859:33;9839:18;;;9832:61;9910:18;;9795:62:0;9579:355:1;9795:62:0;-1:-1:-1;;;;;9876:16:0;;9868:58;;;;-1:-1:-1;;;9868:58:0;;10141:2:1;9868:58:0;;;10123:21:1;10180:2;10160:18;;;10153:30;10219:31;10199:18;;;10192:59;10268:18;;9868:58:0;9939:353:1;9868:58:0;9954:1;9945:6;:10;9937:50;;;;-1:-1:-1;;;9937:50:0;;10499:2:1;9937:50:0;;;10481:21:1;10538:2;10518:18;;;10511:30;10577:29;10557:18;;;10550:57;10624:18;;9937:50:0;10297:351:1;9937:50:0;1658:7;1685:6;-1:-1:-1;;;;;10005:15:0;;;1685:6;;10005:15;;;;:32;;-1:-1:-1;1658:7:0;1685:6;-1:-1:-1;;;;;10024:13:0;;;1685:6;;10024:13;;10005:32;10001:1238;;;10095:11;;-1:-1:-1;;;10095:11:0;;;;10090:127;;1658:7;1685:6;-1:-1:-1;;;;;10135:15:0;;;1685:6;;10135:15;10127:74;;;;-1:-1:-1;;;10127:74:0;;10855:2:1;10127:74:0;;;10837:21:1;10894:2;10874:18;;;10867:30;10933:34;10913:18;;;10906:62;-1:-1:-1;;;10984:18:1;;;10977:44;11038:19;;10127:74:0;10653:410:1;10127:74:0;10252:12;;10242:6;:22;;10234:65;;;;-1:-1:-1;;;10234:65:0;;11270:2:1;10234:65:0;;;11252:21:1;11309:2;11289:18;;;11282:30;11348:32;11328:18;;;11321:60;11398:18;;10234:65:0;11068:354:1;10234:65:0;-1:-1:-1;;;;;10323:10:0;;;;;;:4;:10;;;;;;;;10322:11;:24;;;;-1:-1:-1;;;;;;10338:8:0;;;;;;:4;:8;;;;;;;;10337:9;10322:24;10314:69;;;;-1:-1:-1;;;10314:69:0;;11629:2:1;10314:69:0;;;11611:21:1;;;11648:18;;;11641:30;11707:34;11687:18;;;11680:62;11759:18;;10314:69:0;11427:356:1;10314:69:0;10410:13;;-1:-1:-1;;;;;10404:19:0;;;10410:13;;10404:19;10401:137;;10477:14;;10468:6;10452:13;10462:2;10452:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10444:78;;;;-1:-1:-1;;;10444:78:0;;12252:2:1;10444:78:0;;;12234:21:1;12291:2;12271:18;;;12264:30;12330:28;12310:18;;;12303:56;12376:18;;10444:78:0;12050:350:1;10444:78:0;10555:28;10586:24;10604:4;10586:9;:24::i;:::-;10664:19;;10728:12;;10555:55;;-1:-1:-1;10640:43:0;;;;10704:36;;10701:124;;10797:12;;10774:35;;10701:124;10846:7;:18;;;;-1:-1:-1;10858:6:0;;-1:-1:-1;;;10858:6:0;;;;10857:7;10846:18;:43;;;;-1:-1:-1;10876:13:0;;-1:-1:-1;;;;;10868:21:0;;;10876:13;;10868:21;;10846:43;:58;;;;-1:-1:-1;10893:11:0;;-1:-1:-1;;;10893:11:0;;;;10846:58;:87;;;;-1:-1:-1;;;;;;10909:24:0;;;;;;:18;:24;;;;;;;;10908:25;10846:87;:114;;;;-1:-1:-1;;;;;;10938:22:0;;;;;;:18;:22;;;;;;;;10937:23;10846:114;10842:386;;;10981:38;10998:20;10981:16;:38::i;:::-;11067:21;11111:22;;11107:106;;11158:35;11171:21;11158:12;:35::i;:::-;10962:266;10842:386;10039:1200;;10001:1238;-1:-1:-1;;;;;11317:24:0;;11252:12;11317:24;;;:18;:24;;;;;;11267:4;;11317:24;;;:50;;-1:-1:-1;;;;;;11345:22:0;;;;;;:18;:22;;;;;;;;11317:50;11316:102;;;-1:-1:-1;11381:13:0;;-1:-1:-1;;;;;11373:21:0;;;11381:13;;11373:21;;;;:44;;-1:-1:-1;11404:13:0;;-1:-1:-1;;;;;11398:19:0;;;11404:13;;11398:19;;11373:44;11312:597;;;-1:-1:-1;11445:5:0;11312:597;;;11529:13;;-1:-1:-1;;;;;11521:21:0;;;11529:13;;11521:21;:55;;;;-1:-1:-1;11560:15:0;;-1:-1:-1;;;;;11546:30:0;;;11560:15;;11546:30;;11521:55;11518:162;;;11609:14;;11597:9;:26;11652:12;;11642:7;:22;11518:162;11740:13;;-1:-1:-1;;;;;11734:19:0;;;11740:13;;11734:19;:55;;;;-1:-1:-1;11773:15:0;;-1:-1:-1;;;;;11757:32:0;;;11773:15;;11757:32;;11734:55;11730:165;;;11822:15;;11810:9;:27;11866:13;;11856:7;:23;11730:165;11922:41;11937:4;11943:2;11947:6;11955:7;11922:14;:41::i;2605:224::-;2725:7;2761:12;2753:6;;;;2745:29;;;;-1:-1:-1;;;2745:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2785:9:0;2797:5;2801:1;2797;:5;:::i;:::-;2785:17;2605:224;-1:-1:-1;;;;;2605:224:0:o;12472:99::-;12529:17;;:34;;-1:-1:-1;;;;;12529:17:0;;;;:34;;;;;12556:6;;12529:17;:34;:17;:34;12556:6;12529:17;:34;;;;;;;;;;;;;;;;;;;8621:325;8716:7;8774;;8763;:18;;8741:112;;;;-1:-1:-1;;;8741:112:0;;12740:2:1;8741:112:0;;;12722:21:1;12779:2;12759:18;;;12752:30;12818:34;12798:18;;;12791:62;-1:-1:-1;;;12869:18:1;;;12862:42;12921:19;;8741:112:0;12538:408:1;8741:112:0;8864:19;8886:10;:8;:10::i;:::-;8864:32;-1:-1:-1;8914:24:0;:7;8864:32;8914:11;:24::i;:::-;8907:31;8621:325;-1:-1:-1;;;8621:325:0:o;11980:483::-;6323:6;:13;;-1:-1:-1;;;;6323:13:0;-1:-1:-1;;;6323:13:0;;;12082:16:::1;::::0;;12096:1:::1;12082:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12082:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12082:16:0::1;12058:40;;12127:4;12109;12114:1;12109:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12109:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12153:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12153:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12109:7;;12153:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12143:4;12148:1;12143:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12143:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12218:15:::1;::::0;12186:62:::1;::::0;12203:4:::1;::::0;12218:15:::1;12236:11:::0;12186:8:::1;:62::i;:::-;12259:15;::::0;:196:::1;::::0;-1:-1:-1;;;12259:196:0;;-1:-1:-1;;;;;12259:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12340:11;;12259:15:::1;::::0;12382:4;;12409::::1;::::0;12429:15:::1;::::0;12259:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6359:6:0;:14;;-1:-1:-1;;;;6359:14:0;;;-1:-1:-1;;;;11980:483:0:o;13458:282::-;13614:7;13609:28;;13623:14;:12;:14::i;:::-;13648:44;13666:6;13674:9;13685:6;13648:17;:44::i;:::-;13708:7;13703:29;;13717:15;9241:17;;9229:9;:29;9279:15;;9269:7;:25;9185:117;16427:164;16469:7;16490:15;16507;16526:19;:17;:19::i;:::-;16489:56;;-1:-1:-1;16489:56:0;-1:-1:-1;16563:20:0;16489:56;;16563:11;:20::i;:::-;16556:27;;;;16427:164;:::o;3093:132::-;3151:7;3178:39;3182:1;3185;3178:39;;;;;;;;;;;;;;;;;:3;:39::i;8955:221::-;9002:9;;:14;:30;;;;-1:-1:-1;9020:7:0;;:12;9002:30;8998:43;;;8955:221::o;8998:43::-;9074:9;;;9054:17;:29;9112:7;;;9094:15;:25;-1:-1:-1;9133:13:0;;;;9157:11;8955:221::o;13749:610::-;13896:15;13926:23;13964:12;13991:23;14029:12;14056:13;14083:19;14094:7;14083:10;:19::i;:::-;-1:-1:-1;;;;;14131:15:0;;;;;;:7;:15;;;;;;13881:221;;-1:-1:-1;13881:221:0;;-1:-1:-1;13881:221:0;;-1:-1:-1;13881:221:0;-1:-1:-1;13881:221:0;-1:-1:-1;13881:221:0;-1:-1:-1;14131:28:0;;13881:221;14131:19;:28::i;:::-;-1:-1:-1;;;;;14113:15:0;;;;;;;:7;:15;;;;;;:46;;;;14191:18;;;;;;;:39;;14214:15;14191:22;:39::i;:::-;-1:-1:-1;;;;;14170:18:0;;;;;;:7;:18;;;;;:60;14241:16;14251:5;14241:9;:16::i;:::-;14268:23;14280:4;14286;14268:11;:23::i;:::-;14324:9;-1:-1:-1;;;;;14307:44:0;14316:6;-1:-1:-1;;;;;14307:44:0;;14335:15;14307:44;;;;2862:25:1;;2850:2;2835:18;;2716:177;14307:44:0;;;;;;;;13870:489;;;;;;13749:610;;;:::o;16600:257::-;16698:7;;16651;;;;4921:17;16766:20;16698:7;4921:17;16766:11;:20::i;:::-;16756:7;:30;16752:61;;;-1:-1:-1;;16796:7:0;;;4921:17;;-1:-1:-1;16600:257:0;-1:-1:-1;16600:257:0:o;16752:61::-;16832:7;;16841;;-1:-1:-1;16600:257:0;-1:-1:-1;16600:257:0:o;3234:223::-;3354:7;3389:12;3382:5;3374:28;;;;-1:-1:-1;;;3374:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3413:9:0;3425:5;3429:1;3425;:5;:::i;14782:615::-;14882:7;14904;14926;14948;14970;14992;15028:23;15053:12;15067:13;15097:40;15109:7;15118:9;;15129:7;;15097:11;:40::i;:::-;15027:110;;;;;;15148:19;15170:10;:8;:10::i;:::-;15148:32;;15192:15;15209:23;15234:12;15263:46;15275:7;15284:4;15290:5;15297:11;15263;:46::i;:::-;15191:118;;-1:-1:-1;15191:118:0;-1:-1:-1;15191:118:0;-1:-1:-1;15360:15:0;;-1:-1:-1;15377:4:0;;-1:-1:-1;15383:5:0;;-1:-1:-1;;;;;14782:615:0;;;;;;;:::o;2460:136::-;2518:7;2545:43;2549:1;2552;2545:43;;;;;;;;;;;;;;;;;:3;:43::i;2272:179::-;2330:7;;2362:5;2366:1;2362;:5;:::i;:::-;2350:17;;2391:1;2386;:6;;2378:46;;;;-1:-1:-1;;;2378:46:0;;14616:2:1;2378:46:0;;;14598:21:1;14655:2;14635:18;;;14628:30;14694:29;14674:18;;;14667:57;14741:18;;2378:46:0;14414:351:1;14368:211:0;14421:19;14443:10;:8;:10::i;:::-;14421:32;-1:-1:-1;14464:13:0;14480:22;:5;14421:32;14480:9;:22::i;:::-;14554:4;14538:22;;;;:7;:22;;;;;;14464:38;;-1:-1:-1;14538:33:0;;14464:38;14538:26;:33::i;:::-;14529:4;14513:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14368:211:0:o;14588:147::-;14666:7;;:17;;14678:4;14666:11;:17::i;:::-;14656:7;:27;14707:10;;:20;;14722:4;14707:14;:20::i;:::-;14694:10;:33;-1:-1:-1;;14588:147:0:o;15406:469::-;15575:7;;;;15669:30;15695:3;15669:21;:7;15681:8;15669:11;:21::i;:::-;:25;;:30::i;:::-;15654:45;-1:-1:-1;15710:13:0;15726:28;15750:3;15726:19;:7;15738:6;15726:11;:19::i;:28::-;15710:44;-1:-1:-1;15765:23:0;15791:28;15710:44;15791:17;:7;15803:4;15791:11;:17::i;:::-;:21;;:28::i;:::-;15765:54;15855:4;;-1:-1:-1;15861:5:0;;-1:-1:-1;15406:469:0;;-1:-1:-1;;;;;15406:469:0:o;15884:534::-;16078:7;;;;16175:24;:7;16187:11;16175;:24::i;:::-;16157:42;-1:-1:-1;16210:12:0;16225:21;:4;16234:11;16225:8;:21::i;:::-;16210:36;-1:-1:-1;16257:13:0;16273:22;:5;16283:11;16273:9;:22::i;:::-;16257:38;-1:-1:-1;16306:23:0;16332:28;16257:38;16332:17;:7;16344:4;16332:11;:17::i;:28::-;16379:7;;;;-1:-1:-1;16405:4:0;;-1:-1:-1;15884:534:0;;-1:-1:-1;;;;;;;15884:534:0:o;2838:246::-;2896:7;2920:1;2925;2920:6;2916:47;;-1:-1:-1;2950:1:0;2943:8;;2916:47;2973:9;2985:5;2989:1;2985;:5;:::i;:::-;2973:17;-1:-1:-1;3018:1:0;3009:5;3013:1;2973:17;3009:5;:::i;:::-;:10;3001:56;;;;-1:-1:-1;;;3001:56:0;;15145:2:1;3001:56:0;;;15127:21:1;15184:2;15164:18;;;15157:30;15223:34;15203:18;;;15196:62;-1:-1:-1;;;15274:18:1;;;15267:31;15315:19;;3001:56:0;14943:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:418::-;1696:2;1685:9;1678:21;1659:4;1728:6;1722:13;1771:6;1766:2;1755:9;1751:18;1744:34;1830:6;1825:2;1817:6;1813:15;1808:2;1797:9;1793:18;1787:50;1886:1;1881:2;1872:6;1861:9;1857:22;1853:31;1846:42;1956:2;1949;1945:7;1940:2;1932:6;1928:15;1924:29;1913:9;1909:45;1905:54;1897:62;;;1547:418;;;;:::o;1970:315::-;2038:6;2046;2099:2;2087:9;2078:7;2074:23;2070:32;2067:52;;;2115:1;2112;2105:12;2067:52;2154:9;2141:23;2173:31;2198:5;2173:31;:::i;:::-;2223:5;2275:2;2260:18;;;;2247:32;;-1:-1:-1;;;1970:315:1:o;2898:456::-;2975:6;2983;2991;3044:2;3032:9;3023:7;3019:23;3015:32;3012:52;;;3060:1;3057;3050:12;3012:52;3099:9;3086:23;3118:31;3143:5;3118:31;:::i;:::-;3168:5;-1:-1:-1;3225:2:1;3210:18;;3197:32;3238:33;3197:32;3238:33;:::i;:::-;2898:456;;3290:7;;-1:-1:-1;;;3344:2:1;3329:18;;;;3316:32;;2898:456::o;3756:247::-;3815:6;3868:2;3856:9;3847:7;3843:23;3839:32;3836:52;;;3884:1;3881;3874:12;3836:52;3923:9;3910:23;3942:31;3967:5;3942:31;:::i;4008:160::-;4073:20;;4129:13;;4122:21;4112:32;;4102:60;;4158:1;4155;4148:12;4173:180;4229:6;4282:2;4270:9;4261:7;4257:23;4253:32;4250:52;;;4298:1;4295;4288:12;4250:52;4321:26;4337:9;4321:26;:::i;4358:180::-;4417:6;4470:2;4458:9;4449:7;4445:23;4441:32;4438:52;;;4486:1;4483;4476:12;4438:52;-1:-1:-1;4509:23:1;;4358:180;-1:-1:-1;4358:180:1:o;4543:385::-;4629:6;4637;4645;4653;4706:3;4694:9;4685:7;4681:23;4677:33;4674:53;;;4723:1;4720;4713:12;4674:53;-1:-1:-1;;4746:23:1;;;4816:2;4801:18;;4788:32;;-1:-1:-1;4867:2:1;4852:18;;4839:32;;4918:2;4903:18;4890:32;;-1:-1:-1;4543:385:1;-1:-1:-1;4543:385:1:o;4933:316::-;5004:6;5012;5020;5073:2;5061:9;5052:7;5048:23;5044:32;5041:52;;;5089:1;5086;5079:12;5041:52;5125:9;5112:23;5102:33;;5154:35;5185:2;5174:9;5170:18;5154:35;:::i;:::-;5144:45;;5208:35;5239:2;5228:9;5224:18;5208:35;:::i;:::-;5198:45;;4933:316;;;;;:::o;5254:689::-;5346:6;5354;5362;5415:2;5403:9;5394:7;5390:23;5386:32;5383:52;;;5431:1;5428;5421:12;5383:52;5471:9;5458:23;5500:18;5541:2;5533:6;5530:14;5527:34;;;5557:1;5554;5547:12;5527:34;5595:6;5584:9;5580:22;5570:32;;5640:7;5633:4;5629:2;5625:13;5621:27;5611:55;;5662:1;5659;5652:12;5611:55;5702:2;5689:16;5728:2;5720:6;5717:14;5714:34;;;5744:1;5741;5734:12;5714:34;5799:7;5792:4;5782:6;5779:1;5775:14;5771:2;5767:23;5763:34;5760:47;5757:67;;;5820:1;5817;5810:12;5757:67;5851:4;5843:13;;;;-1:-1:-1;5875:6:1;-1:-1:-1;5900:37:1;;5916:20;;;-1:-1:-1;5900:37:1;:::i;5948:388::-;6016:6;6024;6077:2;6065:9;6056:7;6052:23;6048:32;6045:52;;;6093:1;6090;6083:12;6045:52;6132:9;6119:23;6151:31;6176:5;6151:31;:::i;:::-;6201:5;-1:-1:-1;6258:2:1;6243:18;;6230:32;6271:33;6230:32;6271:33;:::i;:::-;6323:7;6313:17;;;5948:388;;;;;:::o;6341:356::-;6543:2;6525:21;;;6562:18;;;6555:30;6621:34;6616:2;6601:18;;6594:62;6688:2;6673:18;;6341:356::o;6702:127::-;6763:10;6758:3;6754:20;6751:1;6744:31;6794:4;6791:1;6784:15;6818:4;6815:1;6808:15;11788:127;11849:10;11844:3;11840:20;11837:1;11830:31;11880:4;11877:1;11870:15;11904:4;11901:1;11894:15;11920:125;11985:9;;;12006:10;;;12003:36;;;12019:18;;:::i;12405:128::-;12472:9;;;12493:11;;;12490:37;;;12507:18;;:::i;12951:251::-;13021:6;13074:2;13062:9;13053:7;13049:23;13045:32;13042:52;;;13090:1;13087;13080:12;13042:52;13122:9;13116:16;13141:31;13166:5;13141:31;:::i;13207:980::-;13469:4;13517:3;13506:9;13502:19;13548:6;13537:9;13530:25;13574:2;13612:6;13607:2;13596:9;13592:18;13585:34;13655:3;13650:2;13639:9;13635:18;13628:31;13679:6;13714;13708:13;13745:6;13737;13730:22;13783:3;13772:9;13768:19;13761:26;;13822:2;13814:6;13810:15;13796:29;;13843:1;13853:195;13867:6;13864:1;13861:13;13853:195;;;13932:13;;-1:-1:-1;;;;;13928:39:1;13916:52;;14023:15;;;;13988:12;;;;13964:1;13882:9;13853:195;;;-1:-1:-1;;;;;;;14104:32:1;;;;14099:2;14084:18;;14077:60;-1:-1:-1;;;14168:3:1;14153:19;14146:35;14065:3;13207:980;-1:-1:-1;;;13207:980:1:o;14192:217::-;14232:1;14258;14248:132;;14302:10;14297:3;14293:20;14290:1;14283:31;14337:4;14334:1;14327:15;14365:4;14362:1;14355:15;14248:132;-1:-1:-1;14394:9:1;;14192:217::o;14770:168::-;14843:9;;;14874;;14891:15;;;14885:22;;14871:37;14861:71;;14912:18;;:::i

Swarm Source

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