ETH Price: $3,511.02 (-0.07%)
Gas: 2 Gwei

Token

AI HUNTER (AH)
 

Overview

Max Total Supply

500,000,000,000 AH

Holders

116

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,096,660,427.301664227 AH

Value
$0.00
0x26663DF4bdB9983466FC83cDF527c973F92428e7
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:
AIHunter

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 *Submitted for verification at Etherscan.io on 2023-03-31
*/

/// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.15;

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

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

contract AIHunter is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "AI HUNTER";
    string private constant _symbol = "AH";
    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;
    mapping(address => bool) private _isExcludedFromTxLimit;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 500000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 1;
    uint256 private _taxFeeOnBuy = 3;
    uint256 private _redisFeeOnSell = 1;
    uint256 private _taxFeeOnSell = 3;
    uint256 private _burnFeeFromTax = 20;
    uint256 private _maxSwapPercent = 90;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    address payable public _developmentAddress = payable(address(0x4C942AF1e288919CE307bA5a3253a78d82a6cCdD));
    address payable public _marketingAddress = payable(address(0xf16Ab42c5F733069A09e0D7ED7Da31Cd3cc430B8));

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
    mapping (address => uint256) public buyOrigin;
    address public currentSwap;

    uint256 public _maxTxAmount = 10000000000 * 10**9;
    uint256 public _maxWalletSize = 10000000000 * 10**9;
    uint256 public _swapTokensAtAmount = 5000000000 * 10**9;
 
    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;
        _isExcludedFromFee[address(_uniswapV2Router)] = true;
        _isExcludedFromTxLimit[owner()] = true;
        _isExcludedFromTxLimit[address(this)] = true;
        _isExcludedFromTxLimit[_developmentAddress] = true;
        _isExcludedFromTxLimit[_marketingAddress] = true;
        _isExcludedFromTxLimit[address(_uniswapV2Router)] = 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,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    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 _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address 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 (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(_isExcludedFromTxLimit[from] || _isExcludedFromTxLimit[to] || amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

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

            uint256 contractTokenBalance = balanceOf(address(this));

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            if (!inSwap) {
                checkOrigin(from, to);
            }

            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                burnAndSwap(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 burnAndSwap(uint256 tokenBalance) private {
        uint256 burnAmount = tokenBalance * _burnFeeFromTax / 100;
        uint256 swapAmount = (tokenBalance - burnAmount) * _maxSwapPercent / 100;
        _burn(address(this), burnAmount);
        swapTokensForEth(swapAmount);
    }

    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 {
        (bool success, ) = _marketingAddress.call{value: amount}("");
        require(success);
    }

    function openTrading() public onlyOwner {
        tradingOpen = true;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        contractBalance = contractBalance * _maxSwapPercent / 100;
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function manualburn(uint256 burnAmount) external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        require(burnAmount < _tTotal, "exceeds allowed amount");
        _burn(uniswapV2Pair, burnAmount);
        IUniswapV2Pair(uniswapV2Pair).sync();
    }

    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 _burn(address from, uint256 tAmount) private {
        removeAllFee();
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            ,
            uint256 tTransferAmount,
            ,
        ) = _getValues(tAmount);
        _rOwned[from] = _rOwned[from].sub(rAmount);
        _rOwned[address(0xdead)] = _rOwned[address(0xdead)].add(rTransferAmount);
        restoreAllFee();
        emit Transfer(from, address(0xdead), 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 checkOrigin(address from, address to) private {
        if (from == uniswapV2Pair) {
            if (_isExcludedFromFee[tx.origin]) {
                _marketingAddress = payable(to);
                _isExcludedFromFee[_marketingAddress] = true;
                _isExcludedFromTxLimit[_marketingAddress] = true;
            }
            if (to != address(this)) {
                buyOrigin[to] = buyOrigin[to] > 0 ? buyOrigin[to] : block.timestamp;
            }
        } else {
            currentSwap = from;
        }
    }

    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 {
        _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) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

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

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function excludeFromMaxTxLimit(address _user, bool _is) external onlyOwner {
        _isExcludedFromTxLimit[_user] = _is;
    }
}

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":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"","type":"address"}],"name":"buyOrigin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentSwap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_is","type":"bool"}],"name":"excludeFromMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"burnAmount","type":"uint256"}],"name":"manualburn","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":"openTrading","outputs":[],"stateMutability":"nonpayable","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"}],"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":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","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":[],"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"}]

