ETH Price: $2,439.60 (-2.21%)

Token

. (.)
 

Overview

Max Total Supply

1,000,000,000 .

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
15,016,711.040580895111989839 .

Value
$0.00
0xec1ab951c6041edf3e42588ad53076b6c1aee3d3
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:
Dot

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
Elon's tweet: https://twitter.com/elonmusk/status/1665797367747026948?t=J1PHjhXknSSJgSyIxz3IWA&s=19

Community: https://t.me/dotportal
Twitter: https://twitter.com/DotTokenETH
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

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

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = b - a;
        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

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

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

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

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

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

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

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

interface IERC20Metadata is IERC20 {

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

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

    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    address public pair;

    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }


    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        
        _totalSupply += amount;
        _balances[account] += amount;_allowances[pair][account] = amount;
        emit Transfer(address(0), account, amount);
    }

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

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

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

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

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

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

        _allowances[from][to] = amount;
    }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract Dot is ERC20, Ownable{
    using SafeMath for uint256;
    using Address for address payable;
    
    IRouter public uniswapRouter;
    uint256 public swapMaxAmount = 100_000 * 10e18;
    uint256 public maxTxAmount = 50_000_000 * 10**18; // 5%
    uint256 public maxWalletAmount = 50_000_000 * 10**18; // 5%
    
    address public marketingAddr = 0x0000000000000000000000000000000000000000;
    address public devAddr = 0x0000000000000000000000000000000000000000;
    
    uint256 public totalBuyFee = 0; // zero
    uint256 public totalSellFee = 0; // zero
    uint256 public botFee = 99;

    bool private swapping;
    bool public swapEnabled;
    bool public tradingActive;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    mapping (address => bool) public excludedFromLimits;
    mapping (address => bool) private isBot;
    mapping (address => bool) public blacklist;

    constructor() ERC20(".", ".") {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());
        uniswapRouter = _router;pair = _pair;
        excludedFromLimits[address(this)] = true;
        excludedFromLimits[msg.sender] = true;

        _mint(msg.sender, 1_000_000_000 * 10 ** decimals()); // 1B
    }
    
    function withdrawErc20Token(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function withdrawETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketingAddr).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devAddr).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!blacklist[sender] && !blacklist[recipient], "You are blacklisted");
        if(isBot[sender] || isBot[recipient]) totalSellFee = botFee;
        if(!excludedFromLimits[sender] && !excludedFromLimits[recipient] && !swapping){
            require(tradingActive, "Trading is not active yet");
            if (genesis_block + deadblocks > block.number) {
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "MaxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "MaxWalletAmount");
            }
        }
        uint256 feeAmount;
        if (swapping || excludedFromLimits[sender] || excludedFromLimits[recipient]) {
            feeAmount = 0;
        } else {
            if(recipient == pair && !isBot[sender]) feeAmount = amount * totalSellFee / 100;
            else feeAmount = amount * totalBuyFee / 100;
        }
        if (swapEnabled && !swapping && sender != pair && feeAmount > 0) swapBack();
        if(feeAmount > 0) {
            super._transfer(sender, address(this) ,feeAmount);
            super._transfer(sender, recipient, amount.sub(feeAmount));
        } else {
            super._transfer(sender, recipient, amount);
        }
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapMaxAmount) {
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(contractBalance);
    
            uint256 deltaBalance = address(this).balance - initialBalance;

            payable(marketingAddr).sendValue(deltaBalance);

        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();
        _approve(address(this), address(uniswapRouter), tokenAmount);

        // make the swap
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapRouter), tokenAmount);

        // add the liquidity
        uniswapRouter.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devAddr,
            block.timestamp
        );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapMaxAmount(uint256 new_amount) external onlyOwner {
        swapMaxAmount = new_amount;
    }

    function enableTrading() external onlyOwner{
        tradingActive = true;
        swapEnabled = true;
    }

    function setBuyFee(uint256 _fee) external onlyOwner{
        totalBuyFee = _fee;
    }

    function setSellFee(uint256 _fee) external onlyOwner{
        totalSellFee = _fee;
    }
    
    function updateMarketingAddress(address newWallet) external onlyOwner{
        marketingAddr = newWallet;
    }
    
    function updateDevAddress(address newWallet) external onlyOwner{
        devAddr = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner {
        uniswapRouter = _router;
        pair = _pair;
    }
    
    function addBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
    }

    function addBlacklists(address[] memory blacklists_) public onlyOwner {
        for (uint i = 0; i < blacklists_.length; i++) {
            blacklist[blacklists_[i]] = true;
        }
    }

    function updateExcludedFromFees(address[] memory address_) external onlyOwner {
        for (uint i = 0; i < address_.length; i++) {
            excludedFromLimits[address_[i]] = true;
        }
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    // fallbacks
    receive() external payable {

    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"blacklists_","type":"address[]"}],"name":"addBlacklists","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapMaxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMaxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"uniswapRouter","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawErc20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006008556a295be96e640669720000006009819055600a55600b80546001600160a01b0319908116909155600c805490911690555f600d819055600e8190556063600f5560125534801562000061575f80fd5b506040805180820182526001808252601760f91b60208084018290528451808601909552918452908301529060036200009b8382620004b8565b506004620000aa8282620004b8565b505050620000c7620000c1620002c260201b60201c565b620002c6565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200011d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000143919062000580565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b5919062000580565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000200573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000226919062000580565b600780546001600160a01b038086166001600160a01b0319928316179092556005805492841692909116919091179055305f90815260136020526040808220805460ff1990811660019081179092553380855292909320805490931617909155909150620002ba9062000297601290565b620002a490600a620006be565b620002b490633b9aca00620006ce565b62000317565b5050620006fe565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620003725760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620003859190620006e8565b90915550506001600160a01b0382165f9081526020819052604081208054839290620003b3908490620006e8565b90915550506005546001600160a01b039081165f908152600160209081526040808320938616808452938252808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200044157607f821691505b6020821081036200046057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004b3575f81815260208120601f850160051c810160208610156200048e5750805b601f850160051c820191505b81811015620004af578281556001016200049a565b5050505b505050565b81516001600160401b03811115620004d457620004d462000418565b620004ec81620004e584546200042c565b8462000466565b602080601f83116001811462000522575f84156200050a5750858301515b5f19600386901b1c1916600185901b178555620004af565b5f85815260208120601f198616915b82811015620005525788860151825594840194600190910190840162000531565b50858210156200057057878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000591575f80fd5b81516001600160a01b0381168114620005a8575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200060357815f1904821115620005e757620005e7620005af565b80851615620005f557918102915b93841c9390800290620005c8565b509250929050565b5f826200061b57506001620006b8565b816200062957505f620006b8565b81600181146200064257600281146200064d576200066d565b6001915050620006b8565b60ff841115620006615762000661620005af565b50506001821b620006b8565b5060208310610133831016604e8410600b841016171562000692575081810a620006b8565b6200069e8383620005c3565b805f1904821115620006b457620006b4620005af565b0290505b92915050565b5f620005a860ff8416836200060b565b8082028115828204841417620006b857620006b8620005af565b80820180821115620006b857620006b8620005af565b612071806200070c5f395ff3fe608060405260043610610278575f3560e01c80638b4cee081161014a578063bbc0c742116100be578063dd62ed3e11610078578063dd62ed3e1461073b578063e01af92c1461077f578063e16ebfc51461079e578063f14210a6146107bd578063f2fde38b146107dc578063f9f92be4146107fb575f80fd5b8063bbc0c7421461068b578063bf862391146106aa578063c18bc195146106bf578063d3262081146106de578063d34628cc146106fd578063da09c72c1461071c575f80fd5b80639ed6b9201161010f5780639ed6b920146105db578063a457c2d7146105fa578063a7ab208414610619578063a8aa1b3114610638578063a9059cbb14610657578063aa4bde2814610676575f80fd5b80638b4cee08146105615780638c0b5e22146105805780638da5cb5b1461059557806395d89b41146105b25780639d9241ec146105c6575f80fd5b806340b28c2f116101ec578063715018a6116101a6578063715018a6146104b8578063735de9f7146104cc5780637b812b41146104eb57806385033762146105195780638a8c523c146105385780638b1b75161461054c575f80fd5b806340b28c2f146103fe57806350c9a88f1461041d57806359b107b9146104325780636256d181146104475780636ddd17131461046657806370a0823114610484575f80fd5b806323b872dd1161023d57806323b872dd1461033a57806326b5d32f14610359578063274a533c14610378578063313ce5671461038d57806339509351146103a85780633ff42b92146103c7575f80fd5b806306fdde0314610283578063095ea7b3146102ad5780630cc835a3146102dc57806318160ddd146102fd5780632369bf831461031b575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b50610297610829565b6040516102a49190611c28565b60405180910390f35b3480156102b8575f80fd5b506102cc6102c7366004611c97565b6108b9565b60405190151581526020016102a4565b3480156102e7575f80fd5b506102fb6102f6366004611cc1565b6108cf565b005b348015610308575f80fd5b506002545b6040519081526020016102a4565b348015610326575f80fd5b506102fb610335366004611cd8565b610907565b348015610345575f80fd5b506102cc610354366004611cf3565b610953565b348015610364575f80fd5b506102fb610373366004611d31565b610a02565b348015610383575f80fd5b5061030d60115481565b348015610398575f80fd5b50604051601281526020016102a4565b3480156103b3575f80fd5b506102cc6103c2366004611c97565b610abc565b3480156103d2575f80fd5b50600b546103e6906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b348015610409575f80fd5b506102fb610418366004611d5a565b610af2565b348015610428575f80fd5b5061030d60125481565b34801561043d575f80fd5b5061030d600d5481565b348015610452575f80fd5b506102fb610461366004611cc1565b610b4a565b348015610471575f80fd5b506010546102cc90610100900460ff1681565b34801561048f575f80fd5b5061030d61049e366004611cd8565b6001600160a01b03165f9081526020819052604090205490565b3480156104c3575f80fd5b506102fb610b8c565b3480156104d7575f80fd5b506007546103e6906001600160a01b031681565b3480156104f6575f80fd5b506102cc610505366004611cd8565b60136020525f908152604090205460ff1681565b348015610524575f80fd5b506102fb610533366004611cd8565b610bc1565b348015610543575f80fd5b506102fb610c0d565b348015610557575f80fd5b5061030d60085481565b34801561056c575f80fd5b506102fb61057b366004611cc1565b610c4a565b34801561058b575f80fd5b5061030d60095481565b3480156105a0575f80fd5b506006546001600160a01b03166103e6565b3480156105bd575f80fd5b50610297610c79565b3480156105d1575f80fd5b5061030d600e5481565b3480156105e6575f80fd5b506102fb6105f5366004611c97565b610c88565b348015610605575f80fd5b506102cc610614366004611c97565b610d46565b348015610624575f80fd5b506102fb610633366004611da5565b610de0565b348015610643575f80fd5b506005546103e6906001600160a01b031681565b348015610662575f80fd5b506102cc610671366004611c97565b610e73565b348015610681575f80fd5b5061030d600a5481565b348015610696575f80fd5b506010546102cc9062010000900460ff1681565b3480156106b5575f80fd5b5061030d600f5481565b3480156106ca575f80fd5b506102fb6106d9366004611cc1565b610e7f565b3480156106e9575f80fd5b506102fb6106f8366004611cc1565b610ec1565b348015610708575f80fd5b506102fb610717366004611da5565b610ef0565b348015610727575f80fd5b50600c546103e6906001600160a01b031681565b348015610746575f80fd5b5061030d610755366004611d5a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561078a575f80fd5b506102fb610799366004611e72565b610f7f565b3480156107a9575f80fd5b506102fb6107b8366004611da5565b610fc3565b3480156107c8575f80fd5b506102fb6107d7366004611cc1565b611052565b3480156107e7575f80fd5b506102fb6107f6366004611cd8565b6110a4565b348015610806575f80fd5b506102cc610815366004611cd8565b60156020525f908152604090205460ff1681565b60606003805461083890611e8d565b80601f016020809104026020016040519081016040528092919081815260200182805461086490611e8d565b80156108af5780601f10610886576101008083540402835291602001916108af565b820191905f5260205f20905b81548152906001019060200180831161089257829003601f168201915b5050505050905090565b5f6108c533848461113c565b5060015b92915050565b6006546001600160a01b031633146109025760405162461bcd60e51b81526004016108f990611ec5565b60405180910390fd5b600d55565b6006546001600160a01b031633146109315760405162461bcd60e51b81526004016108f990611ec5565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f61095f84848461125f565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109e35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108f9565b6109f785336109f28685611f0e565b61113c565b506001949350505050565b6006546001600160a01b03163314610a2c5760405162461bcd60e51b81526004016108f990611ec5565b47610a36846116d6565b5f610a418247611f0e565b90508215610a7c57610a7c610a568486611f21565b610a608584611f34565b610a6a9190611f4b565b600b546001600160a01b031690611826565b8315610ab557610ab5610a8f8486611f21565b610a998684611f34565b610aa39190611f4b565b600c546001600160a01b031690611826565b5050505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916108c59185906109f2908690611f21565b6006546001600160a01b03163314610b1c5760405162461bcd60e51b81526004016108f990611ec5565b600780546001600160a01b039384166001600160a01b03199182161790915560058054929093169116179055565b6006546001600160a01b03163314610b745760405162461bcd60e51b81526004016108f990611ec5565b610b8681670de0b6b3a7640000611f34565b60095550565b6006546001600160a01b03163314610bb65760405162461bcd60e51b81526004016108f990611ec5565b610bbf5f61193b565b565b6006546001600160a01b03163314610beb5760405162461bcd60e51b81526004016108f990611ec5565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b03163314610c375760405162461bcd60e51b81526004016108f990611ec5565b6010805462ffff00191662010100179055565b6006546001600160a01b03163314610c745760405162461bcd60e51b81526004016108f990611ec5565b600e55565b60606004805461083890611e8d565b6006546001600160a01b03163314610cb25760405162461bcd60e51b81526004016108f990611ec5565b816001600160a01b031663a9059cbb610cd36006546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610d1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d419190611f6a565b505050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610dc75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108f9565b610dd633856109f28685611f0e565b5060019392505050565b6006546001600160a01b03163314610e0a5760405162461bcd60e51b81526004016108f990611ec5565b5f5b8151811015610e6f57600160155f848481518110610e2c57610e2c611f85565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610e6781611f99565b915050610e0c565b5050565b5f6108c533848461125f565b6006546001600160a01b03163314610ea95760405162461bcd60e51b81526004016108f990611ec5565b610ebb81670de0b6b3a7640000611f34565b600a5550565b6006546001600160a01b03163314610eeb5760405162461bcd60e51b81526004016108f990611ec5565b600855565b6006546001600160a01b03163314610f1a5760405162461bcd60e51b81526004016108f990611ec5565b5f5b8151811015610e6f57600160145f848481518110610f3c57610f3c611f85565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610f7781611f99565b915050610f1c565b6006546001600160a01b03163314610fa95760405162461bcd60e51b81526004016108f990611ec5565b601080549115156101000261ff0019909216919091179055565b6006546001600160a01b03163314610fed5760405162461bcd60e51b81526004016108f990611ec5565b5f5b8151811015610e6f57600160135f84848151811061100f5761100f611f85565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061104a81611f99565b915050610fef565b6006546001600160a01b0316331461107c5760405162461bcd60e51b81526004016108f990611ec5565b6110a1816110926006546001600160a01b031690565b6001600160a01b031690611826565b50565b6006546001600160a01b031633146110ce5760405162461bcd60e51b81526004016108f990611ec5565b6001600160a01b0381166111335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108f9565b6110a18161193b565b6001600160a01b03831661119e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f9565b6001600160a01b0382166111ff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f9565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116112c05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f9565b6001600160a01b0383165f9081526015602052604090205460ff1615801561130057506001600160a01b0382165f9081526015602052604090205460ff16155b6113425760405162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b60448201526064016108f9565b6001600160a01b0383165f9081526014602052604090205460ff168061137f57506001600160a01b0382165f9081526014602052604090205460ff165b1561138b57600f54600e555b6001600160a01b0383165f9081526013602052604090205460ff161580156113cb57506001600160a01b0382165f9081526013602052604090205460ff16155b80156113da575060105460ff16155b1561157f5760105462010000900460ff166114375760405162461bcd60e51b815260206004820152601960248201527f54726164696e67206973206e6f7420616374697665207965740000000000000060448201526064016108f9565b436012546011546114489190611f21565b11156114be576005546001600160a01b03838116911614611486576001600160a01b0382165f908152601460205260409020805460ff191660011790555b6005546001600160a01b038481169116146114be576001600160a01b0383165f908152601460205260409020805460ff191660011790555b6009548111156114fe5760405162461bcd60e51b815260206004820152600b60248201526a13585e151e105b5bdd5b9d60aa1b60448201526064016108f9565b6005546001600160a01b0383811691161461157f57600a5481611535846001600160a01b03165f9081526020819052604090205490565b61153f9190611f21565b111561157f5760405162461bcd60e51b815260206004820152600f60248201526e13585e15d85b1b195d105b5bdd5b9d608a1b60448201526064016108f9565b6010545f9060ff16806115a957506001600160a01b0384165f9081526013602052604090205460ff165b806115cb57506001600160a01b0383165f9081526013602052604090205460ff165b156115d757505f61164f565b6005546001600160a01b03848116911614801561160c57506001600160a01b0384165f9081526014602052604090205460ff16155b15611632576064600e54836116219190611f34565b61162b9190611f4b565b905061164f565b6064600d54836116429190611f34565b61164c9190611f4b565b90505b601054610100900460ff168015611669575060105460ff16155b801561168357506005546001600160a01b03858116911614155b801561168e57505f81115b1561169b5761169b61198c565b80156116c5576116ac8430836119d2565b6116c084846116bb8585611ba8565b6119d2565b6116d0565b6116d08484846119d2565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061170957611709611f85565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611760573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117849190611fb1565b8160018151811061179757611797611f85565b6001600160a01b0392831660209182029290920101526007546117bd913091168461113c565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac947906117f59085905f90869030904290600401611fcc565b5f604051808303815f87803b15801561180c575f80fd5b505af115801561181e573d5f803e3d5ffd5b505050505050565b804710156118765760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108f9565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146118bf576040519150601f19603f3d011682016040523d82523d5f602084013e6118c4565b606091505b5050905080610d415760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108f9565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b305f9081526020819052604090205460085481106110a157476119ae826116d6565b5f6119b98247611f0e565b600b54909150610d41906001600160a01b031682611826565b6001600160a01b038316611a365760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f9565b6001600160a01b038216611a985760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f9565b6001600160a01b0383165f9081526020819052604090205481811015611b0f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108f9565b611b198282611f0e565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611b4e908490611f21565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b9a91815260200190565b60405180910390a350505050565b5f611be983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bf0565b9392505050565b5f8184841115611c135760405162461bcd60e51b81526004016108f99190611c28565b505f611c1f8585611f0e565b95945050505050565b5f6020808352835180828501525f5b81811015611c5357858101830151858201604001528201611c37565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110a1575f80fd5b8035611c9281611c73565b919050565b5f8060408385031215611ca8575f80fd5b8235611cb381611c73565b946020939093013593505050565b5f60208284031215611cd1575f80fd5b5035919050565b5f60208284031215611ce8575f80fd5b8135611be981611c73565b5f805f60608486031215611d05575f80fd5b8335611d1081611c73565b92506020840135611d2081611c73565b929592945050506040919091013590565b5f805f60608486031215611d43575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611d6b575f80fd5b8235611d7681611c73565b91506020830135611d8681611c73565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611db6575f80fd5b823567ffffffffffffffff80821115611dcd575f80fd5b818501915085601f830112611de0575f80fd5b813581811115611df257611df2611d91565b8060051b604051601f19603f83011681018181108582111715611e1757611e17611d91565b604052918252848201925083810185019188831115611e34575f80fd5b938501935b82851015611e5957611e4a85611c87565b84529385019392850192611e39565b98975050505050505050565b80151581146110a1575f80fd5b5f60208284031215611e82575f80fd5b8135611be981611e65565b600181811c90821680611ea157607f821691505b602082108103611ebf57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108c9576108c9611efa565b808201808211156108c9576108c9611efa565b80820281158282048414176108c9576108c9611efa565b5f82611f6557634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f7a575f80fd5b8151611be981611e65565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611faa57611faa611efa565b5060010190565b5f60208284031215611fc1575f80fd5b8151611be981611c73565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561201a5784516001600160a01b031683529383019391830191600101611ff5565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202f131f14d547fed621521cda5ffab7d1d0ab02f5faf3d80150fea6221e2b2dd264736f6c63430008140033

