ETH Price: $2,671.61 (+0.66%)
Gas: 8 Gwei

Token

ElonCrypt (ECX)
 

Overview

Max Total Supply

100,000,000 ECX

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 ECX

Value
$0.00
0x65da3b7b1fbee3e37560d7685bee8505b793fe21
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:
ELONCRYPT

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-09
*/

/**
name: ElonCrypt
SYB: ECX
tax: 7/7
https://twitter.com/ElonCrypt
https://t.me/ElonCryptPortal
🔒 Liquidity LOCKED 🔒
💜 Contract Renounced 💜
✅ 100% SAFE project ✅
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address internal _owner;
    address private _previousOwner;
    uint256 public _lockTime;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    //Locks the contract for owner for the amount of time provided
    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = time;
        emit OwnershipTransferred(_owner, address(0));
    }
    
    //Unlocks the contract for owner when _lockTime is exceeds
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock.");
        require(block.timestamp > _lockTime , "Contract is locked.");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract ELONCRYPT is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "ElonCrypt";
    string private constant _symbol = "ECX";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 7;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 7;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
    address payable private _developmentAddress = payable(0x46fc20F7FF599582EB990FdF68480B20754a843e); 
    address payable private _marketingAddress = payable(0xBf37A56eD42b525b03851a81e2E28BFE48D931cA);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 public _maxWalletSize = _tTotal.mul(2).div(100); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(1).div(1000);
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount.mul(6).div(7));
        _developmentAddress.transfer(amount.mul(1).div(7));
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 0, "Buy rewards must be between 0% and 0%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 7, "Buy tax must be between 0% and 7%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 0, "Sell rewards must be between 0% and 0%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 7, "Sell tax must be between 0% and 7%");

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

    }
 
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    function setMaxTxnAmount(uint256 amountPercent) public onlyOwner {
        _maxTxAmount = (_tTotal * amountPercent ) / 100;
    }

    function setMaxWalletSize(uint256 amountPercent) public onlyOwner {
        _maxWalletSize = (_tTotal * amountPercent ) / 100;
    }

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a67016345785d8a000060001962000523565b620000289060001962000550565b600790815560006009819055600a829055600b819055600c829055600d819055600e829055600f55601055601380546001600160a01b03199081167346fc20f7ff599582eb990fdf68480b20754a843e179091556014805490911673bf37a56ed42b525b03851a81e2e28bfe48d931ca1790556016805461ffff60a81b1916600160b01b179055620000ed6064620000d967016345785d8a0000600262000f49620003f0602090811b91909117901c565b6200048760201b62000fd21790919060201c565b601755620001196064620000d9600267016345785d8a0000620003f060201b62000f491790919060201c565b601855620001466103e8620000d9600167016345785d8a0000620003f060201b62000f491790919060201c565b6019553480156200015657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526003602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000214573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023a91906200056a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000288573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ae91906200056a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032291906200056a565b601680546001600160a01b0319166001600160a01b03928316179055600080548216815260066020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620003e191815260200190565b60405180910390a35062000626565b600082600003620004045750600062000481565b600062000412838562000595565b905082620004218583620005b7565b146200047e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200047e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004d160201b60201c565b60008183620004f55760405162461bcd60e51b8152600401620004759190620005ce565b506000620005048486620005b7565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b6000826200053557620005356200050d565b500690565b634e487b7160e01b600052601160045260246000fd5b6000828210156200056557620005656200053a565b500390565b6000602082840312156200057d57600080fd5b81516001600160a01b03811681146200047e57600080fd5b6000816000190483118215151615620005b257620005b26200053a565b500290565b600082620005c957620005c96200050d565b500490565b600060208083528351808285015260005b81811015620005fd57858101830151858201604001528201620005df565b8181111562000610576000604083870101525b50601f01601f1916929092016040019392505050565b61223180620006366000396000f3fe6080604052600436106101fc5760003560e01c80637d1db4a51161010d578063a69df4b5116100a0578063c492f0461161006f578063c492f046146105bf578063dd467064146105df578063dd62ed3e146105ff578063ea1644d514610645578063f2fde38b1461066557600080fd5b8063a69df4b514610545578063a9059cbb1461055a578063bfd792841461057a578063c3c8cd80146105aa57600080fd5b80638f9a55c0116100dc5780638f9a55c0146104c357806395d89b41146104d957806398a5c31514610505578063a2a957bb1461052557600080fd5b80637d1db4a5146104425780637f2feddc146104585780638da5cb5b146104855780638f70ccf7146104a357600080fd5b806349bd5a5e1161019057806370a082311161015f57806370a08231146103c2578063715018a6146103e257806374010ece146103f7578063751039fc1461041757806379af25a61461042c57600080fd5b806349bd5a5e1461034d5780636b9990531461036d5780636d8aa8f81461038d5780636fc3eaec146103ad57600080fd5b806318160ddd116101cc57806318160ddd146102d657806323b872dd146102fb5780632fd689e31461031b578063313ce5671461033157600080fd5b8062b8cf2a1461020857806306fdde031461022a578063095ea7b31461026e5780631694505e1461029e57600080fd5b3661020357005b600080fd5b34801561021457600080fd5b50610228610223366004611d64565b610685565b005b34801561023657600080fd5b50604080518082019091526009815268115b1bdb90dc9e5c1d60ba1b60208201525b6040516102659190611e29565b60405180910390f35b34801561027a57600080fd5b5061028e610289366004611e7e565b610724565b6040519015158152602001610265565b3480156102aa57600080fd5b506015546102be906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b3480156102e257600080fd5b5067016345785d8a00005b604051908152602001610265565b34801561030757600080fd5b5061028e610316366004611eaa565b61073b565b34801561032757600080fd5b506102ed60195481565b34801561033d57600080fd5b5060405160098152602001610265565b34801561035957600080fd5b506016546102be906001600160a01b031681565b34801561037957600080fd5b50610228610388366004611eeb565b6107a4565b34801561039957600080fd5b506102286103a8366004611f18565b6107ef565b3480156103b957600080fd5b50610228610837565b3480156103ce57600080fd5b506102ed6103dd366004611eeb565b610882565b3480156103ee57600080fd5b506102286108a4565b34801561040357600080fd5b50610228610412366004611f33565b610906565b34801561042357600080fd5b50610228610954565b34801561043857600080fd5b506102ed60025481565b34801561044e57600080fd5b506102ed60175481565b34801561046457600080fd5b506102ed610473366004611eeb565b60126020526000908152604090205481565b34801561049157600080fd5b506000546001600160a01b03166102be565b3480156104af57600080fd5b506102286104be366004611f18565b610991565b3480156104cf57600080fd5b506102ed60185481565b3480156104e557600080fd5b5060408051808201909152600381526208a86b60eb1b6020820152610258565b34801561051157600080fd5b50610228610520366004611f33565b6109d9565b34801561053157600080fd5b50610228610540366004611f4c565b610a08565b34801561055157600080fd5b50610228610bb6565b34801561056657600080fd5b5061028e610575366004611e7e565b610cb2565b34801561058657600080fd5b5061028e610595366004611eeb565b60116020526000908152604090205460ff1681565b3480156105b657600080fd5b50610228610cbf565b3480156105cb57600080fd5b506102286105da366004611f7e565b610d13565b3480156105eb57600080fd5b506102286105fa366004611f33565b610db4565b34801561060b57600080fd5b506102ed61061a366004612002565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561065157600080fd5b50610228610660366004611f33565b610e23565b34801561067157600080fd5b50610228610680366004611eeb565b610e71565b6000546001600160a01b031633146106b85760405162461bcd60e51b81526004016106af9061203b565b60405180910390fd5b60005b8151811015610720576001601160008484815181106106dc576106dc612070565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107188161209c565b9150506106bb565b5050565b6000610731338484611014565b5060015b92915050565b6000610748848484611138565b61079a8433610795856040518060600160405280602881526020016121b4602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611674565b611014565b5060019392505050565b6000546001600160a01b031633146107ce5760405162461bcd60e51b81526004016106af9061203b565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146108195760405162461bcd60e51b81526004016106af9061203b565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061086c57506014546001600160a01b0316336001600160a01b0316145b61087557600080fd5b4761087f816116ae565b50565b6001600160a01b03811660009081526003602052604081205461073590611743565b6000546001600160a01b031633146108ce5760405162461bcd60e51b81526004016106af9061203b565b600080546040516001600160a01b03909116906000805160206121dc833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109305760405162461bcd60e51b81526004016106af9061203b565b60646109448267016345785d8a00006120b5565b61094e91906120d4565b60175550565b6000546001600160a01b0316331461097e5760405162461bcd60e51b81526004016106af9061203b565b67016345785d8a00006017819055601855565b6000546001600160a01b031633146109bb5760405162461bcd60e51b81526004016106af9061203b565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a035760405162461bcd60e51b81526004016106af9061203b565b601955565b6000546001600160a01b03163314610a325760405162461bcd60e51b81526004016106af9061203b565b8315610a8e5760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420302560d81b60648201526084016106af565b6007821115610ae95760405162461bcd60e51b815260206004820152602160248201527f42757920746178206d757374206265206265747765656e20302520616e6420376044820152602560f81b60648201526084016106af565b8215610b465760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420302560d01b60648201526084016106af565b6007811115610ba25760405162461bcd60e51b815260206004820152602260248201527f53656c6c20746178206d757374206265206265747765656e20302520616e6420604482015261372560f01b60648201526084016106af565b600993909355600b91909155600a55600c55565b6001546001600160a01b03163314610c1c5760405162461bcd60e51b8152602060048201526024808201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60448201526337b1b59760e11b60648201526084016106af565b6002544211610c635760405162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903637b1b5b2b21760691b60448201526064016106af565b600154600080546040516001600160a01b0393841693909116916000805160206121dc83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610731338484611138565b6013546001600160a01b0316336001600160a01b03161480610cf457506014546001600160a01b0316336001600160a01b0316145b610cfd57600080fd5b6000610d0830610882565b905061087f816117c0565b6000546001600160a01b03163314610d3d5760405162461bcd60e51b81526004016106af9061203b565b60005b82811015610dae578160066000868685818110610d5f57610d5f612070565b9050602002016020810190610d749190611eeb565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610da68161209c565b915050610d40565b50505050565b6000546001600160a01b03163314610dde5760405162461bcd60e51b81526004016106af9061203b565b60008054600180546001600160a01b03199081166001600160a01b03841617909155168155600282905560405181906000805160206121dc833981519152908290a350565b6000546001600160a01b03163314610e4d5760405162461bcd60e51b81526004016106af9061203b565b6064610e618267016345785d8a00006120b5565b610e6b91906120d4565b60185550565b6000546001600160a01b03163314610e9b5760405162461bcd60e51b81526004016106af9061203b565b6001600160a01b038116610f005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106af565b600080546040516001600160a01b03808516939216916000805160206121dc83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610f5b57506000610735565b6000610f6783856120b5565b905082610f7485836120d4565b14610fcb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106af565b9392505050565b6000610fcb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061193a565b6001600160a01b0383166110765760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106af565b6001600160a01b0382166110d75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106af565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661119c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106af565b6001600160a01b0382166111fe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106af565b600081116112605760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106af565b6000546001600160a01b0384811691161480159061128c57506000546001600160a01b03838116911614155b1561156d57601654600160a01b900460ff16611325576000546001600160a01b038481169116146113255760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106af565b6017548111156113775760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106af565b6001600160a01b03831660009081526011602052604090205460ff161580156113b957506001600160a01b03821660009081526011602052604090205460ff16155b6114115760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106af565b6016546001600160a01b03838116911614611496576018548161143384610882565b61143d91906120f6565b106114965760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106af565b60006114a130610882565b6019546017549192508210159082106114ba5760175491505b8080156114d15750601654600160a81b900460ff16155b80156114eb57506016546001600160a01b03868116911614155b80156115005750601654600160b01b900460ff165b801561152557506001600160a01b03851660009081526006602052604090205460ff16155b801561154a57506001600160a01b03841660009081526006602052604090205460ff16155b1561156a57611558826117c0565b47801561156857611568476116ae565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff16806115af57506001600160a01b03831660009081526006602052604090205460ff165b806115e157506016546001600160a01b038581169116148015906115e157506016546001600160a01b03848116911614155b156115ee57506000611668565b6016546001600160a01b03858116911614801561161957506015546001600160a01b03848116911614155b1561162b57600954600d55600a54600e555b6016546001600160a01b03848116911614801561165657506015546001600160a01b03858116911614155b1561166857600b54600d55600c54600e555b610dae84848484611968565b600081848411156116985760405162461bcd60e51b81526004016106af9190611e29565b5060006116a5848661210e565b95945050505050565b6014546001600160a01b03166108fc6116d360076116cd856006610f49565b90610fd2565b6040518115909202916000818181858888f193505050501580156116fb573d6000803e3d6000fd5b506013546001600160a01b03166108fc61171b60076116cd856001610f49565b6040518115909202916000818181858888f19350505050158015610720573d6000803e3d6000fd5b60006007548211156117aa5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106af565b60006117b4611996565b9050610fcb8382610fd2565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061180857611808612070565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611861573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118859190612125565b8160018151811061189857611898612070565b6001600160a01b0392831660209182029290920101526015546118be9130911684611014565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906118f7908590600090869030904290600401612142565b600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6000818361195b5760405162461bcd60e51b81526004016106af9190611e29565b5060006116a584866120d4565b80611975576119756119b9565b6119808484846119e7565b80610dae57610dae600f54600d55601054600e55565b60008060006119a3611ade565b90925090506119b28282610fd2565b9250505090565b600d541580156119c95750600e54155b156119d057565b600d8054600f55600e805460105560009182905555565b6000806000806000806119f987611b1e565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611a2b9087611b7b565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054611a5a9086611bbd565b6001600160a01b038916600090815260036020526040902055611a7c81611c1c565b611a868483611c66565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611acb91815260200190565b60405180910390a3505050505050505050565b600754600090819067016345785d8a0000611af98282610fd2565b821015611b155750506007549267016345785d8a000092509050565b90939092509050565b6000806000806000806000806000611b3b8a600d54600e54611c8a565b9250925092506000611b4b611996565b90506000806000611b5e8e878787611cd9565b919e509c509a509598509396509194505050505091939550919395565b6000610fcb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611674565b600080611bca83856120f6565b905083811015610fcb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106af565b6000611c26611996565b90506000611c348383610f49565b30600090815260036020526040902054909150611c519082611bbd565b30600090815260036020526040902055505050565b600754611c739083611b7b565b600755600854611c839082611bbd565b6008555050565b6000808080611c9e60646116cd8989610f49565b90506000611cb160646116cd8a89610f49565b90506000611cc982611cc38b86611b7b565b90611b7b565b9992985090965090945050505050565b6000808080611ce88886610f49565b90506000611cf68887610f49565b90506000611d048888610f49565b90506000611d1682611cc38686611b7b565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461087f57600080fd5b8035611d5f81611d3f565b919050565b60006020808385031215611d7757600080fd5b823567ffffffffffffffff80821115611d8f57600080fd5b818501915085601f830112611da357600080fd5b813581811115611db557611db5611d29565b8060051b604051601f19603f83011681018181108582111715611dda57611dda611d29565b604052918252848201925083810185019188831115611df857600080fd5b938501935b82851015611e1d57611e0e85611d54565b84529385019392850192611dfd565b98975050505050505050565b600060208083528351808285015260005b81811015611e5657858101830151858201604001528201611e3a565b81811115611e68576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611e9157600080fd5b8235611e9c81611d3f565b946020939093013593505050565b600080600060608486031215611ebf57600080fd5b8335611eca81611d3f565b92506020840135611eda81611d3f565b929592945050506040919091013590565b600060208284031215611efd57600080fd5b8135610fcb81611d3f565b80358015158114611d5f57600080fd5b600060208284031215611f2a57600080fd5b610fcb82611f08565b600060208284031215611f4557600080fd5b5035919050565b60008060008060808587031215611f6257600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611f9357600080fd5b833567ffffffffffffffff80821115611fab57600080fd5b818601915086601f830112611fbf57600080fd5b813581811115611fce57600080fd5b8760208260051b8501011115611fe357600080fd5b602092830195509350611ff99186019050611f08565b90509250925092565b6000806040838503121561201557600080fd5b823561202081611d3f565b9150602083013561203081611d3f565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016120ae576120ae612086565b5060010190565b60008160001904831182151516156120cf576120cf612086565b500290565b6000826120f157634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561210957612109612086565b500190565b60008282101561212057612120612086565b500390565b60006020828403121561213757600080fd5b8151610fcb81611d3f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121925784516001600160a01b03168352938301939183019160010161216d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220a2854ea1a9bb6fa845532b79f210eaa1decfc83801d3fbaf8312edddade638fa64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101fc5760003560e01c80637d1db4a51161010d578063a69df4b5116100a0578063c492f0461161006f578063c492f046146105bf578063dd467064146105df578063dd62ed3e146105ff578063ea1644d514610645578063f2fde38b1461066557600080fd5b8063a69df4b514610545578063a9059cbb1461055a578063bfd792841461057a578063c3c8cd80146105aa57600080fd5b80638f9a55c0116100dc5780638f9a55c0146104c357806395d89b41146104d957806398a5c31514610505578063a2a957bb1461052557600080fd5b80637d1db4a5146104425780637f2feddc146104585780638da5cb5b146104855780638f70ccf7146104a357600080fd5b806349bd5a5e1161019057806370a082311161015f57806370a08231146103c2578063715018a6146103e257806374010ece146103f7578063751039fc1461041757806379af25a61461042c57600080fd5b806349bd5a5e1461034d5780636b9990531461036d5780636d8aa8f81461038d5780636fc3eaec146103ad57600080fd5b806318160ddd116101cc57806318160ddd146102d657806323b872dd146102fb5780632fd689e31461031b578063313ce5671461033157600080fd5b8062b8cf2a1461020857806306fdde031461022a578063095ea7b31461026e5780631694505e1461029e57600080fd5b3661020357005b600080fd5b34801561021457600080fd5b50610228610223366004611d64565b610685565b005b34801561023657600080fd5b50604080518082019091526009815268115b1bdb90dc9e5c1d60ba1b60208201525b6040516102659190611e29565b60405180910390f35b34801561027a57600080fd5b5061028e610289366004611e7e565b610724565b6040519015158152602001610265565b3480156102aa57600080fd5b506015546102be906001600160a01b031681565b6040516001600160a01b039091168152602001610265565b3480156102e257600080fd5b5067016345785d8a00005b604051908152602001610265565b34801561030757600080fd5b5061028e610316366004611eaa565b61073b565b34801561032757600080fd5b506102ed60195481565b34801561033d57600080fd5b5060405160098152602001610265565b34801561035957600080fd5b506016546102be906001600160a01b031681565b34801561037957600080fd5b50610228610388366004611eeb565b6107a4565b34801561039957600080fd5b506102286103a8366004611f18565b6107ef565b3480156103b957600080fd5b50610228610837565b3480156103ce57600080fd5b506102ed6103dd366004611eeb565b610882565b3480156103ee57600080fd5b506102286108a4565b34801561040357600080fd5b50610228610412366004611f33565b610906565b34801561042357600080fd5b50610228610954565b34801561043857600080fd5b506102ed60025481565b34801561044e57600080fd5b506102ed60175481565b34801561046457600080fd5b506102ed610473366004611eeb565b60126020526000908152604090205481565b34801561049157600080fd5b506000546001600160a01b03166102be565b3480156104af57600080fd5b506102286104be366004611f18565b610991565b3480156104cf57600080fd5b506102ed60185481565b3480156104e557600080fd5b5060408051808201909152600381526208a86b60eb1b6020820152610258565b34801561051157600080fd5b50610228610520366004611f33565b6109d9565b34801561053157600080fd5b50610228610540366004611f4c565b610a08565b34801561055157600080fd5b50610228610bb6565b34801561056657600080fd5b5061028e610575366004611e7e565b610cb2565b34801561058657600080fd5b5061028e610595366004611eeb565b60116020526000908152604090205460ff1681565b3480156105b657600080fd5b50610228610cbf565b3480156105cb57600080fd5b506102286105da366004611f7e565b610d13565b3480156105eb57600080fd5b506102286105fa366004611f33565b610db4565b34801561060b57600080fd5b506102ed61061a366004612002565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561065157600080fd5b50610228610660366004611f33565b610e23565b34801561067157600080fd5b50610228610680366004611eeb565b610e71565b6000546001600160a01b031633146106b85760405162461bcd60e51b81526004016106af9061203b565b60405180910390fd5b60005b8151811015610720576001601160008484815181106106dc576106dc612070565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107188161209c565b9150506106bb565b5050565b6000610731338484611014565b5060015b92915050565b6000610748848484611138565b61079a8433610795856040518060600160405280602881526020016121b4602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190611674565b611014565b5060019392505050565b6000546001600160a01b031633146107ce5760405162461bcd60e51b81526004016106af9061203b565b6001600160a01b03166000908152601160205260409020805460ff19169055565b6000546001600160a01b031633146108195760405162461bcd60e51b81526004016106af9061203b565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061086c57506014546001600160a01b0316336001600160a01b0316145b61087557600080fd5b4761087f816116ae565b50565b6001600160a01b03811660009081526003602052604081205461073590611743565b6000546001600160a01b031633146108ce5760405162461bcd60e51b81526004016106af9061203b565b600080546040516001600160a01b03909116906000805160206121dc833981519152908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109305760405162461bcd60e51b81526004016106af9061203b565b60646109448267016345785d8a00006120b5565b61094e91906120d4565b60175550565b6000546001600160a01b0316331461097e5760405162461bcd60e51b81526004016106af9061203b565b67016345785d8a00006017819055601855565b6000546001600160a01b031633146109bb5760405162461bcd60e51b81526004016106af9061203b565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a035760405162461bcd60e51b81526004016106af9061203b565b601955565b6000546001600160a01b03163314610a325760405162461bcd60e51b81526004016106af9061203b565b8315610a8e5760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420302560d81b60648201526084016106af565b6007821115610ae95760405162461bcd60e51b815260206004820152602160248201527f42757920746178206d757374206265206265747765656e20302520616e6420376044820152602560f81b60648201526084016106af565b8215610b465760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420302560d01b60648201526084016106af565b6007811115610ba25760405162461bcd60e51b815260206004820152602260248201527f53656c6c20746178206d757374206265206265747765656e20302520616e6420604482015261372560f01b60648201526084016106af565b600993909355600b91909155600a55600c55565b6001546001600160a01b03163314610c1c5760405162461bcd60e51b8152602060048201526024808201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60448201526337b1b59760e11b60648201526084016106af565b6002544211610c635760405162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903637b1b5b2b21760691b60448201526064016106af565b600154600080546040516001600160a01b0393841693909116916000805160206121dc83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610731338484611138565b6013546001600160a01b0316336001600160a01b03161480610cf457506014546001600160a01b0316336001600160a01b0316145b610cfd57600080fd5b6000610d0830610882565b905061087f816117c0565b6000546001600160a01b03163314610d3d5760405162461bcd60e51b81526004016106af9061203b565b60005b82811015610dae578160066000868685818110610d5f57610d5f612070565b9050602002016020810190610d749190611eeb565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610da68161209c565b915050610d40565b50505050565b6000546001600160a01b03163314610dde5760405162461bcd60e51b81526004016106af9061203b565b60008054600180546001600160a01b03199081166001600160a01b03841617909155168155600282905560405181906000805160206121dc833981519152908290a350565b6000546001600160a01b03163314610e4d5760405162461bcd60e51b81526004016106af9061203b565b6064610e618267016345785d8a00006120b5565b610e6b91906120d4565b60185550565b6000546001600160a01b03163314610e9b5760405162461bcd60e51b81526004016106af9061203b565b6001600160a01b038116610f005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106af565b600080546040516001600160a01b03808516939216916000805160206121dc83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082600003610f5b57506000610735565b6000610f6783856120b5565b905082610f7485836120d4565b14610fcb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106af565b9392505050565b6000610fcb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061193a565b6001600160a01b0383166110765760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106af565b6001600160a01b0382166110d75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106af565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661119c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106af565b6001600160a01b0382166111fe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106af565b600081116112605760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106af565b6000546001600160a01b0384811691161480159061128c57506000546001600160a01b03838116911614155b1561156d57601654600160a01b900460ff16611325576000546001600160a01b038481169116146113255760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106af565b6017548111156113775760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106af565b6001600160a01b03831660009081526011602052604090205460ff161580156113b957506001600160a01b03821660009081526011602052604090205460ff16155b6114115760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106af565b6016546001600160a01b03838116911614611496576018548161143384610882565b61143d91906120f6565b106114965760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106af565b60006114a130610882565b6019546017549192508210159082106114ba5760175491505b8080156114d15750601654600160a81b900460ff16155b80156114eb57506016546001600160a01b03868116911614155b80156115005750601654600160b01b900460ff165b801561152557506001600160a01b03851660009081526006602052604090205460ff16155b801561154a57506001600160a01b03841660009081526006602052604090205460ff16155b1561156a57611558826117c0565b47801561156857611568476116ae565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff16806115af57506001600160a01b03831660009081526006602052604090205460ff165b806115e157506016546001600160a01b038581169116148015906115e157506016546001600160a01b03848116911614155b156115ee57506000611668565b6016546001600160a01b03858116911614801561161957506015546001600160a01b03848116911614155b1561162b57600954600d55600a54600e555b6016546001600160a01b03848116911614801561165657506015546001600160a01b03858116911614155b1561166857600b54600d55600c54600e555b610dae84848484611968565b600081848411156116985760405162461bcd60e51b81526004016106af9190611e29565b5060006116a5848661210e565b95945050505050565b6014546001600160a01b03166108fc6116d360076116cd856006610f49565b90610fd2565b6040518115909202916000818181858888f193505050501580156116fb573d6000803e3d6000fd5b506013546001600160a01b03166108fc61171b60076116cd856001610f49565b6040518115909202916000818181858888f19350505050158015610720573d6000803e3d6000fd5b60006007548211156117aa5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106af565b60006117b4611996565b9050610fcb8382610fd2565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061180857611808612070565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611861573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118859190612125565b8160018151811061189857611898612070565b6001600160a01b0392831660209182029290920101526015546118be9130911684611014565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906118f7908590600090869030904290600401612142565b600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b6000818361195b5760405162461bcd60e51b81526004016106af9190611e29565b5060006116a584866120d4565b80611975576119756119b9565b6119808484846119e7565b80610dae57610dae600f54600d55601054600e55565b60008060006119a3611ade565b90925090506119b28282610fd2565b9250505090565b600d541580156119c95750600e54155b156119d057565b600d8054600f55600e805460105560009182905555565b6000806000806000806119f987611b1e565b6001600160a01b038f16600090815260036020526040902054959b50939950919750955093509150611a2b9087611b7b565b6001600160a01b03808b1660009081526003602052604080822093909355908a1681522054611a5a9086611bbd565b6001600160a01b038916600090815260036020526040902055611a7c81611c1c565b611a868483611c66565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611acb91815260200190565b60405180910390a3505050505050505050565b600754600090819067016345785d8a0000611af98282610fd2565b821015611b155750506007549267016345785d8a000092509050565b90939092509050565b6000806000806000806000806000611b3b8a600d54600e54611c8a565b9250925092506000611b4b611996565b90506000806000611b5e8e878787611cd9565b919e509c509a509598509396509194505050505091939550919395565b6000610fcb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611674565b600080611bca83856120f6565b905083811015610fcb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106af565b6000611c26611996565b90506000611c348383610f49565b30600090815260036020526040902054909150611c519082611bbd565b30600090815260036020526040902055505050565b600754611c739083611b7b565b600755600854611c839082611bbd565b6008555050565b6000808080611c9e60646116cd8989610f49565b90506000611cb160646116cd8a89610f49565b90506000611cc982611cc38b86611b7b565b90611b7b565b9992985090965090945050505050565b6000808080611ce88886610f49565b90506000611cf68887610f49565b90506000611d048888610f49565b90506000611d1682611cc38686611b7b565b939b939a50919850919650505050505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461087f57600080fd5b8035611d5f81611d3f565b919050565b60006020808385031215611d7757600080fd5b823567ffffffffffffffff80821115611d8f57600080fd5b818501915085601f830112611da357600080fd5b813581811115611db557611db5611d29565b8060051b604051601f19603f83011681018181108582111715611dda57611dda611d29565b604052918252848201925083810185019188831115611df857600080fd5b938501935b82851015611e1d57611e0e85611d54565b84529385019392850192611dfd565b98975050505050505050565b600060208083528351808285015260005b81811015611e5657858101830151858201604001528201611e3a565b81811115611e68576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611e9157600080fd5b8235611e9c81611d3f565b946020939093013593505050565b600080600060608486031215611ebf57600080fd5b8335611eca81611d3f565b92506020840135611eda81611d3f565b929592945050506040919091013590565b600060208284031215611efd57600080fd5b8135610fcb81611d3f565b80358015158114611d5f57600080fd5b600060208284031215611f2a57600080fd5b610fcb82611f08565b600060208284031215611f4557600080fd5b5035919050565b60008060008060808587031215611f6257600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611f9357600080fd5b833567ffffffffffffffff80821115611fab57600080fd5b818601915086601f830112611fbf57600080fd5b813581811115611fce57600080fd5b8760208260051b8501011115611fe357600080fd5b602092830195509350611ff99186019050611f08565b90509250925092565b6000806040838503121561201557600080fd5b823561202081611d3f565b9150602083013561203081611d3f565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016120ae576120ae612086565b5060010190565b60008160001904831182151516156120cf576120cf612086565b500290565b6000826120f157634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561210957612109612086565b500190565b60008282101561212057612120612086565b500390565b60006020828403121561213757600080fd5b8151610fcb81611d3f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156121925784516001600160a01b03168352938301939183019160010161216d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220a2854ea1a9bb6fa845532b79f210eaa1decfc83801d3fbaf8312edddade638fa64736f6c634300080f0033

Deployed Bytecode Sourcemap

4965:14110:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13785:169;;;;;;;;;;-1:-1:-1;13785:169:0;;;;;:::i;:::-;;:::i;:::-;;7504:83;;;;;;;;;;-1:-1:-1;7574:5:0;;;;;;;;;;;;-1:-1:-1;;;7574:5:0;;;;7504:83;;;;;;;:::i;:::-;;;;;;;;8436:193;;;;;;;;;;-1:-1:-1;8436:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;8436:193:0;2469:187:1;6321:41:0;;;;;;;;;;-1:-1:-1;6321:41:0;;;;-1:-1:-1;;;;;6321:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;6321:41:0;2661:229:1;7784:95:0;;;;;;;;;;-1:-1:-1;5516:17:0;7784:95;;;3041:25:1;;;3029:2;3014:18;7784:95:0;2895:177:1;8638:446:0;;;;;;;;;;-1:-1:-1;8638:446:0;;;;;:::i;:::-;;:::i;6636:61::-;;;;;;;;;;;;;;;;7692:83;;;;;;;;;;-1:-1:-1;7692:83:0;;5189:1;3680:36:1;;3668:2;3653:18;7692:83:0;3538:184:1;6369:28:0;;;;;;;;;;-1:-1:-1;6369:28:0;;;;-1:-1:-1;;;;;6369:28:0;;;13963:92;;;;;;;;;;-1:-1:-1;13963:92:0;;;;;:::i;:::-;;:::i;18318:101::-;;;;;;;;;;-1:-1:-1;18318:101:0;;;;;:::i;:::-;;:::i;13541:235::-;;;;;;;;;;;;;:::i;7888:138::-;;;;;;;;;;-1:-1:-1;7888:138:0;;;;;:::i;:::-;;:::i;2439:148::-;;;;;;;;;;;;;:::i;18428:131::-;;;;;;;;;;-1:-1:-1;18428:131:0;;;;;:::i;:::-;;:::i;18709:118::-;;;;;;;;;;;;;:::i;1258:24::-;;;;;;;;;;;;;;;;6513:53;;;;;;;;;;;;;;;;6060:43;;;;;;;;;;-1:-1:-1;6060:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1569:79;;;;;;;;;;-1:-1:-1;1607:7:0;1634:6;-1:-1:-1;;;;;1634:6:0;1569:79;;13186:101;;;;;;;;;;-1:-1:-1;13186:101:0;;;;;:::i;:::-;;:::i;6573:55::-;;;;;;;;;;;;;;;;7596:87;;;;;;;;;;-1:-1:-1;7668:7:0;;;;;;;;;;;;-1:-1:-1;;;7668:7:0;;;;7596:87;;18170:139;;;;;;;;;;-1:-1:-1;18170:139:0;;;;;:::i;:::-;;:::i;17472:689::-;;;;;;;;;;-1:-1:-1;17472:689:0;;;;;:::i;:::-;;:::i;2136:294::-;;;;;;;;;;;;;:::i;8035:199::-;;;;;;;;;;-1:-1:-1;8035:199:0;;;;;:::i;:::-;;:::i;6022:36::-;;;;;;;;;;-1:-1:-1;6022:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13296:236;;;;;;;;;;;;;:::i;18836:234::-;;;;;;;;;;-1:-1:-1;18836:234:0;;;;;:::i;:::-;;:::i;1852:208::-;;;;;;;;;;-1:-1:-1;1852:208:0;;;;;:::i;:::-;;:::i;8243:184::-;;;;;;;;;;-1:-1:-1;8243:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8392:18:0;;;8360:7;8392:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8243:184;18567:134;;;;;;;;;;-1:-1:-1;18567:134:0;;;;;:::i;:::-;;:::i;2596:244::-;;;;;;;;;;-1:-1:-1;2596:244:0;;;;;:::i;:::-;;:::i;13785:169::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;;;;;;;;;13861:9:::1;13856:91;13880:5;:12;13876:1;:16;13856:91;;;13931:4;13914;:14;13919:5;13925:1;13919:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13914:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13914:14:0;:21;;-1:-1:-1;;13914:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13894:3;::::1;::::0;::::1;:::i;:::-;;;;13856:91;;;;13785:169:::0;:::o;8436:193::-;8538:4;8560:39;366:10;8583:7;8592:6;8560:8;:39::i;:::-;-1:-1:-1;8617:4:0;8436:193;;;;;:::o;8638:446::-;8770:4;8787:36;8797:6;8805:9;8816:6;8787:9;:36::i;:::-;8834:220;8857:6;366:10;8905:138;8961:6;8905:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8905:19:0;;;;;;:11;:19;;;;;;;;366:10;8905:33;;;;;;;;;;:37;:138::i;:::-;8834:8;:220::i;:::-;-1:-1:-1;9072:4:0;8638:446;;;;;:::o;13963:92::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14027:12:0::1;14042:5;14027:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;14027:20:0::1;::::0;;13963:92::o;18318:101::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;18385:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18385:26:0::1;-1:-1:-1::0;;;;18385:26:0;;::::1;::::0;;;::::1;::::0;;18318:101::o;13541:235::-;13607:19;;-1:-1:-1;;;;;13607:19:0;366:10;-1:-1:-1;;;;;13591:35:0;;:72;;;-1:-1:-1;13646:17:0;;-1:-1:-1;;;;;13646:17:0;366:10;-1:-1:-1;;;;;13630:33:0;;13591:72;13583:81;;;;;;13704:21;13736:32;13704:21;13736:12;:32::i;:::-;13572:204;13541:235::o;7888:138::-;-1:-1:-1;;;;;8001:16:0;;7954:7;8001:16;;;:7;:16;;;;;;7981:37;;:19;:37::i;2439:148::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;2546:1:::1;2530:6:::0;;2509:40:::1;::::0;-1:-1:-1;;;;;2530:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;2509:40:0;2546:1;;2509:40:::1;2577:1;2560:19:::0;;-1:-1:-1;;;;;;2560:19:0::1;::::0;;2439:148::o;18428:131::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;18548:3:::1;18520:23;18530:13:::0;5516:17:::1;18520:23;:::i;:::-;18519:32;;;;:::i;:::-;18504:12;:47:::0;-1:-1:-1;18428:131:0:o;18709:118::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;5516:17:::1;18762:12;:22:::0;;;18795:14:::1;:24:::0;18709:118::o;13186:101::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;13253:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;13253:26:0::1;-1:-1:-1::0;;;;13253:26:0;;::::1;::::0;;;::::1;::::0;;13186:101::o;18170:139::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;18261:19:::1;:40:::0;18170:139::o;17472:689::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;17636:18;;17606:90:::1;;;::::0;-1:-1:-1;;;17606:90:0;;7561:2:1;17606:90:0::1;::::0;::::1;7543:21:1::0;7600:2;7580:18;;;7573:30;7639:34;7619:18;;;7612:62;-1:-1:-1;;;7690:18:1;;;7683:35;7735:19;;17606:90:0::1;7359:401:1::0;17606:90:0::1;17750:1;17735:11;:16;;17707:82;;;::::0;-1:-1:-1;;;17707:82:0;;7967:2:1;17707:82:0::1;::::0;::::1;7949:21:1::0;8006:2;7986:18;;;7979:30;8045:34;8025:18;;;8018:62;-1:-1:-1;;;8096:18:1;;;8089:31;8137:19;;17707:82:0::1;7765:397:1::0;17707:82:0::1;17831:19:::0;;17800:93:::1;;;::::0;-1:-1:-1;;;17800:93:0;;8369:2:1;17800:93:0::1;::::0;::::1;8351:21:1::0;8408:2;8388:18;;;8381:30;8447:34;8427:18;;;8420:62;-1:-1:-1;;;8498:18:1;;;8491:36;8544:19;;17800:93:0::1;8167:402:1::0;17800:93:0::1;17949:1;17933:12;:17;;17904:85;;;::::0;-1:-1:-1;;;17904:85:0;;8776:2:1;17904:85:0::1;::::0;::::1;8758:21:1::0;8815:2;8795:18;;;8788:30;8854:34;8834:18;;;8827:62;-1:-1:-1;;;8905:18:1;;;8898:32;8947:19;;17904:85:0::1;8574:398:1::0;17904:85:0::1;18002:14;:30:::0;;;;18043:15:::1;:32:::0;;;;18086:12:::1;:26:::0;18123:13:::1;:28:::0;17472:689::o;2136:294::-;2188:14;;-1:-1:-1;;;;;2188:14:0;2206:10;2188:28;2180:77;;;;-1:-1:-1;;;2180:77:0;;9179:2:1;2180:77:0;;;9161:21:1;9218:2;9198:18;;;9191:30;9257:34;9237:18;;;9230:62;-1:-1:-1;;;9308:18:1;;;9301:34;9352:19;;2180:77:0;8977:400:1;2180:77:0;2294:9;;2276:15;:27;2268:60;;;;-1:-1:-1;;;2268:60:0;;9584:2:1;2268:60:0;;;9566:21:1;9623:2;9603:18;;;9596:30;-1:-1:-1;;;9642:18:1;;;9635:49;9701:18;;2268:60:0;9382:343:1;2268:60:0;2373:14;;;2365:6;;2344:44;;-1:-1:-1;;;;;2373:14:0;;;;2365:6;;;;-1:-1:-1;;;;;;;;;;;2344:44:0;;2408:14;;;2399:23;;-1:-1:-1;;;;;;2399:23:0;-1:-1:-1;;;;;2408:14:0;;;2399:23;;;;;;2136:294::o;8035:199::-;8140:4;8162:42;366:10;8186:9;8197:6;8162:9;:42::i;13296:236::-;13362:19;;-1:-1:-1;;;;;13362:19:0;366:10;-1:-1:-1;;;;;13346:35:0;;:72;;;-1:-1:-1;13401:17:0;;-1:-1:-1;;;;;13401:17:0;366:10;-1:-1:-1;;;;;13385:33:0;;13346:72;13338:81;;;;;;13430:23;13456:24;13474:4;13456:9;:24::i;:::-;13430:50;;13491:33;13508:15;13491:16;:33::i;18836:234::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;18953:9:::1;18949:114;18968:19:::0;;::::1;18949:114;;;19043:8;19009:18;:31;19028:8;;19037:1;19028:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19009:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;19009:31:0;:42;;-1:-1:-1;;19009:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;18989:3;::::1;::::0;::::1;:::i;:::-;;;;18949:114;;;;18836:234:::0;;;:::o;1852:208::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;1933:6:::1;::::0;;;1916:23;;-1:-1:-1;;;;;;1916:23:0;;::::1;-1:-1:-1::0;;;;;1933:6:0;::::1;1916:23;::::0;;;1950:19:::1;::::0;;1980:9:::1;:16:::0;;;2012:40:::1;::::0;1933:6;;-1:-1:-1;;;;;;;;;;;2012:40:0;1933:6;;2012:40:::1;1852:208:::0;:::o;18567:134::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;18690:3:::1;18662:23;18672:13:::0;5516:17:::1;18662:23;:::i;:::-;18661:32;;;;:::i;:::-;18644:14;:49:::0;-1:-1:-1;18567:134:0:o;2596:244::-;1697:6;;-1:-1:-1;;;;;1697:6:0;366:10;1697:22;1689:67;;;;-1:-1:-1;;;1689:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2685:22:0;::::1;2677:73;;;::::0;-1:-1:-1;;;2677:73:0;;9932:2:1;2677:73:0::1;::::0;::::1;9914:21:1::0;9971:2;9951:18;;;9944:30;10010:34;9990:18;;;9983:62;-1:-1:-1;;;10061:18:1;;;10054:36;10107:19;;2677:73:0::1;9730:402:1::0;2677:73:0::1;2787:6;::::0;;2766:38:::1;::::0;-1:-1:-1;;;;;2766:38:0;;::::1;::::0;2787:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2766:38:0;::::1;2815:6;:17:::0;;-1:-1:-1;;;;;;2815:17:0::1;-1:-1:-1::0;;;;;2815:17:0;;;::::1;::::0;;;::::1;::::0;;2596:244::o;3440:246::-;3498:7;3522:1;3527;3522:6;3518:47;;-1:-1:-1;3552:1:0;3545:8;;3518:47;3575:9;3587:5;3591:1;3587;:5;:::i;:::-;3575:17;-1:-1:-1;3620:1:0;3611:5;3615:1;3575:17;3611:5;:::i;:::-;:10;3603:56;;;;-1:-1:-1;;;3603:56:0;;10339:2:1;3603:56:0;;;10321:21:1;10378:2;10358:18;;;10351:30;10417:34;10397:18;;;10390:62;-1:-1:-1;;;10468:18:1;;;10461:31;10509:19;;3603:56:0;10137:397:1;3603:56:0;3677:1;3440:246;-1:-1:-1;;;3440:246:0:o;3695:132::-;3753:7;3780:39;3784:1;3787;3780:39;;;;;;;;;;;;;;;;;:3;:39::i;9781:369::-;-1:-1:-1;;;;;9908:19:0;;9900:68;;;;-1:-1:-1;;;9900:68:0;;10741:2:1;9900:68:0;;;10723:21:1;10780:2;10760:18;;;10753:30;10819:34;10799:18;;;10792:62;-1:-1:-1;;;10870:18:1;;;10863:34;10914:19;;9900:68:0;10539:400:1;9900:68:0;-1:-1:-1;;;;;9987:21:0;;9979:68;;;;-1:-1:-1;;;9979:68:0;;11146:2:1;9979:68:0;;;11128:21:1;11185:2;11165:18;;;11158:30;11224:34;11204:18;;;11197:62;-1:-1:-1;;;11275:18:1;;;11268:32;11317:19;;9979:68:0;10944:398:1;9979:68:0;-1:-1:-1;;;;;10058:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10110:32;;3041:25:1;;;10110:32:0;;3014:18:1;10110:32:0;;;;;;;9781:369;;;:::o;10159:2343::-;-1:-1:-1;;;;;10281:18:0;;10273:68;;;;-1:-1:-1;;;10273:68:0;;11549:2:1;10273:68:0;;;11531:21:1;11588:2;11568:18;;;11561:30;11627:34;11607:18;;;11600:62;-1:-1:-1;;;11678:18:1;;;11671:35;11723:19;;10273:68:0;11347:401:1;10273:68:0;-1:-1:-1;;;;;10360:16:0;;10352:64;;;;-1:-1:-1;;;10352:64:0;;11955:2:1;10352:64:0;;;11937:21:1;11994:2;11974:18;;;11967:30;12033:34;12013:18;;;12006:62;-1:-1:-1;;;12084:18:1;;;12077:33;12127:19;;10352:64:0;11753:399:1;10352:64:0;10444:1;10435:6;:10;10427:64;;;;-1:-1:-1;;;10427:64:0;;12359:2:1;10427:64:0;;;12341:21:1;12398:2;12378:18;;;12371:30;12437:34;12417:18;;;12410:62;-1:-1:-1;;;12488:18:1;;;12481:39;12537:19;;10427:64:0;12157:405:1;10427:64:0;1607:7;1634:6;-1:-1:-1;;;;;10509:15:0;;;1634:6;;10509:15;;;;:32;;-1:-1:-1;1607:7:0;1634:6;-1:-1:-1;;;;;10528:13:0;;;1634:6;;10528:13;;10509:32;10505:1265;;;10599:11;;-1:-1:-1;;;10599:11:0;;;;10594:144;;1607:7;1634:6;-1:-1:-1;;;;;10639:15:0;;;1634:6;;10639:15;10631:91;;;;-1:-1:-1;;;10631:91:0;;12769:2:1;10631:91:0;;;12751:21:1;12808:2;12788:18;;;12781:30;12847:34;12827:18;;;12820:62;12918:33;12898:18;;;12891:61;12969:19;;10631:91:0;12567:427:1;10631:91:0;10773:12;;10763:6;:22;;10755:63;;;;-1:-1:-1;;;10755:63:0;;13201:2:1;10755:63:0;;;13183:21:1;13240:2;13220:18;;;13213:30;13279;13259:18;;;13252:58;13327:18;;10755:63:0;12999:352:1;10755:63:0;-1:-1:-1;;;;;10842:10:0;;;;;;:4;:10;;;;;;;;10841:11;:24;;;;-1:-1:-1;;;;;;10857:8:0;;;;;;:4;:8;;;;;;;;10856:9;10841:24;10833:72;;;;-1:-1:-1;;;10833:72:0;;13558:2:1;10833:72:0;;;13540:21:1;13597:2;13577:18;;;13570:30;13636:34;13616:18;;;13609:62;-1:-1:-1;;;13687:18:1;;;13680:33;13730:19;;10833:72:0;13356:399:1;10833:72:0;10932:13;;-1:-1:-1;;;;;10926:19:0;;;10932:13;;10926:19;10923:146;;10999:14;;10990:6;10974:13;10984:2;10974:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10966:87;;;;-1:-1:-1;;;10966:87:0;;14095:2:1;10966:87:0;;;14077:21:1;14134:2;14114:18;;;14107:30;14173:34;14153:18;;;14146:62;-1:-1:-1;;;14224:18:1;;;14217:33;14267:19;;10966:87:0;13893:399:1;10966:87:0;11086:28;11117:24;11135:4;11117:9;:24::i;:::-;11195:19;;11259:12;;11086:55;;-1:-1:-1;11171:43:0;;;;11235:36;;11232:124;;11328:12;;11305:35;;11232:124;11377:7;:18;;;;-1:-1:-1;11389:6:0;;-1:-1:-1;;;11389:6:0;;;;11388:7;11377:18;:43;;;;-1:-1:-1;11407:13:0;;-1:-1:-1;;;;;11399:21:0;;;11407:13;;11399:21;;11377:43;:58;;;;-1:-1:-1;11424:11:0;;-1:-1:-1;;;11424:11:0;;;;11377:58;:87;;;;-1:-1:-1;;;;;;11440:24:0;;;;;;:18;:24;;;;;;;;11439:25;11377:87;:114;;;;-1:-1:-1;;;;;;11469:22:0;;;;;;:18;:22;;;;;;;;11468:23;11377:114;11373:386;;;11512:38;11529:20;11512:16;:38::i;:::-;11598:21;11642:22;;11638:106;;11689:35;11702:21;11689:12;:35::i;:::-;11493:266;11373:386;10543:1227;;10505:1265;-1:-1:-1;;;;;11848:24:0;;11783:12;11848:24;;;:18;:24;;;;;;11798:4;;11848:24;;;:50;;-1:-1:-1;;;;;;11876:22:0;;;;;;:18;:22;;;;;;;;11848:50;11847:102;;;-1:-1:-1;11912:13:0;;-1:-1:-1;;;;;11904:21:0;;;11912:13;;11904:21;;;;:44;;-1:-1:-1;11935:13:0;;-1:-1:-1;;;;;11929:19:0;;;11935:13;;11929:19;;11904:44;11843:597;;;-1:-1:-1;11976:5:0;11843:597;;;12060:13;;-1:-1:-1;;;;;12052:21:0;;;12060:13;;12052:21;:55;;;;-1:-1:-1;12091:15:0;;-1:-1:-1;;;;;12077:30:0;;;12091:15;;12077:30;;12052:55;12049:162;;;12140:14;;12128:9;:26;12183:12;;12173:7;:22;12049:162;12271:13;;-1:-1:-1;;;;;12265:19:0;;;12271:13;;12265:19;:55;;;;-1:-1:-1;12304:15:0;;-1:-1:-1;;;;;12288:32:0;;;12304:15;;12288:32;;12265:55;12261:165;;;12353:15;;12341:9;:27;12397:13;;12387:7;:23;12261:165;12453:41;12468:4;12474:2;12478:6;12486:7;12453:14;:41::i;3207:224::-;3327:7;3363:12;3355:6;;;;3347:29;;;;-1:-1:-1;;;3347:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3387:9:0;3399:5;3403:1;3399;:5;:::i;:::-;3387:17;3207:224;-1:-1:-1;;;;;3207:224:0:o;13003:174::-;13060:17;;-1:-1:-1;;;;;13060:17:0;:48;13087:20;13105:1;13087:13;:6;13098:1;13087:10;:13::i;:::-;:17;;:20::i;:::-;13060:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13119:19:0;;-1:-1:-1;;;;;13119:19:0;:50;13148:20;13166:1;13148:13;:6;13119:19;13148:10;:13::i;:20::-;13119:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9093:323;9188:7;9246;;9235;:18;;9213:110;;;;-1:-1:-1;;;9213:110:0;;14629:2:1;9213:110:0;;;14611:21:1;14668:2;14648:18;;;14641:30;14707:34;14687:18;;;14680:62;-1:-1:-1;;;14758:18:1;;;14751:40;14808:19;;9213:110:0;14427:406:1;9213:110:0;9334:19;9356:10;:8;:10::i;:::-;9334:32;-1:-1:-1;9384:24:0;:7;9334:32;9384:11;:24::i;12511:483::-;6792:6;:13;;-1:-1:-1;;;;6792:13:0;-1:-1:-1;;;6792:13:0;;;12613:16:::1;::::0;;12627:1:::1;12613:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12613:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12613:16:0::1;12589:40;;12658:4;12640;12645:1;12640:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12640:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12684:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12684:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12640:7;;12684:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12674:4;12679:1;12674:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12674:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12749:15:::1;::::0;12717:62:::1;::::0;12734:4:::1;::::0;12749:15:::1;12767:11:::0;12717:8:::1;:62::i;:::-;12790:15;::::0;:196:::1;::::0;-1:-1:-1;;;12790:196:0;;-1:-1:-1;;;;;12790:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12871:11;;12790:15:::1;::::0;12913:4;;12940::::1;::::0;12960:15:::1;::::0;12790:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6828:6:0;:14;;-1:-1:-1;;;;6828:14:0;;;-1:-1:-1;;;;12511:483:0:o;3836:223::-;3956:7;3991:12;3984:5;3976:28;;;;-1:-1:-1;;;3976:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4015:9:0;4027:5;4031:1;4027;:5;:::i;14064:282::-;14220:7;14215:28;;14229:14;:12;:14::i;:::-;14254:44;14272:6;14280:9;14291:6;14254:17;:44::i;:::-;14314:7;14309:29;;14323:15;9711:17;;9699:9;:29;9749:15;;9739:7;:25;9655:117;17033:164;17075:7;17096:15;17113;17132:19;:17;:19::i;:::-;17095:56;;-1:-1:-1;17095:56:0;-1:-1:-1;17169:20:0;17095:56;;17169:11;:20::i;:::-;17162:27;;;;17033:164;:::o;9425:221::-;9472:9;;:14;:30;;;;-1:-1:-1;9490:7:0;;:12;9472:30;9468:43;;;9425:221::o;9468:43::-;9544:9;;;9524:17;:29;9582:7;;;9564:15;:25;-1:-1:-1;9603:13:0;;;;9627:11;9425:221::o;14355:610::-;14502:15;14532:23;14570:12;14597:23;14635:12;14662:13;14689:19;14700:7;14689:10;:19::i;:::-;-1:-1:-1;;;;;14737:15:0;;;;;;:7;:15;;;;;;14487:221;;-1:-1:-1;14487:221:0;;-1:-1:-1;14487:221:0;;-1:-1:-1;14487:221:0;-1:-1:-1;14487:221:0;-1:-1:-1;14487:221:0;-1:-1:-1;14737:28:0;;14487:221;14737:19;:28::i;:::-;-1:-1:-1;;;;;14719:15:0;;;;;;;:7;:15;;;;;;:46;;;;14797:18;;;;;;;:39;;14820:15;14797:22;:39::i;:::-;-1:-1:-1;;;;;14776:18:0;;;;;;:7;:18;;;;;:60;14847:16;14857:5;14847:9;:16::i;:::-;14874:23;14886:4;14892;14874:11;:23::i;:::-;14930:9;-1:-1:-1;;;;;14913:44:0;14922:6;-1:-1:-1;;;;;14913:44:0;;14941:15;14913:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;14913:44:0;;;;;;;;14476:489;;;;;;14355:610;;;:::o;17206:257::-;17304:7;;17257;;;;5516:17;17372:20;17304:7;5516:17;17372:11;:20::i;:::-;17362:7;:30;17358:61;;;-1:-1:-1;;17402:7:0;;;5516:17;;-1:-1:-1;17206:257:0;-1:-1:-1;17206:257:0:o;17358:61::-;17438:7;;17447;;-1:-1:-1;17206:257:0;-1:-1:-1;17206:257:0:o;15388:615::-;15488:7;15510;15532;15554;15576;15598;15634:23;15659:12;15673:13;15703:40;15715:7;15724:9;;15735:7;;15703:11;:40::i;:::-;15633:110;;;;;;15754:19;15776:10;:8;:10::i;:::-;15754:32;;15798:15;15815:23;15840:12;15869:46;15881:7;15890:4;15896:5;15903:11;15869;:46::i;:::-;15797:118;;-1:-1:-1;15797:118:0;-1:-1:-1;15797:118:0;-1:-1:-1;15966:15:0;;-1:-1:-1;15983:4:0;;-1:-1:-1;15989:5:0;;-1:-1:-1;;;;;15388:615:0;;;;;;;:::o;3062:136::-;3120:7;3147:43;3151:1;3154;3147:43;;;;;;;;;;;;;;;;;:3;:43::i;2874:179::-;2932:7;;2964:5;2968:1;2964;:5;:::i;:::-;2952:17;;2993:1;2988;:6;;2980:46;;;;-1:-1:-1;;;2980:46:0;;16281:2:1;2980:46:0;;;16263:21:1;16320:2;16300:18;;;16293:30;16359:29;16339:18;;;16332:57;16406:18;;2980:46:0;16079:351:1;14974:211:0;15027:19;15049:10;:8;:10::i;:::-;15027:32;-1:-1:-1;15070:13:0;15086:22;:5;15027:32;15086:9;:22::i;:::-;15160:4;15144:22;;;;:7;:22;;;;;;15070:38;;-1:-1:-1;15144:33:0;;15070:38;15144:26;:33::i;:::-;15135:4;15119:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14974:211:0:o;15194:147::-;15272:7;;:17;;15284:4;15272:11;:17::i;:::-;15262:7;:27;15313:10;;:20;;15328:4;15313:14;:20::i;:::-;15300:10;:33;-1:-1:-1;;15194:147:0:o;16012:469::-;16181:7;;;;16275:30;16301:3;16275:21;:7;16287:8;16275:11;:21::i;:30::-;16260:45;-1:-1:-1;16316:13:0;16332:28;16356:3;16332:19;:7;16344:6;16332:11;:19::i;:28::-;16316:44;-1:-1:-1;16371:23:0;16397:28;16316:44;16397:17;:7;16409:4;16397:11;:17::i;:::-;:21;;:28::i;:::-;16371:54;16461:4;;-1:-1:-1;16467:5:0;;-1:-1:-1;16012:469:0;;-1:-1:-1;;;;;16012:469:0:o;16490:534::-;16684:7;;;;16781:24;:7;16793:11;16781;:24::i;:::-;16763:42;-1:-1:-1;16816:12:0;16831:21;:4;16840:11;16831:8;:21::i;:::-;16816:36;-1:-1:-1;16863:13:0;16879:22;:5;16889:11;16879:9;:22::i;:::-;16863:38;-1:-1:-1;16912:23:0;16938:28;16863:38;16938:17;:7;16950:4;16938:11;:17::i;:28::-;16985:7;;;;-1:-1:-1;17011:4:0;;-1:-1:-1;16490:534:0;;-1:-1:-1;;;;;;;16490:534:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;3077:456::-;3154:6;3162;3170;3223:2;3211:9;3202:7;3198:23;3194:32;3191:52;;;3239:1;3236;3229:12;3191:52;3278:9;3265:23;3297:31;3322:5;3297:31;:::i;:::-;3347:5;-1:-1:-1;3404:2:1;3389:18;;3376:32;3417:33;3376:32;3417:33;:::i;:::-;3077:456;;3469:7;;-1:-1:-1;;;3523:2:1;3508:18;;;;3495:32;;3077:456::o;3935:247::-;3994:6;4047:2;4035:9;4026:7;4022:23;4018:32;4015:52;;;4063:1;4060;4053:12;4015:52;4102:9;4089:23;4121:31;4146:5;4121:31;:::i;4187:160::-;4252:20;;4308:13;;4301:21;4291:32;;4281:60;;4337:1;4334;4327:12;4352:180;4408:6;4461:2;4449:9;4440:7;4436:23;4432:32;4429:52;;;4477:1;4474;4467:12;4429:52;4500:26;4516:9;4500:26;:::i;4537:180::-;4596:6;4649:2;4637:9;4628:7;4624:23;4620:32;4617:52;;;4665:1;4662;4655:12;4617:52;-1:-1:-1;4688:23:1;;4537:180;-1:-1:-1;4537:180:1:o;4722:385::-;4808:6;4816;4824;4832;4885:3;4873:9;4864:7;4860:23;4856:33;4853:53;;;4902:1;4899;4892:12;4853:53;-1:-1:-1;;4925:23:1;;;4995:2;4980:18;;4967:32;;-1:-1:-1;5046:2:1;5031:18;;5018:32;;5097:2;5082:18;5069:32;;-1:-1:-1;4722:385:1;-1:-1:-1;4722:385:1:o;5112:689::-;5204:6;5212;5220;5273:2;5261:9;5252:7;5248:23;5244:32;5241:52;;;5289:1;5286;5279:12;5241:52;5329:9;5316:23;5358:18;5399:2;5391:6;5388:14;5385:34;;;5415:1;5412;5405:12;5385:34;5453:6;5442:9;5438:22;5428:32;;5498:7;5491:4;5487:2;5483:13;5479:27;5469:55;;5520:1;5517;5510:12;5469:55;5560:2;5547:16;5586:2;5578:6;5575:14;5572:34;;;5602:1;5599;5592:12;5572:34;5657:7;5650:4;5640:6;5637:1;5633:14;5629:2;5625:23;5621:34;5618:47;5615:67;;;5678:1;5675;5668:12;5615:67;5709:4;5701:13;;;;-1:-1:-1;5733:6:1;-1:-1:-1;5758:37:1;;5774:20;;;-1:-1:-1;5758:37:1;:::i;:::-;5748:47;;5112:689;;;;;:::o;5806:388::-;5874:6;5882;5935:2;5923:9;5914:7;5910:23;5906:32;5903:52;;;5951:1;5948;5941:12;5903:52;5990:9;5977:23;6009:31;6034:5;6009:31;:::i;:::-;6059:5;-1:-1:-1;6116:2:1;6101:18;;6088:32;6129:33;6088:32;6129:33;:::i;:::-;6181:7;6171:17;;;5806:388;;;;;:::o;6199:356::-;6401:2;6383:21;;;6420:18;;;6413:30;6479:34;6474:2;6459:18;;6452:62;6546:2;6531:18;;6199:356::o;6560:127::-;6621:10;6616:3;6612:20;6609:1;6602:31;6652:4;6649:1;6642:15;6676:4;6673:1;6666:15;6692:127;6753:10;6748:3;6744:20;6741:1;6734:31;6784:4;6781:1;6774:15;6808:4;6805:1;6798:15;6824:135;6863:3;6884:17;;;6881:43;;6904:18;;:::i;:::-;-1:-1:-1;6951:1:1;6940:13;;6824:135::o;6964:168::-;7004:7;7070:1;7066;7062:6;7058:14;7055:1;7052:21;7047:1;7040:9;7033:17;7029:45;7026:71;;;7077:18;;:::i;:::-;-1:-1:-1;7117:9:1;;6964:168::o;7137:217::-;7177:1;7203;7193:132;;7247:10;7242:3;7238:20;7235:1;7228:31;7282:4;7279:1;7272:15;7310:4;7307:1;7300:15;7193:132;-1:-1:-1;7339:9:1;;7137:217::o;13760:128::-;13800:3;13831:1;13827:6;13824:1;13821:13;13818:39;;;13837:18;;:::i;:::-;-1:-1:-1;13873:9:1;;13760:128::o;14297:125::-;14337:4;14365:1;14362;14359:8;14356:34;;;14370:18;;:::i;:::-;-1:-1:-1;14407:9:1;;14297:125::o;14838:251::-;14908:6;14961:2;14949:9;14940:7;14936:23;14932:32;14929:52;;;14977:1;14974;14967:12;14929:52;15009:9;15003:16;15028:31;15053:5;15028:31;:::i;15094:980::-;15356:4;15404:3;15393:9;15389:19;15435:6;15424:9;15417:25;15461:2;15499:6;15494:2;15483:9;15479:18;15472:34;15542:3;15537:2;15526:9;15522:18;15515:31;15566:6;15601;15595:13;15632:6;15624;15617:22;15670:3;15659:9;15655:19;15648:26;;15709:2;15701:6;15697:15;15683:29;;15730:1;15740:195;15754:6;15751:1;15748:13;15740:195;;;15819:13;;-1:-1:-1;;;;;15815:39:1;15803:52;;15910:15;;;;15875:12;;;;15851:1;15769:9;15740:195;;;-1:-1:-1;;;;;;;15991:32:1;;;;15986:2;15971:18;;15964:60;-1:-1:-1;;;16055:3:1;16040:19;16033:35;15952:3;15094:980;-1:-1:-1;;;15094:980:1:o

Swarm Source

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