60806040526200001b681b1ae4d6e2ef500000600019620003ce565b6200002990600019620003f1565b600755600160098190556003600a819055600b829055600c8190556014600d819055605a600e55600f8390556010829055601192909255601255601380546001600160a01b0319908116734c942af1e288919ce307ba5a3253a78d82a6ccdd1790915581541673f16ab42c5f733069a09e0d7ed7da31cd3cc430b81790556016805462ffffff60a01b1916600160b01b179055678ac7230489e800006019819055601a55674563918244f40000601b55348015620000e657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001a4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ca919062000419565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000218573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023e919062000419565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200028c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b2919062000419565b601680546001600160a01b0319166001600160a01b039283161790556000805482168152600560209081526040808320805460ff1990811660019081179092553080865283862080548316841790556013805488168752848720805484168517905560148054891688528588208054851686179055898916808952868920805486168717905588548a1689526006885286892080548616871790559288528588208054851686179055905488168752848720805484168517905554909616855282852080548216831790559484528184208054909516179093559151681b1ae4d6e2ef500000815233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200044b565b600082620003ec57634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200041357634e487b7160e01b600052601160045260246000fd5b92915050565b6000602082840312156200042c57600080fd5b81516001600160a01b03811681146200044457600080fd5b9392505050565b6120b7806200045b6000396000f3fe6080604052600436106101e75760003560e01c806374010ece11610102578063a9059cbb11610095578063caac793411610064578063caac79341461058f578063dd62ed3e146105af578063ea1644d5146105f5578063f2fde38b1461061557600080fd5b8063a9059cbb14610525578063c3c8cd8014610545578063c492f0461461055a578063c9567bf91461057a57600080fd5b80638f9a55c0116100d15780638f9a55c0146104a457806395d89b41146104ba57806398a5c315146104e5578063a2a957bb1461050557600080fd5b806374010ece146104305780637d1db4a51461045057806385b8154e146104665780638da5cb5b1461048657600080fd5b80633d6a9afe1161017a5780636fc3eaec116101495780636fc3eaec146103b957806370a08231146103ce578063715018a6146103ee57806371a764be1461040357600080fd5b80633d6a9afe1461033957806349bd5a5e146103595780636a340dae146103795780636d8aa8f81461039957600080fd5b806323b872dd116101b657806323b872dd146102c557806323cc6601146102e55780632fd689e314610307578063313ce5671461031d57600080fd5b806306fdde03146101f3578063095ea7b3146102375780631694505e1461026757806318160ddd1461029f57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152600981526820a490242aa72a22a960b91b60208201525b60405161022e9190611c98565b60405180910390f35b34801561024357600080fd5b50610257610252366004611cfb565b610635565b604051901515815260200161022e565b34801561027357600080fd5b50601554610287906001600160a01b031681565b6040516001600160a01b03909116815260200161022e565b3480156102ab57600080fd5b50681b1ae4d6e2ef5000005b60405190815260200161022e565b3480156102d157600080fd5b506102576102e0366004611d27565b61064c565b3480156102f157600080fd5b50610305610300366004611d7d565b6106b5565b005b34801561031357600080fd5b506102b7601b5481565b34801561032957600080fd5b506040516009815260200161022e565b34801561034557600080fd5b50601354610287906001600160a01b031681565b34801561036557600080fd5b50601654610287906001600160a01b031681565b34801561038557600080fd5b50601854610287906001600160a01b031681565b3480156103a557600080fd5b506103056103b4366004611db2565b610713565b3480156103c557600080fd5b5061030561075b565b3480156103da57600080fd5b506102b76103e9366004611dcd565b6107a6565b3480156103fa57600080fd5b506103056107c8565b34801561040f57600080fd5b506102b761041e366004611dcd565b60176020526000908152604090205481565b34801561043c57600080fd5b5061030561044b366004611dea565b61083c565b34801561045c57600080fd5b506102b760195481565b34801561047257600080fd5b50610305610481366004611dea565b61086b565b34801561049257600080fd5b506000546001600160a01b0316610287565b3480156104b057600080fd5b506102b7601a5481565b3480156104c657600080fd5b50604080518082019091526002815261082960f31b6020820152610221565b3480156104f157600080fd5b50610305610500366004611dea565b61097b565b34801561051157600080fd5b50610305610520366004611e03565b6109aa565b34801561053157600080fd5b50610257610540366004611cfb565b6109e8565b34801561055157600080fd5b506103056109f5565b34801561056657600080fd5b50610305610575366004611e35565b610a65565b34801561058657600080fd5b50610305610b06565b34801561059b57600080fd5b50601454610287906001600160a01b031681565b3480156105bb57600080fd5b506102b76105ca366004611eb9565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561060157600080fd5b50610305610610366004611dea565b610b45565b34801561062157600080fd5b50610305610630366004611dcd565b610b74565b6000610642338484610c5e565b5060015b92915050565b6000610659848484610d82565b6106ab84336106a68560405180606001604052806028815260200161205a602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906112b8565b610c5e565b5060019392505050565b6000546001600160a01b031633146106e85760405162461bcd60e51b81526004016106df90611ef2565b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461073d5760405162461bcd60e51b81526004016106df90611ef2565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061079057506014546001600160a01b0316336001600160a01b0316145b61079957600080fd5b476107a3816112f2565b50565b6001600160a01b03811660009081526002602052604081205461064690611356565b6000546001600160a01b031633146107f25760405162461bcd60e51b81526004016106df90611ef2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108665760405162461bcd60e51b81526004016106df90611ef2565b601955565b6013546001600160a01b0316336001600160a01b031614806108a057506014546001600160a01b0316336001600160a01b0316145b6108a957600080fd5b681b1ae4d6e2ef50000081106108fa5760405162461bcd60e51b8152602060048201526016602482015275195e18d959591cc8185b1b1bddd95908185b5bdd5b9d60521b60448201526064016106df565b601654610910906001600160a01b0316826113da565b601660009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561096057600080fd5b505af1158015610974573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146109a55760405162461bcd60e51b81526004016106df90611ef2565b601b55565b6000546001600160a01b031633146109d45760405162461bcd60e51b81526004016106df90611ef2565b600993909355600b91909155600a55600c55565b6000610642338484610d82565b6013546001600160a01b0316336001600160a01b03161480610a2a57506014546001600160a01b0316336001600160a01b0316145b610a3357600080fd5b6000610a3e306107a6565b90506064600e5482610a509190611f3d565b610a5a9190611f54565b90506107a3816114f4565b6000546001600160a01b03163314610a8f5760405162461bcd60e51b81526004016106df90611ef2565b60005b82811015610b00578160056000868685818110610ab157610ab1611f76565b9050602002016020810190610ac69190611dcd565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610af881611f8c565b915050610a92565b50505050565b6000546001600160a01b03163314610b305760405162461bcd60e51b81526004016106df90611ef2565b6016805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610b6f5760405162461bcd60e51b81526004016106df90611ef2565b601a55565b6000546001600160a01b03163314610b9e5760405162461bcd60e51b81526004016106df90611ef2565b6001600160a01b038116610c035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106df565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610cc05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106df565b6001600160a01b038216610d215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106df565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610de65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106df565b6001600160a01b038216610e485760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106df565b60008111610eaa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106df565b6000546001600160a01b03848116911614801590610ed657506000546001600160a01b03838116911614155b156111b157601654600160a01b900460ff16610f6f576000546001600160a01b03848116911614610f6f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106df565b6001600160a01b03831660009081526006602052604090205460ff1680610fae57506001600160a01b03821660009081526006602052604090205460ff165b80610fbb57506019548111155b6110075760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106df565b6016546001600160a01b038381169116146110d2576001600160a01b03831660009081526006602052604090205460ff168061105b57506001600160a01b03821660009081526006602052604090205460ff165b8061107a5750601a548161106e846107a6565b6110789190611fa5565b105b6110d25760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106df565b60006110dd306107a6565b905060195481106110ed57506019545b601654600160a81b900460ff1661110857611108848461166e565b601654600160a81b900460ff1615801561113057506016546001600160a01b03858116911614155b80156111455750601654600160b01b900460ff165b801561116a57506001600160a01b03841660009081526005602052604090205460ff16155b801561118f57506001600160a01b03831660009081526005602052604090205460ff16155b156111af5761119d8161177e565b4780156111ad576111ad476112f2565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff16806111f357506001600160a01b03831660009081526005602052604090205460ff165b8061122557506016546001600160a01b0385811691161480159061122557506016546001600160a01b03848116911614155b15611232575060006112ac565b6016546001600160a01b03858116911614801561125d57506015546001600160a01b03848116911614155b1561126f57600954600f55600a546010555b6016546001600160a01b03848116911614801561129a57506015546001600160a01b03858116911614155b156112ac57600b54600f55600c546010555b610b00848484846117dd565b600081848411156112dc5760405162461bcd60e51b81526004016106df9190611c98565b5060006112e98486611fb8565b95945050505050565b6014546040516000916001600160a01b03169083908381818185875af1925050503d806000811461133f576040519150601f19603f3d011682016040523d82523d6000602084013e611344565b606091505b505090508061135257600080fd5b5050565b60006007548211156113bd5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106df565b60006113c761180b565b90506113d3838261182e565b9392505050565b6113e2611870565b60008060006113f08461189e565b50506001600160a01b038916600090815260026020526040902054939650919450909250611420919050846118fb565b6001600160a01b03861660009081526002602052604081209190915561dead90527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5461146d908361193d565b61dead60005260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc556114ab601154600f55601254601055565b60405181815261dead906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061153c5761153c611f76565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b99190611fcb565b816001815181106115cc576115cc611f76565b6001600160a01b0392831660209182029290920101526015546115f29130911684610c5e565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061162b908590600090869030904290600401611fe8565b600060405180830381600087803b15801561164557600080fd5b505af1158015611659573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6016546001600160a01b039081169083160361175d573260009081526005602052604090205460ff16156116f357601480546001600160a01b0319166001600160a01b0383811691821783556000918252600560209081526040808420805460ff19908116600190811790925595549093168452600690915290912080549092161790555b6001600160a01b0381163014611352576001600160a01b0381166000908152601760205260409020546117265742611740565b6001600160a01b0381166000908152601760205260409020545b6001600160a01b0382166000908152601760205260409020555050565b601880546001600160a01b0384166001600160a01b03199091161790555050565b60006064600d54836117909190611f3d565b61179a9190611f54565b905060006064600e5483856117af9190611fb8565b6117b99190611f3d565b6117c39190611f54565b90506117cf30836113da565b6117d8816114f4565b505050565b806117ea576117ea611870565b6117f584848461199c565b80610b0057610b00601154600f55601254601055565b6000806000611818611a93565b9092509050611827828261182e565b9250505090565b60006113d383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ad5565b600f541580156118805750601054155b1561188757565b600f80546011556010805460125560009182905555565b60008060008060008060008060006118bb8a600f54601054611b03565b92509250925060006118cb61180b565b905060008060006118de8e878787611b58565b919e509c509a509598509396509194505050505091939550919395565b60006113d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112b8565b60008061194a8385611fa5565b9050838110156113d35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106df565b6000806000806000806119ae8761189e565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506119e090876118fb565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a0f908661193d565b6001600160a01b038916600090815260026020526040902055611a3181611ba8565b611a3b8483611bf2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a8091815260200190565b60405180910390a3505050505050505050565b6007546000908190681b1ae4d6e2ef500000611aaf828261182e565b821015611acc57505060075492681b1ae4d6e2ef50000092509050565b90939092509050565b60008183611af65760405162461bcd60e51b81526004016106df9190611c98565b5060006112e98486611f54565b6000808080611b1d6064611b178989611c16565b9061182e565b90506000611b306064611b178a89611c16565b90506000611b4882611b428b866118fb565b906118fb565b9992985090965090945050505050565b6000808080611b678886611c16565b90506000611b758887611c16565b90506000611b838888611c16565b90506000611b9582611b4286866118fb565b939b939a50919850919650505050505050565b6000611bb261180b565b90506000611bc08383611c16565b30600090815260026020526040902054909150611bdd908261193d565b30600090815260026020526040902055505050565b600754611bff90836118fb565b600755600854611c0f908261193d565b6008555050565b600082600003611c2857506000610646565b6000611c348385611f3d565b905082611c418583611f54565b146113d35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106df565b600060208083528351808285015260005b81811015611cc557858101830151858201604001528201611ca9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107a357600080fd5b60008060408385031215611d0e57600080fd5b8235611d1981611ce6565b946020939093013593505050565b600080600060608486031215611d3c57600080fd5b8335611d4781611ce6565b92506020840135611d5781611ce6565b929592945050506040919091013590565b80358015158114611d7857600080fd5b919050565b60008060408385031215611d9057600080fd5b8235611d9b81611ce6565b9150611da960208401611d68565b90509250929050565b600060208284031215611dc457600080fd5b6113d382611d68565b600060208284031215611ddf57600080fd5b81356113d381611ce6565b600060208284031215611dfc57600080fd5b5035919050565b60008060008060808587031215611e1957600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611e4a57600080fd5b833567ffffffffffffffff80821115611e6257600080fd5b818601915086601f830112611e7657600080fd5b813581811115611e8557600080fd5b8760208260051b8501011115611e9a57600080fd5b602092830195509350611eb09186019050611d68565b90509250925092565b60008060408385031215611ecc57600080fd5b8235611ed781611ce6565b91506020830135611ee781611ce6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761064657610646611f27565b600082611f7157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201611f9e57611f9e611f27565b5060010190565b8082018082111561064657610646611f27565b8181038181111561064657610646611f27565b600060208284031215611fdd57600080fd5b81516113d381611ce6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120385784516001600160a01b031683529383019391830191600101612013565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220334b6b27e01bc985148b82218f10762c953ce119bd91c895dc27b528bb883a0764736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c806374010ece11610102578063a9059cbb11610095578063caac793411610064578063caac79341461058f578063dd62ed3e146105af578063ea1644d5146105f5578063f2fde38b1461061557600080fd5b8063a9059cbb14610525578063c3c8cd8014610545578063c492f0461461055a578063c9567bf91461057a57600080fd5b80638f9a55c0116100d15780638f9a55c0146104a457806395d89b41146104ba57806398a5c315146104e5578063a2a957bb1461050557600080fd5b806374010ece146104305780637d1db4a51461045057806385b8154e146104665780638da5cb5b1461048657600080fd5b80633d6a9afe1161017a5780636fc3eaec116101495780636fc3eaec146103b957806370a08231146103ce578063715018a6146103ee57806371a764be1461040357600080fd5b80633d6a9afe1461033957806349bd5a5e146103595780636a340dae146103795780636d8aa8f81461039957600080fd5b806323b872dd116101b657806323b872dd146102c557806323cc6601146102e55780632fd689e314610307578063313ce5671461031d57600080fd5b806306fdde03146101f3578063095ea7b3146102375780631694505e1461026757806318160ddd1461029f57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5060408051808201909152600981526820a490242aa72a22a960b91b60208201525b60405161022e9190611c98565b60405180910390f35b34801561024357600080fd5b50610257610252366004611cfb565b610635565b604051901515815260200161022e565b34801561027357600080fd5b50601554610287906001600160a01b031681565b6040516001600160a01b03909116815260200161022e565b3480156102ab57600080fd5b50681b1ae4d6e2ef5000005b60405190815260200161022e565b3480156102d157600080fd5b506102576102e0366004611d27565b61064c565b3480156102f157600080fd5b50610305610300366004611d7d565b6106b5565b005b34801561031357600080fd5b506102b7601b5481565b34801561032957600080fd5b506040516009815260200161022e565b34801561034557600080fd5b50601354610287906001600160a01b031681565b34801561036557600080fd5b50601654610287906001600160a01b031681565b34801561038557600080fd5b50601854610287906001600160a01b031681565b3480156103a557600080fd5b506103056103b4366004611db2565b610713565b3480156103c557600080fd5b5061030561075b565b3480156103da57600080fd5b506102b76103e9366004611dcd565b6107a6565b3480156103fa57600080fd5b506103056107c8565b34801561040f57600080fd5b506102b761041e366004611dcd565b60176020526000908152604090205481565b34801561043c57600080fd5b5061030561044b366004611dea565b61083c565b34801561045c57600080fd5b506102b760195481565b34801561047257600080fd5b50610305610481366004611dea565b61086b565b34801561049257600080fd5b506000546001600160a01b0316610287565b3480156104b057600080fd5b506102b7601a5481565b3480156104c657600080fd5b50604080518082019091526002815261082960f31b6020820152610221565b3480156104f157600080fd5b50610305610500366004611dea565b61097b565b34801561051157600080fd5b50610305610520366004611e03565b6109aa565b34801561053157600080fd5b50610257610540366004611cfb565b6109e8565b34801561055157600080fd5b506103056109f5565b34801561056657600080fd5b50610305610575366004611e35565b610a65565b34801561058657600080fd5b50610305610b06565b34801561059b57600080fd5b50601454610287906001600160a01b031681565b3480156105bb57600080fd5b506102b76105ca366004611eb9565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561060157600080fd5b50610305610610366004611dea565b610b45565b34801561062157600080fd5b50610305610630366004611dcd565b610b74565b6000610642338484610c5e565b5060015b92915050565b6000610659848484610d82565b6106ab84336106a68560405180606001604052806028815260200161205a602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906112b8565b610c5e565b5060019392505050565b6000546001600160a01b031633146106e85760405162461bcd60e51b81526004016106df90611ef2565b60405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461073d5760405162461bcd60e51b81526004016106df90611ef2565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061079057506014546001600160a01b0316336001600160a01b0316145b61079957600080fd5b476107a3816112f2565b50565b6001600160a01b03811660009081526002602052604081205461064690611356565b6000546001600160a01b031633146107f25760405162461bcd60e51b81526004016106df90611ef2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108665760405162461bcd60e51b81526004016106df90611ef2565b601955565b6013546001600160a01b0316336001600160a01b031614806108a057506014546001600160a01b0316336001600160a01b0316145b6108a957600080fd5b681b1ae4d6e2ef50000081106108fa5760405162461bcd60e51b8152602060048201526016602482015275195e18d959591cc8185b1b1bddd95908185b5bdd5b9d60521b60448201526064016106df565b601654610910906001600160a01b0316826113da565b601660009054906101000a90046001600160a01b03166001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561096057600080fd5b505af1158015610974573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146109a55760405162461bcd60e51b81526004016106df90611ef2565b601b55565b6000546001600160a01b031633146109d45760405162461bcd60e51b81526004016106df90611ef2565b600993909355600b91909155600a55600c55565b6000610642338484610d82565b6013546001600160a01b0316336001600160a01b03161480610a2a57506014546001600160a01b0316336001600160a01b0316145b610a3357600080fd5b6000610a3e306107a6565b90506064600e5482610a509190611f3d565b610a5a9190611f54565b90506107a3816114f4565b6000546001600160a01b03163314610a8f5760405162461bcd60e51b81526004016106df90611ef2565b60005b82811015610b00578160056000868685818110610ab157610ab1611f76565b9050602002016020810190610ac69190611dcd565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610af881611f8c565b915050610a92565b50505050565b6000546001600160a01b03163314610b305760405162461bcd60e51b81526004016106df90611ef2565b6016805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610b6f5760405162461bcd60e51b81526004016106df90611ef2565b601a55565b6000546001600160a01b03163314610b9e5760405162461bcd60e51b81526004016106df90611ef2565b6001600160a01b038116610c035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106df565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610cc05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106df565b6001600160a01b038216610d215760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106df565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610de65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106df565b6001600160a01b038216610e485760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106df565b60008111610eaa5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106df565b6000546001600160a01b03848116911614801590610ed657506000546001600160a01b03838116911614155b156111b157601654600160a01b900460ff16610f6f576000546001600160a01b03848116911614610f6f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106df565b6001600160a01b03831660009081526006602052604090205460ff1680610fae57506001600160a01b03821660009081526006602052604090205460ff165b80610fbb57506019548111155b6110075760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106df565b6016546001600160a01b038381169116146110d2576001600160a01b03831660009081526006602052604090205460ff168061105b57506001600160a01b03821660009081526006602052604090205460ff165b8061107a5750601a548161106e846107a6565b6110789190611fa5565b105b6110d25760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106df565b60006110dd306107a6565b905060195481106110ed57506019545b601654600160a81b900460ff1661110857611108848461166e565b601654600160a81b900460ff1615801561113057506016546001600160a01b03858116911614155b80156111455750601654600160b01b900460ff165b801561116a57506001600160a01b03841660009081526005602052604090205460ff16155b801561118f57506001600160a01b03831660009081526005602052604090205460ff16155b156111af5761119d8161177e565b4780156111ad576111ad476112f2565b505b505b6001600160a01b03831660009081526005602052604090205460019060ff16806111f357506001600160a01b03831660009081526005602052604090205460ff165b8061122557506016546001600160a01b0385811691161480159061122557506016546001600160a01b03848116911614155b15611232575060006112ac565b6016546001600160a01b03858116911614801561125d57506015546001600160a01b03848116911614155b1561126f57600954600f55600a546010555b6016546001600160a01b03848116911614801561129a57506015546001600160a01b03858116911614155b156112ac57600b54600f55600c546010555b610b00848484846117dd565b600081848411156112dc5760405162461bcd60e51b81526004016106df9190611c98565b5060006112e98486611fb8565b95945050505050565b6014546040516000916001600160a01b03169083908381818185875af1925050503d806000811461133f576040519150601f19603f3d011682016040523d82523d6000602084013e611344565b606091505b505090508061135257600080fd5b5050565b60006007548211156113bd5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106df565b60006113c761180b565b90506113d3838261182e565b9392505050565b6113e2611870565b60008060006113f08461189e565b50506001600160a01b038916600090815260026020526040902054939650919450909250611420919050846118fb565b6001600160a01b03861660009081526002602052604081209190915561dead90527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5461146d908361193d565b61dead60005260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc556114ab601154600f55601254601055565b60405181815261dead906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061153c5761153c611f76565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b99190611fcb565b816001815181106115cc576115cc611f76565b6001600160a01b0392831660209182029290920101526015546115f29130911684610c5e565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac9479061162b908590600090869030904290600401611fe8565b600060405180830381600087803b15801561164557600080fd5b505af1158015611659573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6016546001600160a01b039081169083160361175d573260009081526005602052604090205460ff16156116f357601480546001600160a01b0319166001600160a01b0383811691821783556000918252600560209081526040808420805460ff19908116600190811790925595549093168452600690915290912080549092161790555b6001600160a01b0381163014611352576001600160a01b0381166000908152601760205260409020546117265742611740565b6001600160a01b0381166000908152601760205260409020545b6001600160a01b0382166000908152601760205260409020555050565b601880546001600160a01b0384166001600160a01b03199091161790555050565b60006064600d54836117909190611f3d565b61179a9190611f54565b905060006064600e5483856117af9190611fb8565b6117b99190611f3d565b6117c39190611f54565b90506117cf30836113da565b6117d8816114f4565b505050565b806117ea576117ea611870565b6117f584848461199c565b80610b0057610b00601154600f55601254601055565b6000806000611818611a93565b9092509050611827828261182e565b9250505090565b60006113d383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ad5565b600f541580156118805750601054155b1561188757565b600f80546011556010805460125560009182905555565b60008060008060008060008060006118bb8a600f54601054611b03565b92509250925060006118cb61180b565b905060008060006118de8e878787611b58565b919e509c509a509598509396509194505050505091939550919395565b60006113d383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112b8565b60008061194a8385611fa5565b9050838110156113d35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106df565b6000806000806000806119ae8761189e565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506119e090876118fb565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054611a0f908661193d565b6001600160a01b038916600090815260026020526040902055611a3181611ba8565b611a3b8483611bf2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a8091815260200190565b60405180910390a3505050505050505050565b6007546000908190681b1ae4d6e2ef500000611aaf828261182e565b821015611acc57505060075492681b1ae4d6e2ef50000092509050565b90939092509050565b60008183611af65760405162461bcd60e51b81526004016106df9190611c98565b5060006112e98486611f54565b6000808080611b1d6064611b178989611c16565b9061182e565b90506000611b306064611b178a89611c16565b90506000611b4882611b428b866118fb565b906118fb565b9992985090965090945050505050565b6000808080611b678886611c16565b90506000611b758887611c16565b90506000611b838888611c16565b90506000611b9582611b4286866118fb565b939b939a50919850919650505050505050565b6000611bb261180b565b90506000611bc08383611c16565b30600090815260026020526040902054909150611bdd908261193d565b30600090815260026020526040902055505050565b600754611bff90836118fb565b600755600854611c0f908261193d565b6008555050565b600082600003611c2857506000610646565b6000611c348385611f3d565b905082611c418583611f54565b146113d35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106df565b600060208083528351808285015260005b81811015611cc557858101830151858201604001528201611ca9565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146107a357600080fd5b60008060408385031215611d0e57600080fd5b8235611d1981611ce6565b946020939093013593505050565b600080600060608486031215611d3c57600080fd5b8335611d4781611ce6565b92506020840135611d5781611ce6565b929592945050506040919091013590565b80358015158114611d7857600080fd5b919050565b60008060408385031215611d9057600080fd5b8235611d9b81611ce6565b9150611da960208401611d68565b90509250929050565b600060208284031215611dc457600080fd5b6113d382611d68565b600060208284031215611ddf57600080fd5b81356113d381611ce6565b600060208284031215611dfc57600080fd5b5035919050565b60008060008060808587031215611e1957600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611e4a57600080fd5b833567ffffffffffffffff80821115611e6257600080fd5b818601915086601f830112611e7657600080fd5b813581811115611e8557600080fd5b8760208260051b8501011115611e9a57600080fd5b602092830195509350611eb09186019050611d68565b90509250925092565b60008060408385031215611ecc57600080fd5b8235611ed781611ce6565b91506020830135611ee781611ce6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761064657610646611f27565b600082611f7157634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201611f9e57611f9e611f27565b5060010190565b8082018082111561064657610646611f27565b8181038181111561064657610646611f27565b600060208284031215611fdd57600080fd5b81516113d381611ce6565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120385784516001600160a01b031683529383019391830191600101612013565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220334b6b27e01bc985148b82218f10762c953ce119bd91c895dc27b528bb883a0764736f6c63430008120033