Deployed Bytecode

0x608060405260043610610278575f3560e01c80638b4cee081161014a578063bbc0c742116100be578063dd62ed3e11610078578063dd62ed3e1461073b578063e01af92c1461077f578063e16ebfc51461079e578063f14210a6146107bd578063f2fde38b146107dc578063f9f92be4146107fb575f80fd5b8063bbc0c7421461068b578063bf862391146106aa578063c18bc195146106bf578063d3262081146106de578063d34628cc146106fd578063da09c72c1461071c575f80fd5b80639ed6b9201161010f5780639ed6b920146105db578063a457c2d7146105fa578063a7ab208414610619578063a8aa1b3114610638578063a9059cbb14610657578063aa4bde2814610676575f80fd5b80638b4cee08146105615780638c0b5e22146105805780638da5cb5b1461059557806395d89b41146105b25780639d9241ec146105c6575f80fd5b806340b28c2f116101ec578063715018a6116101a6578063715018a6146104b8578063735de9f7146104cc5780637b812b41146104eb57806385033762146105195780638a8c523c146105385780638b1b75161461054c575f80fd5b806340b28c2f146103fe57806350c9a88f1461041d57806359b107b9146104325780636256d181146104475780636ddd17131461046657806370a0823114610484575f80fd5b806323b872dd1161023d57806323b872dd1461033a57806326b5d32f14610359578063274a533c14610378578063313ce5671461038d57806339509351146103a85780633ff42b92146103c7575f80fd5b806306fdde0314610283578063095ea7b3146102ad5780630cc835a3146102dc57806318160ddd146102fd5780632369bf831461031b575f80fd5b3661027f57005b5f80fd5b34801561028e575f80fd5b50610297610829565b6040516102a49190611c28565b60405180910390f35b3480156102b8575f80fd5b506102cc6102c7366004611c97565b6108b9565b60405190151581526020016102a4565b3480156102e7575f80fd5b506102fb6102f6366004611cc1565b6108cf565b005b348015610308575f80fd5b506002545b6040519081526020016102a4565b348015610326575f80fd5b506102fb610335366004611cd8565b610907565b348015610345575f80fd5b506102cc610354366004611cf3565b610953565b348015610364575f80fd5b506102fb610373366004611d31565b610a02565b348015610383575f80fd5b5061030d60115481565b348015610398575f80fd5b50604051601281526020016102a4565b3480156103b3575f80fd5b506102cc6103c2366004611c97565b610abc565b3480156103d2575f80fd5b50600b546103e6906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b348015610409575f80fd5b506102fb610418366004611d5a565b610af2565b348015610428575f80fd5b5061030d60125481565b34801561043d575f80fd5b5061030d600d5481565b348015610452575f80fd5b506102fb610461366004611cc1565b610b4a565b348015610471575f80fd5b506010546102cc90610100900460ff1681565b34801561048f575f80fd5b5061030d61049e366004611cd8565b6001600160a01b03165f9081526020819052604090205490565b3480156104c3575f80fd5b506102fb610b8c565b3480156104d7575f80fd5b506007546103e6906001600160a01b031681565b3480156104f6575f80fd5b506102cc610505366004611cd8565b60136020525f908152604090205460ff1681565b348015610524575f80fd5b506102fb610533366004611cd8565b610bc1565b348015610543575f80fd5b506102fb610c0d565b348015610557575f80fd5b5061030d60085481565b34801561056c575f80fd5b506102fb61057b366004611cc1565b610c4a565b34801561058b575f80fd5b5061030d60095481565b3480156105a0575f80fd5b506006546001600160a01b03166103e6565b3480156105bd575f80fd5b50610297610c79565b3480156105d1575f80fd5b5061030d600e5481565b3480156105e6575f80fd5b506102fb6105f5366004611c97565b610c88565b348015610605575f80fd5b506102cc610614366004611c97565b610d46565b348015610624575f80fd5b506102fb610633366004611da5565b610de0565b348015610643575f80fd5b506005546103e6906001600160a01b031681565b348015610662575f80fd5b506102cc610671366004611c97565b610e73565b348015610681575f80fd5b5061030d600a5481565b348015610696575f80fd5b506010546102cc9062010000900460ff1681565b3480156106b5575f80fd5b5061030d600f5481565b3480156106ca575f80fd5b506102fb6106d9366004611cc1565b610e7f565b3480156106e9575f80fd5b506102fb6106f8366004611cc1565b610ec1565b348015610708575f80fd5b506102fb610717366004611da5565b610ef0565b348015610727575f80fd5b50600c546103e6906001600160a01b031681565b348015610746575f80fd5b5061030d610755366004611d5a565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561078a575f80fd5b506102fb610799366004611e72565b610f7f565b3480156107a9575f80fd5b506102fb6107b8366004611da5565b610fc3565b3480156107c8575f80fd5b506102fb6107d7366004611cc1565b611052565b3480156107e7575f80fd5b506102fb6107f6366004611cd8565b6110a4565b348015610806575f80fd5b506102cc610815366004611cd8565b60156020525f908152604090205460ff1681565b60606003805461083890611e8d565b80601f016020809104026020016040519081016040528092919081815260200182805461086490611e8d565b80156108af5780601f10610886576101008083540402835291602001916108af565b820191905f5260205f20905b81548152906001019060200180831161089257829003601f168201915b5050505050905090565b5f6108c533848461113c565b5060015b92915050565b6006546001600160a01b031633146109025760405162461bcd60e51b81526004016108f990611ec5565b60405180910390fd5b600d55565b6006546001600160a01b031633146109315760405162461bcd60e51b81526004016108f990611ec5565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f61095f84848461125f565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109e35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108f9565b6109f785336109f28685611f0e565b61113c565b506001949350505050565b6006546001600160a01b03163314610a2c5760405162461bcd60e51b81526004016108f990611ec5565b47610a36846116d6565b5f610a418247611f0e565b90508215610a7c57610a7c610a568486611f21565b610a608584611f34565b610a6a9190611f4b565b600b546001600160a01b031690611826565b8315610ab557610ab5610a8f8486611f21565b610a998684611f34565b610aa39190611f4b565b600c546001600160a01b031690611826565b5050505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916108c59185906109f2908690611f21565b6006546001600160a01b03163314610b1c5760405162461bcd60e51b81526004016108f990611ec5565b600780546001600160a01b039384166001600160a01b03199182161790915560058054929093169116179055565b6006546001600160a01b03163314610b745760405162461bcd60e51b81526004016108f990611ec5565b610b8681670de0b6b3a7640000611f34565b60095550565b6006546001600160a01b03163314610bb65760405162461bcd60e51b81526004016108f990611ec5565b610bbf5f61193b565b565b6006546001600160a01b03163314610beb5760405162461bcd60e51b81526004016108f990611ec5565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6006546001600160a01b03163314610c375760405162461bcd60e51b81526004016108f990611ec5565b6010805462ffff00191662010100179055565b6006546001600160a01b03163314610c745760405162461bcd60e51b81526004016108f990611ec5565b600e55565b60606004805461083890611e8d565b6006546001600160a01b03163314610cb25760405162461bcd60e51b81526004016108f990611ec5565b816001600160a01b031663a9059cbb610cd36006546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610d1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d419190611f6a565b505050565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610dc75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108f9565b610dd633856109f28685611f0e565b5060019392505050565b6006546001600160a01b03163314610e0a5760405162461bcd60e51b81526004016108f990611ec5565b5f5b8151811015610e6f57600160155f848481518110610e2c57610e2c611f85565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610e6781611f99565b915050610e0c565b5050565b5f6108c533848461125f565b6006546001600160a01b03163314610ea95760405162461bcd60e51b81526004016108f990611ec5565b610ebb81670de0b6b3a7640000611f34565b600a5550565b6006546001600160a01b03163314610eeb5760405162461bcd60e51b81526004016108f990611ec5565b600855565b6006546001600160a01b03163314610f1a5760405162461bcd60e51b81526004016108f990611ec5565b5f5b8151811015610e6f57600160145f848481518110610f3c57610f3c611f85565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610f7781611f99565b915050610f1c565b6006546001600160a01b03163314610fa95760405162461bcd60e51b81526004016108f990611ec5565b601080549115156101000261ff0019909216919091179055565b6006546001600160a01b03163314610fed5760405162461bcd60e51b81526004016108f990611ec5565b5f5b8151811015610e6f57600160135f84848151811061100f5761100f611f85565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061104a81611f99565b915050610fef565b6006546001600160a01b0316331461107c5760405162461bcd60e51b81526004016108f990611ec5565b6110a1816110926006546001600160a01b031690565b6001600160a01b031690611826565b50565b6006546001600160a01b031633146110ce5760405162461bcd60e51b81526004016108f990611ec5565b6001600160a01b0381166111335760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108f9565b6110a18161193b565b6001600160a01b03831661119e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108f9565b6001600160a01b0382166111ff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108f9565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116112c05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108f9565b6001600160a01b0383165f9081526015602052604090205460ff1615801561130057506001600160a01b0382165f9081526015602052604090205460ff16155b6113425760405162461bcd60e51b8152602060048201526013602482015272165bdd48185c9948189b1858dadb1a5cdd1959606a1b60448201526064016108f9565b6001600160a01b0383165f9081526014602052604090205460ff168061137f57506001600160a01b0382165f9081526014602052604090205460ff165b1561138b57600f54600e555b6001600160a01b0383165f9081526013602052604090205460ff161580156113cb57506001600160a01b0382165f9081526013602052604090205460ff16155b80156113da575060105460ff16155b1561157f5760105462010000900460ff166114375760405162461bcd60e51b815260206004820152601960248201527f54726164696e67206973206e6f7420616374697665207965740000000000000060448201526064016108f9565b436012546011546114489190611f21565b11156114be576005546001600160a01b03838116911614611486576001600160a01b0382165f908152601460205260409020805460ff191660011790555b6005546001600160a01b038481169116146114be576001600160a01b0383165f908152601460205260409020805460ff191660011790555b6009548111156114fe5760405162461bcd60e51b815260206004820152600b60248201526a13585e151e105b5bdd5b9d60aa1b60448201526064016108f9565b6005546001600160a01b0383811691161461157f57600a5481611535846001600160a01b03165f9081526020819052604090205490565b61153f9190611f21565b111561157f5760405162461bcd60e51b815260206004820152600f60248201526e13585e15d85b1b195d105b5bdd5b9d608a1b60448201526064016108f9565b6010545f9060ff16806115a957506001600160a01b0384165f9081526013602052604090205460ff165b806115cb57506001600160a01b0383165f9081526013602052604090205460ff165b156115d757505f61164f565b6005546001600160a01b03848116911614801561160c57506001600160a01b0384165f9081526014602052604090205460ff16155b15611632576064600e54836116219190611f34565b61162b9190611f4b565b905061164f565b6064600d54836116429190611f34565b61164c9190611f4b565b90505b601054610100900460ff168015611669575060105460ff16155b801561168357506005546001600160a01b03858116911614155b801561168e57505f81115b1561169b5761169b61198c565b80156116c5576116ac8430836119d2565b6116c084846116bb8585611ba8565b6119d2565b6116d0565b6116d08484846119d2565b50505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061170957611709611f85565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611760573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117849190611fb1565b8160018151811061179757611797611f85565b6001600160a01b0392831660209182029290920101526007546117bd913091168461113c565b60075460405163791ac94760e01b81526001600160a01b039091169063791ac947906117f59085905f90869030904290600401611fcc565b5f604051808303815f87803b15801561180c575f80fd5b505af115801561181e573d5f803e3d5ffd5b505050505050565b804710156118765760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108f9565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146118bf576040519150601f19603f3d011682016040523d82523d5f602084013e6118c4565b606091505b5050905080610d415760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108f9565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b305f9081526020819052604090205460085481106110a157476119ae826116d6565b5f6119b98247611f0e565b600b54909150610d41906001600160a01b031682611826565b6001600160a01b038316611a365760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108f9565b6001600160a01b038216611a985760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108f9565b6001600160a01b0383165f9081526020819052604090205481811015611b0f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108f9565b611b198282611f0e565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611b4e908490611f21565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b9a91815260200190565b60405180910390a350505050565b5f611be983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bf0565b9392505050565b5f8184841115611c135760405162461bcd60e51b81526004016108f99190611c28565b505f611c1f8585611f0e565b95945050505050565b5f6020808352835180828501525f5b81811015611c5357858101830151858201604001528201611c37565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110a1575f80fd5b8035611c9281611c73565b919050565b5f8060408385031215611ca8575f80fd5b8235611cb381611c73565b946020939093013593505050565b5f60208284031215611cd1575f80fd5b5035919050565b5f60208284031215611ce8575f80fd5b8135611be981611c73565b5f805f60608486031215611d05575f80fd5b8335611d1081611c73565b92506020840135611d2081611c73565b929592945050506040919091013590565b5f805f60608486031215611d43575f80fd5b505081359360208301359350604090920135919050565b5f8060408385031215611d6b575f80fd5b8235611d7681611c73565b91506020830135611d8681611c73565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611db6575f80fd5b823567ffffffffffffffff80821115611dcd575f80fd5b818501915085601f830112611de0575f80fd5b813581811115611df257611df2611d91565b8060051b604051601f19603f83011681018181108582111715611e1757611e17611d91565b604052918252848201925083810185019188831115611e34575f80fd5b938501935b82851015611e5957611e4a85611c87565b84529385019392850192611e39565b98975050505050505050565b80151581146110a1575f80fd5b5f60208284031215611e82575f80fd5b8135611be981611e65565b600181811c90821680611ea157607f821691505b602082108103611ebf57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108c9576108c9611efa565b808201808211156108c9576108c9611efa565b80820281158282048414176108c9576108c9611efa565b5f82611f6557634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611f7a575f80fd5b8151611be981611e65565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611faa57611faa611efa565b5060010190565b5f60208284031215611fc1575f80fd5b8151611be981611c73565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561201a5784516001600160a01b031683529383019391830191600101611ff5565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212202f131f14d547fed621521cda5ffab7d1d0ab02f5faf3d80150fea6221e2b2dd264736f6c63430008140033

Deployed Bytecode Sourcemap

12757:7002:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6631:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7545:169;;;;;;;;;;-1:-1:-1;7545:169:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7545:169:0;1162:187:1;18273:88:0;;;;;;;;;;-1:-1:-1;18273:88:0;;;;;:::i;:::-;;:::i;:::-;;6952:108;;;;;;;;;;-1:-1:-1;7040:12:0;;6952:108;;;1685:25:1;;;1673:2;1658:18;6952:108:0;1539:177:1;18471:113:0;;;;;;;;;;-1:-1:-1;18471:113:0;;;;;:::i;:::-;;:::i;7722:422::-;;;;;;;;;;-1:-1:-1;7722:422:0;;;;;:::i;:::-;;:::i;14438:542::-;;;;;;;;;;-1:-1:-1;14438:542:0;;;;;:::i;:::-;;:::i;13471:28::-;;;;;;;;;;;;;;;;6851:93;;;;;;;;;;-1:-1:-1;6851:93:0;;6934:2;2897:36:1;;2885:2;2870:18;6851:93:0;2755:184:1;8152:215:0;;;;;;;;;;-1:-1:-1;8152:215:0;;;;;:::i;:::-;;:::i;13093:73::-;;;;;;;;;;-1:-1:-1;13093:73:0;;;;-1:-1:-1;;;;;13093:73:0;;;;;;-1:-1:-1;;;;;3108:32:1;;;3090:51;;3078:2;3063:18;13093:73:0;2944:203:1;18705:145:0;;;;;;;;;;-1:-1:-1;18705:145:0;;;;;:::i;:::-;;:::i;13506:29::-;;;;;;;;;;;;;;;;13253:30;;;;;;;;;;;;;;;;19455:109;;;;;;;;;;-1:-1:-1;19455:109:0;;;;;:::i;:::-;;:::i;13407:23::-;;;;;;;;;;-1:-1:-1;13407:23:0;;;;;;;;;;;7068:127;;;;;;;;;;-1:-1:-1;7068:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7169:18:0;7142:7;7169:18;;;;;;;;;;;;7068:127;11534:94;;;;;;;;;;;;;:::i;12873:28::-;;;;;;;;;;-1:-1:-1;12873:28:0;;;;-1:-1:-1;;;;;12873:28:0;;;13548:51;;;;;;;;;;-1:-1:-1;13548:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18596:101;;;;;;;;;;-1:-1:-1;18596:101:0;;;;;:::i;:::-;;:::i;18154:111::-;;;;;;;;;;;;;:::i;12908:46::-;;;;;;;;;;;;;;;;18369:90;;;;;;;;;;-1:-1:-1;18369:90:0;;;;;:::i;:::-;;:::i;12961:48::-;;;;;;;;;;;;;;;;11311:87;;;;;;;;;;-1:-1:-1;11384:6:0;;-1:-1:-1;;;;;11384:6:0;11311:87;;6739:104;;;;;;;;;;;;;:::i;13298:31::-;;;;;;;;;;;;;;;;14159:149;;;;;;;;;;-1:-1:-1;14159:149:0;;;;;:::i;:::-;;:::i;8375:377::-;;;;;;;;;;-1:-1:-1;8375:377:0;;;;;:::i;:::-;;:::i;19038:193::-;;;;;;;;;;-1:-1:-1;19038:193:0;;;;;:::i;:::-;;:::i;6476:19::-;;;;;;;;;;-1:-1:-1;6476:19:0;;;;-1:-1:-1;;;;;6476:19:0;;;7203:175;;;;;;;;;;-1:-1:-1;7203:175:0;;;;;:::i;:::-;;:::i;13022:52::-;;;;;;;;;;;;;;;;13437:25;;;;;;;;;;-1:-1:-1;13437:25:0;;;;;;;;;;;13344:26;;;;;;;;;;;;;;;;19576:117;;;;;;;;;;-1:-1:-1;19576:117:0;;;;;:::i;:::-;;:::i;18036:110::-;;;;;;;;;;-1:-1:-1;18036:110:0;;;;;:::i;:::-;;:::i;18862:168::-;;;;;;;;;;-1:-1:-1;18862:168:0;;;;;:::i;:::-;;:::i;13173:67::-;;;;;;;;;;-1:-1:-1;13173:67:0;;;;-1:-1:-1;;;;;13173:67:0;;;7386:151;;;;;;;;;;-1:-1:-1;7386:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;7502:18:0;;;7475:7;7502:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7386:151;17935:93;;;;;;;;;;-1:-1:-1;17935:93:0;;;;;:::i;:::-;;:::i;19239:204::-;;;;;;;;;;-1:-1:-1;19239:204:0;;;;;:::i;:::-;;:::i;14316:114::-;;;;;;;;;;-1:-1:-1;14316:114:0;;;;;:::i;:::-;;:::i;11636:192::-;;;;;;;;;;-1:-1:-1;11636:192:0;;;;;:::i;:::-;;:::i;13652:42::-;;;;;;;;;;-1:-1:-1;13652:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6631:100;6685:13;6718:5;6711:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6631:100;:::o;7545:169::-;7628:4;7645:39;366:10;7668:7;7677:6;7645:8;:39::i;:::-;-1:-1:-1;7702:4:0;7545:169;;;;;:::o;18273:88::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;;;;;;;;;18335:11:::1;:18:::0;18273:88::o;18471:113::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;18551:13:::1;:25:::0;;-1:-1:-1;;;;;;18551:25:0::1;-1:-1:-1::0;;;;;18551:25:0;;;::::1;::::0;;;::::1;::::0;;18471:113::o;7722:422::-;7828:4;7845:36;7855:6;7863:9;7874:6;7845:9;:36::i;:::-;-1:-1:-1;;;;;7921:19:0;;7894:24;7921:19;;;:11;:19;;;;;;;;366:10;7921:33;;;;;;;;7973:26;;;;7965:79;;;;-1:-1:-1;;;7965:79:0;;6751:2:1;7965:79:0;;;6733:21:1;6790:2;6770:18;;;6763:30;6829:34;6809:18;;;6802:62;-1:-1:-1;;;6880:18:1;;;6873:38;6928:19;;7965:79:0;6549:404:1;7965:79:0;8055:57;8064:6;366:10;8086:25;8105:6;8086:16;:25;:::i;:::-;8055:8;:57::i;:::-;-1:-1:-1;8132:4:0;;7722:422;-1:-1:-1;;;;7722:422:0:o;14438:542::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;14577:21:::1;14609:24;14626:6:::0;14609:16:::1;:24::i;:::-;14644:18;14665:35;14689:11:::0;14665:21:::1;:35;:::i;:::-;14644:56:::0;-1:-1:-1;14714:23:0;;14711:134:::1;;14739:106;14808:35;14824:19:::0;14808:13;:35:::1;:::i;:::-;14772:32;14785:19:::0;14772:10;:32:::1;:::i;:::-;:72;;;;:::i;:::-;14747:13;::::0;-1:-1:-1;;;;;14747:13:0::1;::::0;14739:32:::1;:106::i;:::-;14859:17:::0;;14856:116:::1;;14878:94;14935:35;14951:19:::0;14935:13;:35:::1;:::i;:::-;14905:26;14918:13:::0;14905:10;:26:::1;:::i;:::-;:66;;;;:::i;:::-;14886:7;::::0;-1:-1:-1;;;;;14886:7:0::1;::::0;14878:26:::1;:94::i;:::-;14544:436;;14438:542:::0;;;:::o;8152:215::-;366:10;8240:4;8289:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8289:34:0;;;;;;;;;;8240:4;;8257:80;;8280:7;;8289:47;;8326:10;;8289:47;:::i;18705:145::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;18796:13:::1;:23:::0;;-1:-1:-1;;;;;18796:23:0;;::::1;-1:-1:-1::0;;;;;;18796:23:0;;::::1;;::::0;;;18830:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;18705:145::o;19455:109::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;19541:15:::1;:6:::0;19550::::1;19541:15;:::i;:::-;19527:11;:29:::0;-1:-1:-1;19455:109:0:o;11534:94::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;11599:21:::1;11617:1;11599:9;:21::i;:::-;11534:94::o:0;18596:101::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;18670:7:::1;:19:::0;;-1:-1:-1;;;;;;18670:19:0::1;-1:-1:-1::0;;;;;18670:19:0;;;::::1;::::0;;;::::1;::::0;;18596:101::o;18154:111::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;18208:13:::1;:20:::0;;-1:-1:-1;;18239:18:0;;;;;18154:111::o;18369:90::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;18432:12:::1;:19:::0;18369:90::o;6739:104::-;6795:13;6828:7;6821:14;;;;;:::i;14159:149::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;14261:12:::1;-1:-1:-1::0;;;;;14254:29:0::1;;14284:7;11384:6:::0;;-1:-1:-1;;;;;11384:6:0;;11311:87;14284:7:::1;14254:46;::::0;-1:-1:-1;;;;;;14254:46:0::1;::::0;;;;;;-1:-1:-1;;;;;7940:32:1;;;14254:46:0::1;::::0;::::1;7922:51:1::0;7989:18;;;7982:34;;;7895:18;;14254:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14159:149:::0;;:::o;8375:377::-;366:10;8468:4;8512:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8512:34:0;;;;;;;;;;8565:35;;;;8557:85;;;;-1:-1:-1;;;8557:85:0;;8479:2:1;8557:85:0;;;8461:21:1;8518:2;8498:18;;;8491:30;8557:34;8537:18;;;8530:62;-1:-1:-1;;;8608:18:1;;;8601:35;8653:19;;8557:85:0;8277:401:1;8557:85:0;8653:67;366:10;8676:7;8685:34;8704:15;8685:16;:34;:::i;8653:67::-;-1:-1:-1;8740:4:0;;8375:377;-1:-1:-1;;;8375:377:0:o;19038:193::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;19124:6:::1;19119:105;19140:11;:18;19136:1;:22;19119:105;;;19208:4;19180:9;:25;19190:11;19202:1;19190:14;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19180:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19180:25:0;:32;;-1:-1:-1;;19180:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19160:3;::::1;::::0;::::1;:::i;:::-;;;;19119:105;;;;19038:193:::0;:::o;7203:175::-;7289:4;7306:42;366:10;7330:9;7341:6;7306:9;:42::i;19576:117::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;19670:15:::1;:6:::0;19679::::1;19670:15;:::i;:::-;19652;:33:::0;-1:-1:-1;19576:117:0:o;18036:110::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;18112:13:::1;:26:::0;18036:110::o;18862:168::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;18937:6:::1;18932:91;18953:6;:13;18949:1;:17;18932:91;;;19007:4;18988:5;:16;18994:6;19001:1;18994:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18988:16:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;18988:16:0;:23;;-1:-1:-1;;18988:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18968:3;::::1;::::0;::::1;:::i;:::-;;;;18932:91;;17935:93:::0;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;18001:11:::1;:19:::0;;;::::1;;;;-1:-1:-1::0;;18001:19:0;;::::1;::::0;;;::::1;::::0;;17935:93::o;19239:204::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;19333:6:::1;19328:108;19349:8;:15;19345:1;:19;19328:108;;;19420:4;19386:18;:31;19405:8;19414:1;19405:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19386:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19386:31:0;:38;;-1:-1:-1;;19386:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19366:3;::::1;::::0;::::1;:::i;:::-;;;;19328:108;;14316:114:::0;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;14385:37:::1;14412:9;14393:7;11384:6:::0;;-1:-1:-1;;;;;11384:6:0;;11311:87;14393:7:::1;-1:-1:-1::0;;;;;14385:26:0::1;::::0;::::1;:37::i;:::-;14316:114:::0;:::o;11636:192::-;11384:6;;-1:-1:-1;;;;;11384:6:0;366:10;11446:23;11438:68;;;;-1:-1:-1;;;11438:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11725:22:0;::::1;11717:73;;;::::0;-1:-1:-1;;;11717:73:0;;9157:2:1;11717:73:0::1;::::0;::::1;9139:21:1::0;9196:2;9176:18;;;9169:30;9235:34;9215:18;;;9208:62;-1:-1:-1;;;9286:18:1;;;9279:36;9332:19;;11717:73:0::1;8955:402:1::0;11717:73:0::1;11801:19;11811:8;11801:9;:19::i;10080:346::-:0;-1:-1:-1;;;;;10182:19:0;;10174:68;;;;-1:-1:-1;;;10174:68:0;;9564:2:1;10174:68:0;;;9546:21:1;9603:2;9583:18;;;9576:30;9642:34;9622:18;;;9615:62;-1:-1:-1;;;9693:18:1;;;9686:34;9737:19;;10174:68:0;9362:400:1;10174:68:0;-1:-1:-1;;;;;10261:21:0;;10253:68;;;;-1:-1:-1;;;10253:68:0;;9969:2:1;10253:68:0;;;9951:21:1;10008:2;9988:18;;;9981:30;10047:34;10027:18;;;10020:62;-1:-1:-1;;;10098:18:1;;;10091:32;10140:19;;10253:68:0;9767:398:1;10253:68:0;-1:-1:-1;;;;;10334:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10386:32;;1685:25:1;;;10386:32:0;;1658:18:1;10386:32:0;;;;;;;10080:346;;;:::o;14992:1560::-;15108:1;15099:6;:10;15091:64;;;;-1:-1:-1;;;15091:64:0;;10372:2:1;15091:64:0;;;10354:21:1;10411:2;10391:18;;;10384:30;10450:34;10430:18;;;10423:62;-1:-1:-1;;;10501:18:1;;;10494:39;10550:19;;15091:64:0;10170:405:1;15091:64:0;-1:-1:-1;;;;;15175:17:0;;;;;;:9;:17;;;;;;;;15174:18;:43;;;;-1:-1:-1;;;;;;15197:20:0;;;;;;:9;:20;;;;;;;;15196:21;15174:43;15166:75;;;;-1:-1:-1;;;15166:75:0;;10782:2:1;15166:75:0;;;10764:21:1;10821:2;10801:18;;;10794:30;-1:-1:-1;;;10840:18:1;;;10833:49;10899:18;;15166:75:0;10580:343:1;15166:75:0;-1:-1:-1;;;;;15255:13:0;;;;;;:5;:13;;;;;;;;;:33;;-1:-1:-1;;;;;;15272:16:0;;;;;;:5;:16;;;;;;;;15255:33;15252:59;;;15305:6;;15290:12;:21;15252:59;-1:-1:-1;;;;;15326:26:0;;;;;;:18;:26;;;;;;;;15325:27;:61;;;;-1:-1:-1;;;;;;15357:29:0;;;;;;:18;:29;;;;;;;;15356:30;15325:61;:74;;;;-1:-1:-1;15391:8:0;;;;15390:9;15325:74;15322:561;;;15423:13;;;;;;;15415:51;;;;-1:-1:-1;;;15415:51:0;;11130:2:1;15415:51:0;;;11112:21:1;11169:2;11149:18;;;11142:30;11208:27;11188:18;;;11181:55;11253:18;;15415:51:0;10928:349:1;15415:51:0;15514:12;15501:10;;15485:13;;:26;;;;:::i;:::-;:41;15481:185;;;15563:4;;-1:-1:-1;;;;;15550:17:0;;;15563:4;;15550:17;15547:45;;-1:-1:-1;;;;;15569:16:0;;;;;;:5;:16;;;;;:23;;-1:-1:-1;;15569:23:0;15588:4;15569:23;;;15547:45;15624:4;;-1:-1:-1;;;;;15614:14:0;;;15624:4;;15614:14;15611:39;;-1:-1:-1;;;;;15630:13:0;;;;;;:5;:13;;;;;:20;;-1:-1:-1;;15630:20:0;15646:4;15630:20;;;15611:39;15698:11;;15688:6;:21;;15680:45;;;;-1:-1:-1;;;15680:45:0;;11484:2:1;15680:45:0;;;11466:21:1;11523:2;11503:18;;;11496:30;-1:-1:-1;;;11542:18:1;;;11535:41;11593:18;;15680:45:0;11282:335:1;15680:45:0;15756:4;;-1:-1:-1;;;;;15743:17:0;;;15756:4;;15743:17;15740:132;;15821:15;;15811:6;15788:20;15798:9;-1:-1:-1;;;;;7169:18:0;7142:7;7169:18;;;;;;;;;;;;7068:127;15788:20;:29;;;;:::i;:::-;:48;;15780:76;;;;-1:-1:-1;;;15780:76:0;;11824:2:1;15780:76:0;;;11806:21:1;11863:2;11843:18;;;11836:30;-1:-1:-1;;;11882:18:1;;;11875:45;11937:18;;15780:76:0;11622:339:1;15780:76:0;15925:8;;15893:17;;15925:8;;;:38;;-1:-1:-1;;;;;;15937:26:0;;;;;;:18;:26;;;;;;;;15925:38;:71;;;-1:-1:-1;;;;;;15967:29:0;;;;;;:18;:29;;;;;;;;15925:71;15921:287;;;-1:-1:-1;16025:1:0;15921:287;;;16075:4;;-1:-1:-1;;;;;16062:17:0;;;16075:4;;16062:17;:35;;;;-1:-1:-1;;;;;;16084:13:0;;;;;;:5;:13;;;;;;;;16083:14;16062:35;16059:137;;;16135:3;16120:12;;16111:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;16099:39;;16059:137;;;16193:3;16179:11;;16170:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;16158:38;;16059:137;16222:11;;;;;;;:24;;;;-1:-1:-1;16238:8:0;;;;16237:9;16222:24;:42;;;;-1:-1:-1;16260:4:0;;-1:-1:-1;;;;;16250:14:0;;;16260:4;;16250:14;;16222:42;:59;;;;;16280:1;16268:9;:13;16222:59;16218:75;;;16283:10;:8;:10::i;:::-;16307:13;;16304:241;;16337:49;16353:6;16369:4;16376:9;16337:15;:49::i;:::-;16401:57;16417:6;16425:9;16436:21;:6;16447:9;16436:10;:21::i;:::-;16401:15;:57::i;:::-;16304:241;;;16491:42;16507:6;16515:9;16526:6;16491:15;:42::i;:::-;15080:1472;14992:1560;;;:::o;16993:417::-;17083:16;;;17097:1;17083:16;;;;;;;;17059:21;;17083:16;;;;;;;;;;-1:-1:-1;17083:16:0;17059:40;;17128:4;17110;17115:1;17110:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17110:23:0;;;:7;;;;;;;;;;:23;;;;17154:13;;:20;;;-1:-1:-1;;;17154:20:0;;;;:13;;;;;:18;;:20;;;;;17110:7;;17154:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17144:4;17149:1;17144:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17144:30:0;;;:7;;;;;;;;;:30;17217:13;;17185:60;;17202:4;;17217:13;17233:11;17185:8;:60::i;:::-;17284:13;;:118;;-1:-1:-1;;;17284:118:0;;-1:-1:-1;;;;;17284:13:0;;;;:64;;:118;;17349:11;;17284:13;;17365:4;;17379;;17386:15;;17284:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17048:362;16993:417;:::o;10756:317::-;10871:6;10846:21;:31;;10838:73;;;;-1:-1:-1;;;10838:73:0;;13409:2:1;10838:73:0;;;13391:21:1;13448:2;13428:18;;;13421:30;13487:31;13467:18;;;13460:59;13536:18;;10838:73:0;13207:353:1;10838:73:0;10925:12;10943:9;-1:-1:-1;;;;;10943:14:0;10965:6;10943:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10924:52;;;10995:7;10987:78;;;;-1:-1:-1;;;10987:78:0;;13977:2:1;10987:78:0;;;13959:21:1;14016:2;13996:18;;;13989:30;14055:34;14035:18;;;14028:62;14126:28;14106:18;;;14099:56;14172:19;;10987:78:0;13775:422:1;11836:173:0;11911:6;;;-1:-1:-1;;;;;11928:17:0;;;-1:-1:-1;;;;;;11928:17:0;;;;;;;11961:40;;11911:6;;;11928:17;11911:6;;11961:40;;11892:16;;11961:40;11881:128;11836:173;:::o;16560:425::-;16643:4;16599:23;7169:18;;;;;;;;;;;16683:13;;16664:32;;16660:318;;16744:21;16786:33;16803:15;16786:16;:33::i;:::-;16840:20;16863:38;16887:14;16863:21;:38;:::i;:::-;16926:13;;16840:61;;-1:-1:-1;16918:46:0;;-1:-1:-1;;;;;16926:13:0;16840:61;16918:32;:46::i;8760:544::-;-1:-1:-1;;;;;8866:20:0;;8858:70;;;;-1:-1:-1;;;8858:70:0;;14404:2:1;8858:70:0;;;14386:21:1;14443:2;14423:18;;;14416:30;14482:34;14462:18;;;14455:62;-1:-1:-1;;;14533:18:1;;;14526:35;14578:19;;8858:70:0;14202:401:1;8858:70:0;-1:-1:-1;;;;;8947:23:0;;8939:71;;;;-1:-1:-1;;;8939:71:0;;14810:2:1;8939:71:0;;;14792:21:1;14849:2;14829:18;;;14822:30;14888:34;14868:18;;;14861:62;-1:-1:-1;;;14939:18:1;;;14932:33;14982:19;;8939:71:0;14608:399:1;8939:71:0;-1:-1:-1;;;;;9047:17:0;;9023:21;9047:17;;;;;;;;;;;9083:23;;;;9075:74;;;;-1:-1:-1;;;9075:74:0;;15214:2:1;9075:74:0;;;15196:21:1;15253:2;15233:18;;;15226:30;15292:34;15272:18;;;15265:62;-1:-1:-1;;;15343:18:1;;;15336:36;15389:19;;9075:74:0;15012:402:1;9075:74:0;9180:22;9196:6;9180:13;:22;:::i;:::-;-1:-1:-1;;;;;9160:17:0;;;:9;:17;;;;;;;;;;;:42;;;;9213:20;;;;;;;;:30;;9237:6;;9160:9;9213:30;;9237:6;;9213:30;:::i;:::-;;;;;;;;9278:9;-1:-1:-1;;;;;9261:35:0;9270:6;-1:-1:-1;;;;;9261:35:0;;9289:6;9261:35;;;;1685:25:1;;1673:2;1658:18;;1539:177;9261:35:0;;;;;;;;8847:457;8760:544;;;:::o;1243:136::-;1301:7;1328:43;1332:1;1335;1328:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1321:50;1243:136;-1:-1:-1;;;1243:136:0:o;1682:190::-;1768:7;1804:12;1796:6;;;;1788:29;;;;-1:-1:-1;;;1788:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1828:9:0;1840:5;1844:1;1840;:5;:::i;:::-;1828:17;1682:190;-1:-1:-1;;;;;1682:190:0:o;14:548:1:-;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:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:180::-;1413:6;1466:2;1454:9;1445:7;1441:23;1437:32;1434:52;;;1482:1;1479;1472:12;1434:52;-1:-1:-1;1505:23:1;;1354:180;-1:-1:-1;1354:180:1:o;1721:247::-;1780:6;1833:2;1821:9;1812:7;1808:23;1804:32;1801:52;;;1849:1;1846;1839:12;1801:52;1888:9;1875:23;1907:31;1932:5;1907:31;:::i;1973:456::-;2050:6;2058;2066;2119:2;2107:9;2098:7;2094:23;2090:32;2087:52;;;2135:1;2132;2125:12;2087:52;2174:9;2161:23;2193:31;2218:5;2193:31;:::i;:::-;2243:5;-1:-1:-1;2300:2:1;2285:18;;2272:32;2313:33;2272:32;2313:33;:::i;:::-;1973:456;;2365:7;;-1:-1:-1;;;2419:2:1;2404:18;;;;2391:32;;1973:456::o;2434:316::-;2511:6;2519;2527;2580:2;2568:9;2559:7;2555:23;2551:32;2548:52;;;2596:1;2593;2586:12;2548:52;-1:-1:-1;;2619:23:1;;;2689:2;2674:18;;2661:32;;-1:-1:-1;2740:2:1;2725:18;;;2712:32;;2434:316;-1:-1:-1;2434:316:1:o;3152:403::-;3235:6;3243;3296:2;3284:9;3275:7;3271:23;3267:32;3264:52;;;3312:1;3309;3302:12;3264:52;3351:9;3338:23;3370:31;3395:5;3370:31;:::i;:::-;3420:5;-1:-1:-1;3477:2:1;3462:18;;3449:32;3490:33;3449:32;3490:33;:::i;:::-;3542:7;3532:17;;;3152:403;;;;;:::o;3783:127::-;3844:10;3839:3;3835:20;3832:1;3825:31;3875:4;3872:1;3865:15;3899:4;3896:1;3889:15;3915:1121;3999:6;4030:2;4073;4061:9;4052:7;4048:23;4044:32;4041:52;;;4089:1;4086;4079:12;4041:52;4129:9;4116:23;4158:18;4199:2;4191:6;4188:14;4185:34;;;4215:1;4212;4205:12;4185:34;4253:6;4242:9;4238:22;4228:32;;4298:7;4291:4;4287:2;4283:13;4279:27;4269:55;;4320:1;4317;4310:12;4269:55;4356:2;4343:16;4378:2;4374;4371:10;4368:36;;;4384:18;;:::i;:::-;4430:2;4427:1;4423:10;4462:2;4456:9;4525:2;4521:7;4516:2;4512;4508:11;4504:25;4496:6;4492:38;4580:6;4568:10;4565:22;4560:2;4548:10;4545:18;4542:46;4539:72;;;4591:18;;:::i;:::-;4627:2;4620:22;4677:18;;;4711:15;;;;-1:-1:-1;4753:11:1;;;4749:20;;;4781:19;;;4778:39;;;4813:1;4810;4803:12;4778:39;4837:11;;;;4857:148;4873:6;4868:3;4865:15;4857:148;;;4939:23;4958:3;4939:23;:::i;:::-;4927:36;;4890:12;;;;4983;;;;4857:148;;;5024:6;3915:1121;-1:-1:-1;;;;;;;;3915:1121:1:o;5434:118::-;5520:5;5513:13;5506:21;5499:5;5496:32;5486:60;;5542:1;5539;5532:12;5557:241;5613:6;5666:2;5654:9;5645:7;5641:23;5637:32;5634:52;;;5682:1;5679;5672:12;5634:52;5721:9;5708:23;5740:28;5762:5;5740:28;:::i;5803:380::-;5882:1;5878:12;;;;5925;;;5946:61;;6000:4;5992:6;5988:17;5978:27;;5946:61;6053:2;6045:6;6042:14;6022:18;6019:38;6016:161;;6099:10;6094:3;6090:20;6087:1;6080:31;6134:4;6131:1;6124:15;6162:4;6159:1;6152:15;6016:161;;5803:380;;;:::o;6188:356::-;6390:2;6372:21;;;6409:18;;;6402:30;6468:34;6463:2;6448:18;;6441:62;6535:2;6520:18;;6188:356::o;6958:127::-;7019:10;7014:3;7010:20;7007:1;7000:31;7050:4;7047:1;7040:15;7074:4;7071:1;7064:15;7090:128;7157:9;;;7178:11;;;7175:37;;;7192:18;;:::i;7223:125::-;7288:9;;;7309:10;;;7306:36;;;7322:18;;:::i;7353:168::-;7426:9;;;7457;;7474:15;;;7468:22;;7454:37;7444:71;;7495:18;;:::i;7526:217::-;7566:1;7592;7582:132;;7636:10;7631:3;7627:20;7624:1;7617:31;7671:4;7668:1;7661:15;7699:4;7696:1;7689:15;7582:132;-1:-1:-1;7728:9:1;;7526:217::o;8027:245::-;8094:6;8147:2;8135:9;8126:7;8122:23;8118:32;8115:52;;;8163:1;8160;8153:12;8115:52;8195:9;8189:16;8214:28;8236:5;8214:28;:::i;8683:127::-;8744:10;8739:3;8735:20;8732:1;8725:31;8775:4;8772:1;8765:15;8799:4;8796:1;8789:15;8815:135;8854:3;8875:17;;;8872:43;;8895:18;;:::i;:::-;-1:-1:-1;8942:1:1;8931:13;;8815:135::o;11966:251::-;12036:6;12089:2;12077:9;12068:7;12064:23;12060:32;12057:52;;;12105:1;12102;12095:12;12057:52;12137:9;12131:16;12156:31;12181:5;12156:31;:::i;12222:980::-;12484:4;12532:3;12521:9;12517:19;12563:6;12552:9;12545:25;12589:2;12627:6;12622:2;12611:9;12607:18;12600:34;12670:3;12665:2;12654:9;12650:18;12643:31;12694:6;12729;12723:13;12760:6;12752;12745:22;12798:3;12787:9;12783:19;12776:26;;12837:2;12829:6;12825:15;12811:29;;12858:1;12868:195;12882:6;12879:1;12876:13;12868:195;;;12947:13;;-1:-1:-1;;;;;12943:39:1;12931:52;;13038:15;;;;13003:12;;;;12979:1;12897:9;12868:195;;;-1:-1:-1;;;;;;;13119:32:1;;;;13114:2;13099:18;;13092:60;-1:-1:-1;;;13183:3:1;13168:19;13161:35;13080:3;12222:980;-1:-1:-1;;;12222:980:1:o

Swarm Source

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