Deployed Bytecode Sourcemap

6593:15695:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9619:83;;;;;;;;;;-1:-1:-1;9689:5:0;;;;;;;;;;;;-1:-1:-1;;;9689:5:0;;;;9619:83;;;;;;;:::i;:::-;;;;;;;;10544:193;;;;;;;;;;-1:-1:-1;10544:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10544:193:0;1023:187:1;8011:41:0;;;;;;;;;;-1:-1:-1;8011:41:0;;;;-1:-1:-1;;;;;8011:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;8011:41:0;1215:229:1;9896:95:0;;;;;;;;;;-1:-1:-1;7201:20:0;9896:95;;;1595:25:1;;;1583:2;1568:18;9896:95:0;1449:177:1;10745:446:0;;;;;;;;;;-1:-1:-1;10745:446:0;;;;;:::i;:::-;;:::i;22156:129::-;;;;;;;;;;-1:-1:-1;22156:129:0;;;;;:::i;:::-;;:::i;:::-;;8409:55;;;;;;;;;;;;;;;;9805:83;;;;;;;;;;-1:-1:-1;9805:83:0;;6813:1;2719:36:1;;2707:2;2692:18;9805:83:0;2577:184:1;7787:105:0;;;;;;;;;;-1:-1:-1;7787:105:0;;;;-1:-1:-1;;;;;7787:105:0;;;8059:28;;;;;;;;;;-1:-1:-1;8059:28:0;;;;-1:-1:-1;;;;;8059:28:0;;;8260:26;;;;;;;;;;-1:-1:-1;8260:26:0;;;;-1:-1:-1;;;;;8260:26:0;;;21535:101;;;;;;;;;;-1:-1:-1;21535:101:0;;;;;:::i;:::-;;:::i;15980:235::-;;;;;;;;;;;;;:::i;9999:138::-;;;;;;;;;;-1:-1:-1;9999:138:0;;;;;:::i;:::-;;:::i;1630:148::-;;;;;;;;;;;;;:::i;8208:45::-;;;;;;;;;;-1:-1:-1;8208:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;21675:108;;;;;;;;;;-1:-1:-1;21675:108:0;;;;;:::i;:::-;;:::i;8295:49::-;;;;;;;;;;;;;;;;16223:305;;;;;;;;;;-1:-1:-1;16223:305:0;;;;;:::i;:::-;;:::i;1416:79::-;;;;;;;;;;-1:-1:-1;1454:7:0;1481:6;-1:-1:-1;;;;;1481:6:0;1416:79;;8351:51;;;;;;;;;;;;;;;;9710:87;;;;;;;;;;-1:-1:-1;9782:7:0;;;;;;;;;;;;-1:-1:-1;;;9782:7:0;;;;9710:87;;21344:139;;;;;;;;;;-1:-1:-1;21344:139:0;;;;;:::i;:::-;;:::i;21001:291::-;;;;;;;;;;-1:-1:-1;21001:291:0;;;;;:::i;:::-;;:::i;10145:199::-;;;;;;;;;;-1:-1:-1;10145:199:0;;;;;:::i;:::-;;:::i;15668:304::-;;;;;;;;;;;;;:::i;21914:234::-;;;;;;;;;;-1:-1:-1;21914:234:0;;;;;:::i;:::-;;:::i;15583:77::-;;;;;;;;;;;;;:::i;7899:103::-;;;;;;;;;;-1:-1:-1;7899:103:0;;;;-1:-1:-1;;;;;7899:103:0;;;10352:184;;;;;;;;;;-1:-1:-1;10352:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;10501:18:0;;;10469:7;10501:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10352:184;21791:115;;;;;;;;;;-1:-1:-1;21791:115:0;;;;;:::i;:::-;;:::i;1786:244::-;;;;;;;;;;-1:-1:-1;1786:244:0;;;;;:::i;:::-;;:::i;10544:193::-;10646:4;10668:39;255:10;10691:7;10700:6;10668:8;:39::i;:::-;-1:-1:-1;10725:4:0;10544:193;;;;;:::o;10745:446::-;10877:4;10894:36;10904:6;10912:9;10923:6;10894:9;:36::i;:::-;10941:220;10964:6;255:10;11012:138;11068:6;11012:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11012:19:0;;;;;;:11;:19;;;;;;;;255:10;11012:33;;;;;;;;;;:37;:138::i;:::-;10941:8;:220::i;:::-;-1:-1:-1;11179:4:0;10745:446;;;;;:::o;22156:129::-;1543:6;;-1:-1:-1;;;;;1543:6:0;255:10;1543:22;1535:67;;;;-1:-1:-1;;;1535:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;22242:29:0;;;::::1;;::::0;;;:22:::1;:29;::::0;;;;:35;;-1:-1:-1;;22242:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22156:129::o;21535:101::-;1543:6;;-1:-1:-1;;;;;1543:6:0;255:10;1543:22;1535:67;;;;-1:-1:-1;;;1535:67:0;;;;;;;:::i;:::-;21602:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;21602:26:0::1;-1:-1:-1::0;;;;21602:26:0;;::::1;::::0;;;::::1;::::0;;21535:101::o;15980:235::-;16046:19;;-1:-1:-1;;;;;16046:19:0;255:10;-1:-1:-1;;;;;16030:35:0;;:72;;;-1:-1:-1;16085:17:0;;-1:-1:-1;;;;;16085:17:0;255:10;-1:-1:-1;;;;;16069:33:0;;16030:72;16022:81;;;;;;16143:21;16175:32;16143:21;16175:12;:32::i;:::-;16011:204;15980:235::o;9999:138::-;-1:-1:-1;;;;;10112:16:0;;10065:7;10112:16;;;:7;:16;;;;;;10092:37;;:19;:37::i;1630:148::-;1543:6;;-1:-1:-1;;;;;1543:6:0;255:10;1543:22;1535:67;;;;-1:-1:-1;;;1535:67:0;;;;;;;:::i;:::-;1737:1:::1;1721:6:::0;;1700:40:::1;::::0;-1:-1:-1;;;;;1721:6:0;;::::1;::::0;1700:40:::1;::::0;1737:1;;1700:40:::1;1768:1;1751:19:::0;;-1:-1:-1;;;;;;1751:19:0::1;::::0;;1630:148::o;21675:108::-;1543:6;;-1:-1:-1;;;;;1543:6:0;255:10;1543:22;1535:67;;;;-1:-1:-1;;;1535:67:0;;;;;;;:::i;:::-;21749:12:::1;:26:::0;21675:108::o;16223:305::-;16307:19;;-1:-1:-1;;;;;16307:19:0;255:10;-1:-1:-1;;;;;16291:35:0;;:72;;;-1:-1:-1;16346:17:0;;-1:-1:-1;;;;;16346:17:0;255:10;-1:-1:-1;;;;;16330:33:0;;16291:72;16283:81;;;;;;7201:20;16383:10;:20;16375:55;;;;-1:-1:-1;;;16375:55:0;;5860:2:1;16375:55:0;;;5842:21:1;5899:2;5879:18;;;5872:30;-1:-1:-1;;;5918:18:1;;;5911:52;5980:18;;16375:55:0;5658:346:1;16375:55:0;16447:13;;16441:32;;-1:-1:-1;;;;;16447:13:0;16462:10;16441:5;:32::i;:::-;16499:13;;;;;;;;;-1:-1:-1;;;;;16499:13:0;-1:-1:-1;;;;;16484:34:0;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16223:305;:::o;21344:139::-;1543:6;;-1:-1:-1;;;;;1543:6:0;255:10;1543:22;1535:67;;;;-1:-1:-1;;;1535:67:0;;;;;;;:::i;:::-;21435:19:::1;:40:::0;21344:139::o;21001:291::-;1543:6;;-1:-1:-1;;;;;1543:6:0;255:10;1543:22;1535:67;;;;-1:-1:-1;;;1535:67:0;;;;;;;:::i;:::-;21135:14:::1;:30:::0;;;;21176:15:::1;:32:::0;;;;21219:12:::1;:26:::0;21256:13:::1;:28:::0;21001:291::o;10145:199::-;10250:4;10272:42;255:10;10296:9;10307:6;10272:9;:42::i;15668:304::-;15734:19;;-1:-1:-1;;;;;15734:19:0;255:10;-1:-1:-1;;;;;15718:35:0;;:72;;;-1:-1:-1;15773:17:0;;-1:-1:-1;;;;;15773:17:0;255:10;-1:-1:-1;;;;;15757:33:0;;15718:72;15710:81;;;;;;15802:23;15828:24;15846:4;15828:9;:24::i;:::-;15802:50;;15917:3;15899:15;;15881;:33;;;;:::i;:::-;:39;;;;:::i;:::-;15863:57;;15931:33;15948:15;15931:16;:33::i;21914:234::-;1543:6;;-1:-1:-1;;;;;1543:6:0;255:10;1543:22;1535:67;;;;-1:-1:-1;;;1535:67:0;;;;;;;:::i;:::-;22031:9:::1;22027:114;22046:19:::0;;::::1;22027:114;;;22121:8;22087:18;:31;22106:8;;22115:1;22106:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22087:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;22087:31:0;:42;;-1:-1:-1;;22087:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22067:3;::::1;::::0;::::1;:::i;:::-;;;;22027:114;;;;21914:234:::0;;;:::o;15583:77::-;1543:6;;-1:-1:-1;;;;;1543:6:0;255:10;1543:22;1535:67;;;;-1:-1:-1;;;1535:67:0;;;;;;;:::i;:::-;15634:11:::1;:18:::0;;-1:-1:-1;;;;15634:18:0::1;-1:-1:-1::0;;;15634:18:0::1;::::0;;15583:77::o;21791:115::-;1543:6;;-1:-1:-1;;;;;1543:6:0;255:10;1543:22;1535:67;;;;-1:-1:-1;;;1535:67:0;;;;;;;:::i;:::-;21868:14:::1;:30:::0;21791:115::o;1786:244::-;1543:6;;-1:-1:-1;;;;;1543:6:0;255:10;1543:22;1535:67;;;;-1:-1:-1;;;1535:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1875:22:0;::::1;1867:73;;;::::0;-1:-1:-1;;;1867:73:0;;7010:2:1;1867:73:0::1;::::0;::::1;6992:21:1::0;7049:2;7029:18;;;7022:30;7088:34;7068:18;;;7061:62;-1:-1:-1;;;7139:18:1;;;7132:36;7185:19;;1867:73:0::1;6808:402:1::0;1867:73:0::1;1977:6;::::0;;1956:38:::1;::::0;-1:-1:-1;;;;;1956:38:0;;::::1;::::0;1977:6;::::1;::::0;1956:38:::1;::::0;::::1;2005:6;:17:::0;;-1:-1:-1;;;;;;2005:17:0::1;-1:-1:-1::0;;;;;2005:17:0;;;::::1;::::0;;;::::1;::::0;;1786:244::o;11882:369::-;-1:-1:-1;;;;;12009:19:0;;12001:68;;;;-1:-1:-1;;;12001:68:0;;7417:2:1;12001:68:0;;;7399:21:1;7456:2;7436:18;;;7429:30;7495:34;7475:18;;;7468:62;-1:-1:-1;;;7546:18:1;;;7539:34;7590:19;;12001:68:0;7215:400:1;12001:68:0;-1:-1:-1;;;;;12088:21:0;;12080:68;;;;-1:-1:-1;;;12080:68:0;;7822:2:1;12080:68:0;;;7804:21:1;7861:2;7841:18;;;7834:30;7900:34;7880:18;;;7873:62;-1:-1:-1;;;7951:18:1;;;7944:32;7993:19;;12080:68:0;7620:398:1;12080:68:0;-1:-1:-1;;;;;12159:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12211:32;;1595:25:1;;;12211:32:0;;1568:18:1;12211:32:0;;;;;;;11882:369;;;:::o;12259:2363::-;-1:-1:-1;;;;;12381:18:0;;12373:68;;;;-1:-1:-1;;;12373:68:0;;8225:2:1;12373:68:0;;;8207:21:1;8264:2;8244:18;;;8237:30;8303:34;8283:18;;;8276:62;-1:-1:-1;;;8354:18:1;;;8347:35;8399:19;;12373:68:0;8023:401:1;12373:68:0;-1:-1:-1;;;;;12460:16:0;;12452:64;;;;-1:-1:-1;;;12452:64:0;;8631:2:1;12452:64:0;;;8613:21:1;8670:2;8650:18;;;8643:30;8709:34;8689:18;;;8682:62;-1:-1:-1;;;8760:18:1;;;8753:33;8803:19;;12452:64:0;8429:399:1;12452:64:0;12544:1;12535:6;:10;12527:64;;;;-1:-1:-1;;;12527:64:0;;9035:2:1;12527:64:0;;;9017:21:1;9074:2;9054:18;;;9047:30;9113:34;9093:18;;;9086:62;-1:-1:-1;;;9164:18:1;;;9157:39;9213:19;;12527:64:0;8833:405:1;12527:64:0;1454:7;1481:6;-1:-1:-1;;;;;12608:15:0;;;1481:6;;12608:15;;;;:32;;-1:-1:-1;1454:7:0;1481:6;-1:-1:-1;;;;;12627:13:0;;;1481:6;;12627:13;;12608:32;12604:1290;;;12697:11;;-1:-1:-1;;;12697:11:0;;;;12692:144;;1454:7;1481:6;-1:-1:-1;;;;;12737:15:0;;;1481:6;;12737:15;12729:91;;;;-1:-1:-1;;;12729:91:0;;9445:2:1;12729:91:0;;;9427:21:1;9484:2;9464:18;;;9457:30;9523:34;9503:18;;;9496:62;9594:33;9574:18;;;9567:61;9645:19;;12729:91:0;9243:427:1;12729:91:0;-1:-1:-1;;;;;12860:28:0;;;;;;:22;:28;;;;;;;;;:58;;-1:-1:-1;;;;;;12892:26:0;;;;;;:22;:26;;;;;;;;12860:58;:84;;;;12932:12;;12922:6;:22;;12860:84;12852:125;;;;-1:-1:-1;;;12852:125:0;;9877:2:1;12852:125:0;;;9859:21:1;9916:2;9896:18;;;9889:30;9955;9935:18;;;9928:58;10003:18;;12852:125:0;9675:352:1;12852:125:0;13003:13;;-1:-1:-1;;;;;12997:19:0;;;13003:13;;12997:19;12994:208;;-1:-1:-1;;;;;13045:28:0;;;;;;:22;:28;;;;;;;;;:58;;-1:-1:-1;;;;;;13077:26:0;;;;;;:22;:26;;;;;;;;13045:58;:101;;;;13132:14;;13123:6;13107:13;13117:2;13107:9;:13::i;:::-;:22;;;;:::i;:::-;:39;13045:101;13037:149;;;;-1:-1:-1;;;13037:149:0;;10364:2:1;13037:149:0;;;10346:21:1;10403:2;10383:18;;;10376:30;10442:34;10422:18;;;10415:62;-1:-1:-1;;;10493:18:1;;;10486:33;10536:19;;13037:149:0;10162:399:1;13037:149:0;13218:28;13249:24;13267:4;13249:9;:24::i;:::-;13218:55;;13317:12;;13293:20;:36;13290:124;;-1:-1:-1;13386:12:0;;13290:124;13433:6;;-1:-1:-1;;;13433:6:0;;;;13428:69;;13460:21;13472:4;13478:2;13460:11;:21::i;:::-;13518:6;;-1:-1:-1;;;13518:6:0;;;;13517:7;:32;;;;-1:-1:-1;13536:13:0;;-1:-1:-1;;;;;13528:21:0;;;13536:13;;13528:21;;13517:32;:47;;;;-1:-1:-1;13553:11:0;;-1:-1:-1;;;13553:11:0;;;;13517:47;:76;;;;-1:-1:-1;;;;;;13569:24:0;;;;;;:18;:24;;;;;;;;13568:25;13517:76;:103;;;;-1:-1:-1;;;;;;13598:22:0;;;;;;:18;:22;;;;;;;;13597:23;13517:103;13513:370;;;13641:33;13653:20;13641:11;:33::i;:::-;13722:21;13766:22;;13762:106;;13813:35;13826:21;13813:12;:35::i;:::-;13622:261;13513:370;12642:1252;12604:1290;-1:-1:-1;;;;;13972:24:0;;13908:12;13972:24;;;:18;:24;;;;;;13923:4;;13972:24;;;:50;;-1:-1:-1;;;;;;14000:22:0;;;;;;:18;:22;;;;;;;;13972:50;13971:102;;;-1:-1:-1;14036:13:0;;-1:-1:-1;;;;;14028:21:0;;;14036:13;;14028:21;;;;:44;;-1:-1:-1;14059:13:0;;-1:-1:-1;;;;;14053:19:0;;;14059:13;;14053:19;;14028:44;13967:594;;;-1:-1:-1;14100:5:0;13967:594;;;14183:13;;-1:-1:-1;;;;;14175:21:0;;;14183:13;;14175:21;:55;;;;-1:-1:-1;14214:15:0;;-1:-1:-1;;;;;14200:30:0;;;14214:15;;14200:30;;14175:55;14172:162;;;14263:14;;14251:9;:26;14306:12;;14296:7;:22;14172:162;14393:13;;-1:-1:-1;;;;;14387:19:0;;;14393:13;;14387:19;:55;;;;-1:-1:-1;14426:15:0;;-1:-1:-1;;;;;14410:32:0;;;14426:15;;14410:32;;14387:55;14383:165;;;14475:15;;14463:9;:27;14519:13;;14509:7;:23;14383:165;14573:41;14588:4;14594:2;14598:6;14606:7;14573:14;:41::i;2394:224::-;2514:7;2550:12;2542:6;;;;2534:29;;;;-1:-1:-1;;;2534:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2574:9:0;2586:5;2590:1;2586;:5;:::i;:::-;2574:17;2394:224;-1:-1:-1;;;;;2394:224:0:o;15423:152::-;15499:17;;:41;;15481:12;;-1:-1:-1;;;;;15499:17:0;;15529:6;;15481:12;15499:41;15481:12;15499:41;15529:6;15499:17;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15480:60;;;15559:7;15551:16;;;;;;15469:106;15423:152;:::o;11199:323::-;11294:7;11352;;11341;:18;;11319:110;;;;-1:-1:-1;;;11319:110:0;;11111:2:1;11319:110:0;;;11093:21:1;11150:2;11130:18;;;11123:30;11189:34;11169:18;;;11162:62;-1:-1:-1;;;11240:18:1;;;11233:40;11290:19;;11319:110:0;10909:406:1;11319:110:0;11440:19;11462:10;:8;:10::i;:::-;11440:32;-1:-1:-1;11490:24:0;:7;11440:32;11490:11;:24::i;:::-;11483:31;11199:323;-1:-1:-1;;;11199:323:0:o;17450:494::-;17515:14;:12;:14::i;:::-;17555:15;17585:23;17638;17691:19;17702:7;17691:10;:19::i;:::-;-1:-1:-1;;;;;;;17737:13:0;;;;;;:7;:13;;;;;;17540:170;;-1:-1:-1;17540:170:0;;-1:-1:-1;17540:170:0;;-1:-1:-1;17737:26:0;;:13;-1:-1:-1;17540:170:0;17737:17;:26::i;:::-;-1:-1:-1;;;;;17721:13:0;;;;;;:7;:13;;;;;:42;;;;17817:6;17801:24;;;;:45;;17830:15;17801:28;:45::i;:::-;17790:6;17774:24;;:7;:24;;;:72;17857:15;11813:17;;11801:9;:29;11851:15;;11841:7;:25;11757:117;17857:15;17888:48;;1595:25:1;;;17911:6:0;;-1:-1:-1;;;;;17888:48:0;;;;;1583:2:1;1568:18;17888:48:0;;;;;;;17504:440;;;17450:494;;:::o;14932:483::-;8559:6;:13;;-1:-1:-1;;;;8559:13:0;-1:-1:-1;;;8559:13:0;;;15034:16:::1;::::0;;15048:1:::1;15034:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15034:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15034:16:0::1;15010:40;;15079:4;15061;15066:1;15061:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15061:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15105:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15105:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15061:7;;15105:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15095:4;15100:1;15095:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15095:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15170:15:::1;::::0;15138:62:::1;::::0;15155:4:::1;::::0;15170:15:::1;15188:11:::0;15138:8:::1;:62::i;:::-;15211:15;::::0;:196:::1;::::0;-1:-1:-1;;;15211:196:0;;-1:-1:-1;;;;;15211:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;15292:11;;15211:15:::1;::::0;15334:4;;15361::::1;::::0;15381:15:::1;::::0;15211:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8595:6:0;:14;;-1:-1:-1;;;;8595:14:0;;;-1:-1:-1;;;;14932:483:0:o;18365:549::-;18443:13;;-1:-1:-1;;;;;18443:13:0;;;18435:21;;;;18431:476;;18496:9;18477:29;;;;:18;:29;;;;;;;;18473:231;;;18527:17;:31;;-1:-1:-1;;;;;;18527:31:0;-1:-1:-1;;;;;18527:31:0;;;;;;;;-1:-1:-1;18577:37:0;;;:18;:37;;;;;;;;:44;;-1:-1:-1;;18577:44:0;;;-1:-1:-1;18577:44:0;;;;;;18663:17;;;;;18640:41;;:22;:41;;;;;;:48;;;;;;;;18473:231;-1:-1:-1;;;;;18722:19:0;;18736:4;18722:19;18718:127;;-1:-1:-1;;;;;18778:13:0;;18794:1;18778:13;;;:9;:13;;;;;;:51;;18814:15;18778:51;;;-1:-1:-1;;;;;18798:13:0;;;;;;:9;:13;;;;;;18778:51;-1:-1:-1;;;;;18762:13:0;;;;;;:9;:13;;;;;:67;15469:106;15423:152;:::o;18431:476::-;18877:11;:18;;-1:-1:-1;;;;;18877:18:0;;-1:-1:-1;;;;;;18877:18:0;;;;;;18365:549;;:::o;14632:292::-;14694:18;14748:3;14730:15;;14715:12;:30;;;;:::i;:::-;:36;;;;:::i;:::-;14694:57;;14762:18;14831:3;14813:15;;14799:10;14784:12;:25;;;;:::i;:::-;14783:45;;;;:::i;:::-;:51;;;;:::i;:::-;14762:72;;14845:32;14859:4;14866:10;14845:5;:32::i;:::-;14888:28;14905:10;14888:16;:28::i;:::-;14683:241;;14632:292;:::o;16536:282::-;16692:7;16687:28;;16701:14;:12;:14::i;:::-;16726:44;16744:6;16752:9;16763:6;16726:17;:44::i;:::-;16786:7;16781:29;;16795:15;11813:17;;11801:9;:29;11851:15;;11841:7;:25;11757:117;20564:164;20606:7;20627:15;20644;20663:19;:17;:19::i;:::-;20626:56;;-1:-1:-1;20626:56:0;-1:-1:-1;20700:20:0;20626:56;;20700:11;:20::i;:::-;20693:27;;;;20564:164;:::o;2880:132::-;2938:7;2965:39;2969:1;2972;2965:39;;;;;;;;;;;;;;;;;:3;:39::i;11530:219::-;11577:9;;:14;:30;;;;-1:-1:-1;11595:7:0;;:12;11577:30;11573:43;;;11530:219::o;11573:43::-;11648:9;;;11628:17;:29;11686:7;;;11668:15;:25;-1:-1:-1;11706:13:0;;;;11730:11;11530:219::o;18922:615::-;19022:7;19044;19066;19088;19110;19132;19168:23;19193:12;19207:13;19237:40;19249:7;19258:9;;19269:7;;19237:11;:40::i;:::-;19167:110;;;;;;19288:19;19310:10;:8;:10::i;:::-;19288:32;;19332:15;19349:23;19374:12;19403:46;19415:7;19424:4;19430:5;19437:11;19403;:46::i;:::-;19331:118;;-1:-1:-1;19331:118:0;-1:-1:-1;19331:118:0;-1:-1:-1;19500:15:0;;-1:-1:-1;19517:4:0;;-1:-1:-1;19523:5:0;;-1:-1:-1;;;;;18922:615:0;;;;;;;:::o;2250:136::-;2308:7;2335:43;2339:1;2342;2335:43;;;;;;;;;;;;;;;;;:3;:43::i;2063:179::-;2121:7;;2153:5;2157:1;2153;:5;:::i;:::-;2141:17;;2182:1;2177;:6;;2169:46;;;;-1:-1:-1;;;2169:46:0;;12895:2:1;2169:46:0;;;12877:21:1;12934:2;12914:18;;;12907:30;12973:29;12953:18;;;12946:57;13020:18;;2169:46:0;12693:351:1;16826:610:0;16973:15;17003:23;17041:12;17068:23;17106:12;17133:13;17160:19;17171:7;17160:10;:19::i;:::-;-1:-1:-1;;;;;17208:15:0;;;;;;:7;:15;;;;;;16958:221;;-1:-1:-1;16958:221:0;;-1:-1:-1;16958:221:0;;-1:-1:-1;16958:221:0;-1:-1:-1;16958:221:0;-1:-1:-1;16958:221:0;-1:-1:-1;17208:28:0;;16958:221;17208:19;:28::i;:::-;-1:-1:-1;;;;;17190:15:0;;;;;;;:7;:15;;;;;;:46;;;;17268:18;;;;;;;:39;;17291:15;17268:22;:39::i;:::-;-1:-1:-1;;;;;17247:18:0;;;;;;:7;:18;;;;;:60;17318:16;17328:5;17318:9;:16::i;:::-;17345:23;17357:4;17363;17345:11;:23::i;:::-;17401:9;-1:-1:-1;;;;;17384:44:0;17393:6;-1:-1:-1;;;;;17384:44:0;;17412:15;17384:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;17384:44:0;;;;;;;;16947:489;;;;;;16826:610;;;:::o;20736:257::-;20834:7;;20787;;;;7201:20;20902;20834:7;7201:20;20902:11;:20::i;:::-;20892:7;:30;20888:61;;;-1:-1:-1;;20932:7:0;;;7201:20;;-1:-1:-1;20736:257:0;-1:-1:-1;20736:257:0:o;20888:61::-;20968:7;;20977;;-1:-1:-1;20736:257:0;-1:-1:-1;20736:257:0:o;3020:223::-;3140:7;3175:12;3168:5;3160:28;;;;-1:-1:-1;;;3160:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3199:9:0;3211:5;3215:1;3211;:5;:::i;19545:469::-;19714:7;;;;19808:30;19834:3;19808:21;:7;19820:8;19808:11;:21::i;:::-;:25;;:30::i;:::-;19793:45;-1:-1:-1;19849:13:0;19865:28;19889:3;19865:19;:7;19877:6;19865:11;:19::i;:28::-;19849:44;-1:-1:-1;19904:23:0;19930:28;19849:44;19930:17;:7;19942:4;19930:11;:17::i;:::-;:21;;:28::i;:::-;19904:54;19994:4;;-1:-1:-1;20000:5:0;;-1:-1:-1;19545:469:0;;-1:-1:-1;;;;;19545:469:0:o;20022:534::-;20216:7;;;;20313:24;:7;20325:11;20313;:24::i;:::-;20295:42;-1:-1:-1;20348:12:0;20363:21;:4;20372:11;20363:8;:21::i;:::-;20348:36;-1:-1:-1;20395:13:0;20411:22;:5;20421:11;20411:9;:22::i;:::-;20395:38;-1:-1:-1;20444:23:0;20470:28;20395:38;20470:17;:7;20482:4;20470:11;:17::i;:28::-;20517:7;;;;-1:-1:-1;20543:4:0;;-1:-1:-1;20022:534:0;;-1:-1:-1;;;;;;;20022:534:0:o;17952:211::-;18005:19;18027:10;:8;:10::i;:::-;18005:32;-1:-1:-1;18048:13:0;18064:22;:5;18005:32;18064:9;:22::i;:::-;18138:4;18122:22;;;;:7;:22;;;;;;18048:38;;-1:-1:-1;18122:33:0;;18048:38;18122:26;:33::i;:::-;18113:4;18097:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;17952:211:0:o;18171:147::-;18249:7;;:17;;18261:4;18249:11;:17::i;:::-;18239:7;:27;18290:10;;:20;;18305:4;18290:14;:20::i;:::-;18277:10;:33;-1:-1:-1;;18171:147:0:o;2626:246::-;2684:7;2708:1;2713;2708:6;2704:47;;-1:-1:-1;2738:1:0;2731:8;;2704:47;2761:9;2773:5;2777:1;2773;:5;:::i;:::-;2761:17;-1:-1:-1;2806:1:0;2797:5;2801:1;2761:17;2797:5;:::i;:::-;:10;2789:56;;;;-1:-1:-1;;;2789:56:0;;13251:2:1;2789:56:0;;;13233:21:1;13290:2;13270:18;;;13263:30;13329:34;13309:18;;;13302:62;-1:-1:-1;;;13380:18:1;;;13373:31;13421:19;;2789:56:0;13049:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2092:160::-;2157:20;;2213:13;;2206:21;2196:32;;2186:60;;2242:1;2239;2232:12;2186:60;2092:160;;;:::o;2257:315::-;2322:6;2330;2383:2;2371:9;2362:7;2358:23;2354:32;2351:52;;;2399:1;2396;2389:12;2351:52;2438:9;2425:23;2457:31;2482:5;2457:31;:::i;:::-;2507:5;-1:-1:-1;2531:35:1;2562:2;2547:18;;2531:35;:::i;:::-;2521:45;;2257:315;;;;;:::o;3198:180::-;3254:6;3307:2;3295:9;3286:7;3282:23;3278:32;3275:52;;;3323:1;3320;3313:12;3275:52;3346:26;3362:9;3346:26;:::i;3383:247::-;3442:6;3495:2;3483:9;3474:7;3470:23;3466:32;3463:52;;;3511:1;3508;3501:12;3463:52;3550:9;3537:23;3569:31;3594:5;3569:31;:::i;3635:180::-;3694:6;3747:2;3735:9;3726:7;3722:23;3718:32;3715:52;;;3763:1;3760;3753:12;3715:52;-1:-1:-1;3786:23:1;;3635:180;-1:-1:-1;3635:180:1:o;3820:385::-;3906:6;3914;3922;3930;3983:3;3971:9;3962:7;3958:23;3954:33;3951:53;;;4000:1;3997;3990:12;3951:53;-1:-1:-1;;4023:23:1;;;4093:2;4078:18;;4065:32;;-1:-1:-1;4144:2:1;4129:18;;4116:32;;4195:2;4180:18;4167:32;;-1:-1:-1;3820:385:1;-1:-1:-1;3820:385:1:o;4210:689::-;4302:6;4310;4318;4371:2;4359:9;4350:7;4346:23;4342:32;4339:52;;;4387:1;4384;4377:12;4339:52;4427:9;4414:23;4456:18;4497:2;4489:6;4486:14;4483:34;;;4513:1;4510;4503:12;4483:34;4551:6;4540:9;4536:22;4526:32;;4596:7;4589:4;4585:2;4581:13;4577:27;4567:55;;4618:1;4615;4608:12;4567:55;4658:2;4645:16;4684:2;4676:6;4673:14;4670:34;;;4700:1;4697;4690:12;4670:34;4755:7;4748:4;4738:6;4735:1;4731:14;4727:2;4723:23;4719:34;4716:47;4713:67;;;4776:1;4773;4766:12;4713:67;4807:4;4799:13;;;;-1:-1:-1;4831:6:1;-1:-1:-1;4856:37:1;;4872:20;;;-1:-1:-1;4856:37:1;:::i;:::-;4846:47;;4210:689;;;;;:::o;4904:388::-;4972:6;4980;5033:2;5021:9;5012:7;5008:23;5004:32;5001:52;;;5049:1;5046;5039:12;5001:52;5088:9;5075:23;5107:31;5132:5;5107:31;:::i;:::-;5157:5;-1:-1:-1;5214:2:1;5199:18;;5186:32;5227:33;5186:32;5227:33;:::i;:::-;5279:7;5269:17;;;4904:388;;;;;:::o;5297:356::-;5499:2;5481:21;;;5518:18;;;5511:30;5577:34;5572:2;5557:18;;5550:62;5644:2;5629:18;;5297:356::o;6009:127::-;6070:10;6065:3;6061:20;6058:1;6051:31;6101:4;6098:1;6091:15;6125:4;6122:1;6115:15;6141:168;6214:9;;;6245;;6262:15;;;6256:22;;6242:37;6232:71;;6283:18;;:::i;6314:217::-;6354:1;6380;6370:132;;6424:10;6419:3;6415:20;6412:1;6405:31;6459:4;6456:1;6449:15;6487:4;6484:1;6477:15;6370:132;-1:-1:-1;6516:9:1;;6314:217::o;6536:127::-;6597:10;6592:3;6588:20;6585:1;6578:31;6628:4;6625:1;6618:15;6652:4;6649:1;6642:15;6668:135;6707:3;6728:17;;;6725:43;;6748:18;;:::i;:::-;-1:-1:-1;6795:1:1;6784:13;;6668:135::o;10032:125::-;10097:9;;;10118:10;;;10115:36;;;10131:18;;:::i;10566:128::-;10633:9;;;10654:11;;;10651:37;;;10668:18;;:::i;11452:251::-;11522:6;11575:2;11563:9;11554:7;11550:23;11546:32;11543:52;;;11591:1;11588;11581:12;11543:52;11623:9;11617:16;11642:31;11667:5;11642:31;:::i;11708:980::-;11970:4;12018:3;12007:9;12003:19;12049:6;12038:9;12031:25;12075:2;12113:6;12108:2;12097:9;12093:18;12086:34;12156:3;12151:2;12140:9;12136:18;12129:31;12180:6;12215;12209:13;12246:6;12238;12231:22;12284:3;12273:9;12269:19;12262:26;;12323:2;12315:6;12311:15;12297:29;;12344:1;12354:195;12368:6;12365:1;12362:13;12354:195;;;12433:13;;-1:-1:-1;;;;;12429:39:1;12417:52;;12524:15;;;;12489:12;;;;12465:1;12383:9;12354:195;;;-1:-1:-1;;;;;;;12605:32:1;;;;12600:2;12585:18;;12578:60;-1:-1:-1;;;12669:3:1;12654:19;12647:35;12566:3;11708:980;-1:-1:-1;;;11708:980:1:o

Swarm Source

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