ETH Price: $3,865.11 (-1.44%)

Token

ERC-20: SYMBA INU (SYMBA)
 

Overview

Max Total Supply

1,000,000 SYMBA

Holders

36

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,184.378863223 SYMBA

Value
$0.00
0xB96c642Dc46826EAB221D0C3f085bc6d9Fb653Fb
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:
Symba

Compiler Version
v0.7.2+commit.51b20bc0

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-03
*/

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.7.2;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);

    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 Symba is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "SYMBA INU";
    string private constant _symbol = "SYMBA";
    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 = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    // Taxes
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 1;
    uint256 private _taxFeeOnSell = 4;

    //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(0x09ac21C407aafbF396bEB2dcDbDB1da240DA61E8);
    address payable private _marketingAddress = payable(0x09ac21C407aafbF396bEB2dcDbDB1da240DA61E8);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 20000 * 10**9; // 2%
    uint256 public _maxWalletSize = 20000 * 10**9; // 2%
    uint256 public _swapTokensAtAmount = 1500 * 10**9; // .15%

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

    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 contractETHBalancee = address(this).balance;
        sendETHToFee(contractETHBalancee);
    }

    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 {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

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

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

Contract Security Audit

Contract ABI

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

60806040526507326b47ffff19600655600060088190556009556001600a8190556004600b819055600c829055600d819055600e91909155600f55601280546001600160a01b03199081167309ac21c407aafbf396beb2dcdbdb1da240da61e89081179092556013805490911690911790556015805462ffffff60a01b1916600160b01b1790556512309ce54000601681905560175565015d3ef79800601855348015620000ac57600080fd5b506000620000b9620003b5565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006546002600062000114620003b5565b6001600160a01b03168152602080820192909252604090810160002092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b815292519092839263c45a015592600480840193829003018186803b1580156200019057600080fd5b505afa158015620001a5573d6000803e3d6000fd5b505050506040513d6020811015620001bc57600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b1580156200020d57600080fd5b505afa15801562000222573d6000803e3d6000fd5b505050506040513d60208110156200023957600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b1580156200028c57600080fd5b505af1158015620002a1573d6000803e3d6000fd5b505050506040513d6020811015620002b857600080fd5b5051601580546001600160a01b0319166001600160a01b03909216919091179055600160056000620002e9620003b9565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260059093528183208054851660019081179091556012548216845282842080548616821790556013549091168352912080549092161790556200035c620003b5565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c680006040518082815260200191505060405180910390a350620003c8565b3390565b6000546001600160a01b031690565b611fbc80620003d86000396000f3fe6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f046146106d5578063dd62ed3e14610754578063ea1644d51461078f578063f2fde38b146107b9576101d7565b8063a2a957bb14610618578063a9059cbb14610654578063bfd792841461068d578063c3c8cd80146106c0576101d7565b80638f70ccf7116100d15780638f70ccf7146105985780638f9a55c0146105c457806395d89b41146105d957806398a5c315146105ee576101d7565b80637d1db4a51461053b5780637f2feddc146105505780638da5cb5b14610583576101d7565b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec146104b457806370a08231146104c9578063715018a6146104fc57806374010ece14610511576101d7565b8063313ce5671461041557806349bd5a5e146104405780636b999053146104555780636d8aa8f814610488576101d7565b80631694505e116101ab5780631694505e1461036557806318160ddd1461039657806323b872dd146103bd5780632fd689e314610400576101d7565b8062b8cf2a146101dc57806306fdde031461028e578063095ea7b314610318576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061028c600480360360208110156101ff57600080fd5b81019060208101813564010000000081111561021a57600080fd5b82018360208201111561022c57600080fd5b8035906020019184602083028401116401000000008311171561024e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506107ec945050505050565b005b34801561029a57600080fd5b506102a36108a0565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102dd5781810151838201526020016102c5565b50505050905090810190601f16801561030a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032457600080fd5b506103516004803603604081101561033b57600080fd5b506001600160a01b0381351690602001356108c3565b604080519115158252519081900360200190f35b34801561037157600080fd5b5061037a6108e1565b604080516001600160a01b039092168252519081900360200190f35b3480156103a257600080fd5b506103ab6108f0565b60408051918252519081900360200190f35b3480156103c957600080fd5b50610351600480360360608110156103e057600080fd5b506001600160a01b038135811691602081013590911690604001356108fb565b34801561040c57600080fd5b506103ab610982565b34801561042157600080fd5b5061042a610988565b6040805160ff9092168252519081900360200190f35b34801561044c57600080fd5b5061037a61098d565b34801561046157600080fd5b5061028c6004803603602081101561047857600080fd5b50356001600160a01b031661099c565b34801561049457600080fd5b5061028c600480360360208110156104ab57600080fd5b50351515610a15565b3480156104c057600080fd5b5061028c610a8b565b3480156104d557600080fd5b506103ab600480360360208110156104ec57600080fd5b50356001600160a01b0316610ae4565b34801561050857600080fd5b5061028c610b06565b34801561051d57600080fd5b5061028c6004803603602081101561053457600080fd5b5035610ba8565b34801561054757600080fd5b506103ab610c05565b34801561055c57600080fd5b506103ab6004803603602081101561057357600080fd5b50356001600160a01b0316610c0b565b34801561058f57600080fd5b5061037a610c1d565b3480156105a457600080fd5b5061028c600480360360208110156105bb57600080fd5b50351515610c2c565b3480156105d057600080fd5b506103ab610ca2565b3480156105e557600080fd5b506102a3610ca8565b3480156105fa57600080fd5b5061028c6004803603602081101561061157600080fd5b5035610cc7565b34801561062457600080fd5b5061028c6004803603608081101561063b57600080fd5b5080359060208101359060408101359060600135610d24565b34801561066057600080fd5b506103516004803603604081101561067757600080fd5b506001600160a01b038135169060200135610d90565b34801561069957600080fd5b50610351600480360360208110156106b057600080fd5b50356001600160a01b0316610da4565b3480156106cc57600080fd5b5061028c610db9565b3480156106e157600080fd5b5061028c600480360360408110156106f857600080fd5b81019060208101813564010000000081111561071357600080fd5b82018360208201111561072557600080fd5b8035906020019184602083028401116401000000008311171561074757600080fd5b9193509150351515610e1b565b34801561076057600080fd5b506103ab6004803603604081101561077757600080fd5b506001600160a01b0381358116916020013516610ece565b34801561079b57600080fd5b5061028c600480360360208110156107b257600080fd5b5035610ef9565b3480156107c557600080fd5b5061028c600480360360208110156107dc57600080fd5b50356001600160a01b0316610f56565b6107f461104e565b6000546001600160a01b03908116911614610844576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b60005b815181101561089c5760016010600084848151811061086257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610847565b5050565b60408051808201909152600981526853594d424120494e5560b81b602082015290565b60006108d76108d061104e565b8484611052565b5060015b92915050565b6014546001600160a01b031681565b66038d7ea4c6800090565b600061090884848461113e565b6109788461091461104e565b61097385604051806060016040528060288152602001611eaa602891396001600160a01b038a1660009081526004602052604081209061095261104e565b6001600160a01b0316815260208101919091526040016000205491906115c8565b611052565b5060019392505050565b60185481565b600990565b6015546001600160a01b031681565b6109a461104e565b6000546001600160a01b039081169116146109f4576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152601060205260409020805460ff19169055565b610a1d61104e565b6000546001600160a01b03908116911614610a6d576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316610a9f61104e565b6001600160a01b03161480610ace57506013546001600160a01b0316610ac361104e565b6001600160a01b0316145b610ad757600080fd5b47610ae18161165f565b50565b6001600160a01b0381166000908152600260205260408120546108db90611699565b610b0e61104e565b6000546001600160a01b03908116911614610b5e576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610bb061104e565b6000546001600160a01b03908116911614610c00576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b601655565b60165481565b60116020526000908152604090205481565b6000546001600160a01b031690565b610c3461104e565b6000546001600160a01b03908116911614610c84576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b60158054911515600160a01b0260ff60a01b19909216919091179055565b60175481565b60408051808201909152600581526453594d424160d81b602082015290565b610ccf61104e565b6000546001600160a01b03908116911614610d1f576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b601855565b610d2c61104e565b6000546001600160a01b03908116911614610d7c576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b600893909355600a91909155600955600b55565b60006108d7610d9d61104e565b848461113e565b60106020526000908152604090205460ff1681565b6012546001600160a01b0316610dcd61104e565b6001600160a01b03161480610dfc57506013546001600160a01b0316610df161104e565b6001600160a01b0316145b610e0557600080fd5b6000610e1030610ae4565b9050610ae1816116f9565b610e2361104e565b6000546001600160a01b03908116911614610e73576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b60005b82811015610ec8578160056000868685818110610e8f57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101610e76565b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610f0161104e565b6000546001600160a01b03908116911614610f51576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b601755565b610f5e61104e565b6000546001600160a01b03908116911614610fae576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b6001600160a01b038116610ff35760405162461bcd60e51b8152600401808060200182810382526026815260200180611e1e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b0383166110975760405162461bcd60e51b8152600401808060200182810382526024815260200180611f636024913960400191505060405180910390fd5b6001600160a01b0382166110dc5760405162461bcd60e51b8152600401808060200182810382526022815260200180611e446022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166111835760405162461bcd60e51b8152600401808060200182810382526025815260200180611f1b6025913960400191505060405180910390fd5b6001600160a01b0382166111c85760405162461bcd60e51b8152600401808060200182810382526023815260200180611d926023913960400191505060405180910390fd5b600081116112075760405162461bcd60e51b8152600401808060200182810382526029815260200180611ef26029913960400191505060405180910390fd5b61120f610c1d565b6001600160a01b0316836001600160a01b0316141580156112495750611233610c1d565b6001600160a01b0316826001600160a01b031614155b156114c157601554600160a01b900460ff166112b657611267610c1d565b6001600160a01b0316836001600160a01b0316146112b65760405162461bcd60e51b815260040180806020018281038252603f815260200180611db5603f913960400191505060405180910390fd5b60165481111561130d576040805162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015290519081900360640190fd5b6001600160a01b03831660009081526010602052604090205460ff1615801561134f57506001600160a01b03821660009081526010602052604090205460ff16155b61138a5760405162461bcd60e51b8152600401808060200182810382526023815260200180611e666023913960400191505060405180910390fd5b6015546001600160a01b038381169116146113ea57601754816113ac84610ae4565b0111156113ea5760405162461bcd60e51b8152600401808060200182810382526023815260200180611f406023913960400191505060405180910390fd5b60006113f530610ae4565b60185460165491925082101590821061140e5760165491505b8080156114255750601554600160a81b900460ff16155b801561143f57506015546001600160a01b03868116911614155b80156114545750601554600160b01b900460ff165b801561147957506001600160a01b03851660009081526005602052604090205460ff16155b801561149e57506001600160a01b03841660009081526005602052604090205460ff16155b156114be576114ac826116f9565b4780156114bc576114bc4761165f565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061150357506001600160a01b03831660009081526005602052604090205460ff165b8061153557506015546001600160a01b0385811691161480159061153557506015546001600160a01b03848116911614155b15611542575060006115bc565b6015546001600160a01b03858116911614801561156d57506014546001600160a01b03848116911614155b1561157f57600854600c55600954600d555b6015546001600160a01b0384811691161480156115aa57506014546001600160a01b03858116911614155b156115bc57600a54600c55600b54600d555b610ec8848484846118c7565b600081848411156116575760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561161c578181015183820152602001611604565b50505050905090810190601f1680156116495780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561089c573d6000803e3d6000fd5b60006006548211156116dc5760405162461bcd60e51b815260040180806020018281038252602a815260200180611df4602a913960400191505060405180910390fd5b60006116e66118ec565b90506116f2838261190f565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060808301845292602083019080368337019050509050308160008151811061173a57fe5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561178e57600080fd5b505afa1580156117a2573d6000803e3d6000fd5b505050506040513d60208110156117b857600080fd5b50518151829060019081106117c957fe5b6001600160a01b0392831660209182029290920101526014546117ef9130911684611052565b60145460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b8381101561187557818101518382015260200161185d565b505050509050019650505050505050600060405180830381600087803b15801561189e57600080fd5b505af11580156118b2573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806118d4576118d4611951565b6118df848484611983565b80610ec857610ec8611a78565b60008060006118f9611a86565b9092509050611908828261190f565b9250505090565b60006116f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac7565b600c541580156119615750600d54155b1561196b57611981565b600c8054600e55600d8054600f55600091829055555b565b60008060008060008061199587611b2c565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506119c79087611b89565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546119f69086611bcb565b6001600160a01b038916600090815260026020526040902055611a1881611c25565b611a228483611c6f565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b600e54600c55600f54600d55565b600654600090819066038d7ea4c68000611aa0828261190f565b821015611abd5760065466038d7ea4c68000935093505050611ac3565b90925090505b9091565b60008183611b165760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561161c578181015183820152602001611604565b506000838581611b2257fe5b0495945050505050565b6000806000806000806000806000611b498a600c54600d54611c93565b9250925092506000611b596118ec565b90506000806000611b6c8e878787611ce8565b919e509c509a509598509396509194505050505091939550919395565b60006116f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115c8565b6000828201838110156116f2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c2f6118ec565b90506000611c3d8383611d38565b30600090815260026020526040902054909150611c5a9082611bcb565b30600090815260026020526040902055505050565b600654611c7c9083611b89565b600655600754611c8c9082611bcb565b6007555050565b6000808080611cad6064611ca78989611d38565b9061190f565b90506000611cc06064611ca78a89611d38565b90506000611cd882611cd28b86611b89565b90611b89565b9992985090965090945050505050565b6000808080611cf78886611d38565b90506000611d058887611d38565b90506000611d138888611d38565b90506000611d2582611cd28686611b89565b939b939a50919850919650505050505050565b600082611d47575060006108db565b82820282848281611d5457fe5b04146116f25760405162461bcd60e51b8152600401808060200182810382526021815260200180611e896021913960400191505060405180910390fdfe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e6420746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c697374656421536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373544f4b454e3a2042616c616e636520657863656564732077616c6c65742073697a652145524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220958060e0d5b6447d76d3b3ff78630059ebe607f3bc620f578c52d84c5a11292b64736f6c63430007020033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f046146106d5578063dd62ed3e14610754578063ea1644d51461078f578063f2fde38b146107b9576101d7565b8063a2a957bb14610618578063a9059cbb14610654578063bfd792841461068d578063c3c8cd80146106c0576101d7565b80638f70ccf7116100d15780638f70ccf7146105985780638f9a55c0146105c457806395d89b41146105d957806398a5c315146105ee576101d7565b80637d1db4a51461053b5780637f2feddc146105505780638da5cb5b14610583576101d7565b8063313ce5671161016f5780636fc3eaec1161013e5780636fc3eaec146104b457806370a08231146104c9578063715018a6146104fc57806374010ece14610511576101d7565b8063313ce5671461041557806349bd5a5e146104405780636b999053146104555780636d8aa8f814610488576101d7565b80631694505e116101ab5780631694505e1461036557806318160ddd1461039657806323b872dd146103bd5780632fd689e314610400576101d7565b8062b8cf2a146101dc57806306fdde031461028e578063095ea7b314610318576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061028c600480360360208110156101ff57600080fd5b81019060208101813564010000000081111561021a57600080fd5b82018360208201111561022c57600080fd5b8035906020019184602083028401116401000000008311171561024e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506107ec945050505050565b005b34801561029a57600080fd5b506102a36108a0565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102dd5781810151838201526020016102c5565b50505050905090810190601f16801561030a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561032457600080fd5b506103516004803603604081101561033b57600080fd5b506001600160a01b0381351690602001356108c3565b604080519115158252519081900360200190f35b34801561037157600080fd5b5061037a6108e1565b604080516001600160a01b039092168252519081900360200190f35b3480156103a257600080fd5b506103ab6108f0565b60408051918252519081900360200190f35b3480156103c957600080fd5b50610351600480360360608110156103e057600080fd5b506001600160a01b038135811691602081013590911690604001356108fb565b34801561040c57600080fd5b506103ab610982565b34801561042157600080fd5b5061042a610988565b6040805160ff9092168252519081900360200190f35b34801561044c57600080fd5b5061037a61098d565b34801561046157600080fd5b5061028c6004803603602081101561047857600080fd5b50356001600160a01b031661099c565b34801561049457600080fd5b5061028c600480360360208110156104ab57600080fd5b50351515610a15565b3480156104c057600080fd5b5061028c610a8b565b3480156104d557600080fd5b506103ab600480360360208110156104ec57600080fd5b50356001600160a01b0316610ae4565b34801561050857600080fd5b5061028c610b06565b34801561051d57600080fd5b5061028c6004803603602081101561053457600080fd5b5035610ba8565b34801561054757600080fd5b506103ab610c05565b34801561055c57600080fd5b506103ab6004803603602081101561057357600080fd5b50356001600160a01b0316610c0b565b34801561058f57600080fd5b5061037a610c1d565b3480156105a457600080fd5b5061028c600480360360208110156105bb57600080fd5b50351515610c2c565b3480156105d057600080fd5b506103ab610ca2565b3480156105e557600080fd5b506102a3610ca8565b3480156105fa57600080fd5b5061028c6004803603602081101561061157600080fd5b5035610cc7565b34801561062457600080fd5b5061028c6004803603608081101561063b57600080fd5b5080359060208101359060408101359060600135610d24565b34801561066057600080fd5b506103516004803603604081101561067757600080fd5b506001600160a01b038135169060200135610d90565b34801561069957600080fd5b50610351600480360360208110156106b057600080fd5b50356001600160a01b0316610da4565b3480156106cc57600080fd5b5061028c610db9565b3480156106e157600080fd5b5061028c600480360360408110156106f857600080fd5b81019060208101813564010000000081111561071357600080fd5b82018360208201111561072557600080fd5b8035906020019184602083028401116401000000008311171561074757600080fd5b9193509150351515610e1b565b34801561076057600080fd5b506103ab6004803603604081101561077757600080fd5b506001600160a01b0381358116916020013516610ece565b34801561079b57600080fd5b5061028c600480360360208110156107b257600080fd5b5035610ef9565b3480156107c557600080fd5b5061028c600480360360208110156107dc57600080fd5b50356001600160a01b0316610f56565b6107f461104e565b6000546001600160a01b03908116911614610844576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b60005b815181101561089c5760016010600084848151811061086257fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610847565b5050565b60408051808201909152600981526853594d424120494e5560b81b602082015290565b60006108d76108d061104e565b8484611052565b5060015b92915050565b6014546001600160a01b031681565b66038d7ea4c6800090565b600061090884848461113e565b6109788461091461104e565b61097385604051806060016040528060288152602001611eaa602891396001600160a01b038a1660009081526004602052604081209061095261104e565b6001600160a01b0316815260208101919091526040016000205491906115c8565b611052565b5060019392505050565b60185481565b600990565b6015546001600160a01b031681565b6109a461104e565b6000546001600160a01b039081169116146109f4576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152601060205260409020805460ff19169055565b610a1d61104e565b6000546001600160a01b03908116911614610a6d576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b60158054911515600160b01b0260ff60b01b19909216919091179055565b6012546001600160a01b0316610a9f61104e565b6001600160a01b03161480610ace57506013546001600160a01b0316610ac361104e565b6001600160a01b0316145b610ad757600080fd5b47610ae18161165f565b50565b6001600160a01b0381166000908152600260205260408120546108db90611699565b610b0e61104e565b6000546001600160a01b03908116911614610b5e576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b610bb061104e565b6000546001600160a01b03908116911614610c00576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b601655565b60165481565b60116020526000908152604090205481565b6000546001600160a01b031690565b610c3461104e565b6000546001600160a01b03908116911614610c84576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b60158054911515600160a01b0260ff60a01b19909216919091179055565b60175481565b60408051808201909152600581526453594d424160d81b602082015290565b610ccf61104e565b6000546001600160a01b03908116911614610d1f576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b601855565b610d2c61104e565b6000546001600160a01b03908116911614610d7c576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b600893909355600a91909155600955600b55565b60006108d7610d9d61104e565b848461113e565b60106020526000908152604090205460ff1681565b6012546001600160a01b0316610dcd61104e565b6001600160a01b03161480610dfc57506013546001600160a01b0316610df161104e565b6001600160a01b0316145b610e0557600080fd5b6000610e1030610ae4565b9050610ae1816116f9565b610e2361104e565b6000546001600160a01b03908116911614610e73576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b60005b82811015610ec8578160056000868685818110610e8f57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101610e76565b50505050565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b610f0161104e565b6000546001600160a01b03908116911614610f51576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b601755565b610f5e61104e565b6000546001600160a01b03908116911614610fae576040805162461bcd60e51b81526020600482018190526024820152600080516020611ed2833981519152604482015290519081900360640190fd5b6001600160a01b038116610ff35760405162461bcd60e51b8152600401808060200182810382526026815260200180611e1e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b0383166110975760405162461bcd60e51b8152600401808060200182810382526024815260200180611f636024913960400191505060405180910390fd5b6001600160a01b0382166110dc5760405162461bcd60e51b8152600401808060200182810382526022815260200180611e446022913960400191505060405180910390fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166111835760405162461bcd60e51b8152600401808060200182810382526025815260200180611f1b6025913960400191505060405180910390fd5b6001600160a01b0382166111c85760405162461bcd60e51b8152600401808060200182810382526023815260200180611d926023913960400191505060405180910390fd5b600081116112075760405162461bcd60e51b8152600401808060200182810382526029815260200180611ef26029913960400191505060405180910390fd5b61120f610c1d565b6001600160a01b0316836001600160a01b0316141580156112495750611233610c1d565b6001600160a01b0316826001600160a01b031614155b156114c157601554600160a01b900460ff166112b657611267610c1d565b6001600160a01b0316836001600160a01b0316146112b65760405162461bcd60e51b815260040180806020018281038252603f815260200180611db5603f913960400191505060405180910390fd5b60165481111561130d576040805162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015290519081900360640190fd5b6001600160a01b03831660009081526010602052604090205460ff1615801561134f57506001600160a01b03821660009081526010602052604090205460ff16155b61138a5760405162461bcd60e51b8152600401808060200182810382526023815260200180611e666023913960400191505060405180910390fd5b6015546001600160a01b038381169116146113ea57601754816113ac84610ae4565b0111156113ea5760405162461bcd60e51b8152600401808060200182810382526023815260200180611f406023913960400191505060405180910390fd5b60006113f530610ae4565b60185460165491925082101590821061140e5760165491505b8080156114255750601554600160a81b900460ff16155b801561143f57506015546001600160a01b03868116911614155b80156114545750601554600160b01b900460ff165b801561147957506001600160a01b03851660009081526005602052604090205460ff16155b801561149e57506001600160a01b03841660009081526005602052604090205460ff16155b156114be576114ac826116f9565b4780156114bc576114bc4761165f565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061150357506001600160a01b03831660009081526005602052604090205460ff165b8061153557506015546001600160a01b0385811691161480159061153557506015546001600160a01b03848116911614155b15611542575060006115bc565b6015546001600160a01b03858116911614801561156d57506014546001600160a01b03848116911614155b1561157f57600854600c55600954600d555b6015546001600160a01b0384811691161480156115aa57506014546001600160a01b03858116911614155b156115bc57600a54600c55600b54600d555b610ec8848484846118c7565b600081848411156116575760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561161c578181015183820152602001611604565b50505050905090810190601f1680156116495780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6013546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561089c573d6000803e3d6000fd5b60006006548211156116dc5760405162461bcd60e51b815260040180806020018281038252602a815260200180611df4602a913960400191505060405180910390fd5b60006116e66118ec565b90506116f2838261190f565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060808301845292602083019080368337019050509050308160008151811061173a57fe5b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561178e57600080fd5b505afa1580156117a2573d6000803e3d6000fd5b505050506040513d60208110156117b857600080fd5b50518151829060019081106117c957fe5b6001600160a01b0392831660209182029290920101526014546117ef9130911684611052565b60145460405163791ac94760e01b8152600481018481526000602483018190523060648401819052426084850181905260a060448601908152875160a487015287516001600160a01b039097169663791ac947968a968a9594939092909160c40190602080880191028083838b5b8381101561187557818101518382015260200161185d565b505050509050019650505050505050600060405180830381600087803b15801561189e57600080fd5b505af11580156118b2573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b806118d4576118d4611951565b6118df848484611983565b80610ec857610ec8611a78565b60008060006118f9611a86565b9092509050611908828261190f565b9250505090565b60006116f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ac7565b600c541580156119615750600d54155b1561196b57611981565b600c8054600e55600d8054600f55600091829055555b565b60008060008060008061199587611b2c565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506119c79087611b89565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546119f69086611bcb565b6001600160a01b038916600090815260026020526040902055611a1881611c25565b611a228483611c6f565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b600e54600c55600f54600d55565b600654600090819066038d7ea4c68000611aa0828261190f565b821015611abd5760065466038d7ea4c68000935093505050611ac3565b90925090505b9091565b60008183611b165760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561161c578181015183820152602001611604565b506000838581611b2257fe5b0495945050505050565b6000806000806000806000806000611b498a600c54600d54611c93565b9250925092506000611b596118ec565b90506000806000611b6c8e878787611ce8565b919e509c509a509598509396509194505050505091939550919395565b60006116f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115c8565b6000828201838110156116f2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000611c2f6118ec565b90506000611c3d8383611d38565b30600090815260026020526040902054909150611c5a9082611bcb565b30600090815260026020526040902055505050565b600654611c7c9083611b89565b600655600754611c8c9082611bcb565b6007555050565b6000808080611cad6064611ca78989611d38565b9061190f565b90506000611cc06064611ca78a89611d38565b90506000611cd882611cd28b86611b89565b90611b89565b9992985090965090945050505050565b6000808080611cf78886611d38565b90506000611d058887611d38565b90506000611d138888611d38565b90506000611d2582611cd28686611b89565b939b939a50919850919650505050505050565b600082611d47575060006108db565b82820282848281611d5457fe5b04146116f25760405162461bcd60e51b8152600401808060200182810382526021815260200180611e896021913960400191505060405180910390fdfe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e6420746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c697374656421536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373544f4b454e3a2042616c616e636520657863656564732077616c6c65742073697a652145524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a2646970667358221220958060e0d5b6447d76d3b3ff78630059ebe607f3bc620f578c52d84c5a11292b64736f6c63430007020033

Deployed Bytecode Sourcemap

4531:13524:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13230:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13230:169:0;;-1:-1:-1;13230:169:0;;-1:-1:-1;;;;;13230:169:0:i;:::-;;7055:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7980:193;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7980:193:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5884:41;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;5884:41:0;;;;;;;;;;;;;;7332:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8181:446;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8181:446:0;;;;;;;;;;;;;;;;;:::i;6196:49::-;;;;;;;;;;;;;:::i;7241:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5932:28;;;;;;;;;;;;;:::i;13407:92::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13407:92:0;-1:-1:-1;;;;;13407:92:0;;:::i;17439:101::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17439:101:0;;;;:::i;12985:237::-;;;;;;;;;;;;;:::i;7435:138::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7435:138:0;-1:-1:-1;;;;;7435:138:0;;:::i;1561:148::-;;;;;;;;;;;;;:::i;17579:108::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17579:108:0;;:::i;6082:43::-;;;;;;;;;;;;;:::i;5626:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5626:43:0;-1:-1:-1;;;;;5626:43:0;;:::i;1347:79::-;;;;;;;;;;;;;:::i;12632:101::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12632:101:0;;;;:::i;6138:45::-;;;;;;;;;;;;;:::i;7146:87::-;;;;;;;;;;;;;:::i;17248:139::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17248:139:0;;:::i;16905:291::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16905:291:0;;;;;;;;;;;;;;;;;:::i;7581:199::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7581:199:0;;;;;;;;:::i;5588:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5588:36:0;-1:-1:-1;;;;;5588:36:0;;:::i;12741:236::-;;;;;;;;;;;;;:::i;17818:234::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17818:234:0;-1:-1:-1;17818:234:0;;;;:::i;7788:184::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7788:184:0;;;;;;;;;;:::i;17695:115::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17695:115:0;;:::i;1717:244::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1717:244:0;-1:-1:-1;;;;;1717:244:0;;:::i;13230:169::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;13306:9:::1;13301:91;13325:5;:12;13321:1;:16;13301:91;;;13376:4;13359;:14;13364:5;13370:1;13364:8;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13359:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13359:14:0;:21;;-1:-1:-1;;13359:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13339:3:0::1;13301:91;;;;13230:169:::0;:::o;7055:83::-;7125:5;;;;;;;;;;;;-1:-1:-1;;;7125:5:0;;;;7055:83;:::o;7980:193::-;8082:4;8104:39;8113:12;:10;:12::i;:::-;8127:7;8136:6;8104:8;:39::i;:::-;-1:-1:-1;8161:4:0;7980:193;;;;;:::o;5884:41::-;;;-1:-1:-1;;;;;5884:41:0;;:::o;7332:95::-;5077:15;7332:95;:::o;8181:446::-;8313:4;8330:36;8340:6;8348:9;8359:6;8330:9;:36::i;:::-;8377:220;8400:6;8421:12;:10;:12::i;:::-;8448:138;8504:6;8448:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8448:19:0;;;;;;:11;:19;;;;;;8468:12;:10;:12::i;:::-;-1:-1:-1;;;;;8448:33:0;;;;;;;;;;;;-1:-1:-1;8448:33:0;;;:138;:37;:138::i;:::-;8377:8;:220::i;:::-;-1:-1:-1;8615:4:0;8181:446;;;;;:::o;6196:49::-;;;;:::o;7241:83::-;4751:1;7241:83;:::o;5932:28::-;;;-1:-1:-1;;;;;5932:28:0;;:::o;13407:92::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;13471:12:0::1;13486:5;13471:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13471:20:0::1;::::0;;13407:92::o;17439:101::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;17506:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17506:26:0::1;-1:-1:-1::0;;;;17506:26:0;;::::1;::::0;;;::::1;::::0;;17439:101::o;12985:237::-;13051:19;;-1:-1:-1;;;;;13051:19:0;13035:12;:10;:12::i;:::-;-1:-1:-1;;;;;13035:35:0;;:72;;;-1:-1:-1;13090:17:0;;-1:-1:-1;;;;;13090:17:0;13074:12;:10;:12::i;:::-;-1:-1:-1;;;;;13074:33:0;;13035:72;13027:81;;;;;;13149:21;13181:33;13149:21;13181:12;:33::i;:::-;12985:237;:::o;7435:138::-;-1:-1:-1;;;;;7548:16:0;;7501:7;7548:16;;;:7;:16;;;;;;7528:37;;:19;:37::i;1561:148::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;1668:1:::1;1652:6:::0;;1631:40:::1;::::0;-1:-1:-1;;;;;1652:6:0;;::::1;::::0;1631:40:::1;::::0;1668:1;;1631:40:::1;1699:1;1682:19:::0;;-1:-1:-1;;;;;;1682:19:0::1;::::0;;1561:148::o;17579:108::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;17653:12:::1;:26:::0;17579:108::o;6082:43::-;;;;:::o;5626:::-;;;;;;;;;;;;;:::o;1347:79::-;1385:7;1412:6;-1:-1:-1;;;;;1412:6:0;1347:79;:::o;12632:101::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;12699:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12699:26:0::1;-1:-1:-1::0;;;;12699:26:0;;::::1;::::0;;;::::1;::::0;;12632:101::o;6138:45::-;;;;:::o;7146:87::-;7218:7;;;;;;;;;;;;-1:-1:-1;;;7218:7:0;;;;7146:87;:::o;17248:139::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;17339:19:::1;:40:::0;17248:139::o;16905:291::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;17039:14:::1;:30:::0;;;;17080:15:::1;:32:::0;;;;17123:12:::1;:26:::0;17160:13:::1;:28:::0;16905:291::o;7581:199::-;7686:4;7708:42;7718:12;:10;:12::i;:::-;7732:9;7743:6;7708:9;:42::i;5588:36::-;;;;;;;;;;;;;;;:::o;12741:236::-;12807:19;;-1:-1:-1;;;;;12807:19:0;12791:12;:10;:12::i;:::-;-1:-1:-1;;;;;12791:35:0;;:72;;;-1:-1:-1;12846:17:0;;-1:-1:-1;;;;;12846:17:0;12830:12;:10;:12::i;:::-;-1:-1:-1;;;;;12830:33:0;;12791:72;12783:81;;;;;;12875:23;12901:24;12919:4;12901:9;:24::i;:::-;12875:50;;12936:33;12953:15;12936:16;:33::i;17818:234::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;17935:9:::1;17931:114;17950:19:::0;;::::1;17931:114;;;18025:8;17991:18;:31;18010:8;;18019:1;18010:11;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;18010:11:0::1;17991:31:::0;;-1:-1:-1;17991:31:0;::::1;::::0;;;;;;-1:-1:-1;17991:31:0;:42;;-1:-1:-1;;17991:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17971:3:0::1;17931:114;;;;17818:234:::0;;;:::o;7788:184::-;-1:-1:-1;;;;;7937:18:0;;;7905:7;7937:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7788:184::o;17695:115::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;17772:14:::1;:30:::0;17695:115::o;1717:244::-;1484:12;:10;:12::i;:::-;1474:6;;-1:-1:-1;;;;;1474:6:0;;;:22;;;1466:67;;;;;-1:-1:-1;;;1466:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1466:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;1806:22:0;::::1;1798:73;;;;-1:-1:-1::0;;;1798:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1908:6;::::0;;1887:38:::1;::::0;-1:-1:-1;;;;;1887:38:0;;::::1;::::0;1908:6;::::1;::::0;1887:38:::1;::::0;::::1;1936:6;:17:::0;;-1:-1:-1;;;;;;1936:17:0::1;-1:-1:-1::0;;;;;1936:17:0;;;::::1;::::0;;;::::1;::::0;;1717:244::o;106:98::-;186:10;106:98;:::o;9318:369::-;-1:-1:-1;;;;;9445:19:0;;9437:68;;;;-1:-1:-1;;;9437:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9524:21:0;;9516:68;;;;-1:-1:-1;;;9516:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9595:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9647:32;;;;;;;;;;;;;;;;;9318:369;;;:::o;9695:2331::-;-1:-1:-1;;;;;9817:18:0;;9809:68;;;;-1:-1:-1;;;9809:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9896:16:0;;9888:64;;;;-1:-1:-1;;;9888:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9980:1;9971:6;:10;9963:64;;;;-1:-1:-1;;;9963:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10052:7;:5;:7::i;:::-;-1:-1:-1;;;;;10044:15:0;:4;-1:-1:-1;;;;;10044:15:0;;;:32;;;;;10069:7;:5;:7::i;:::-;-1:-1:-1;;;;;10063:13:0;:2;-1:-1:-1;;;;;10063:13:0;;;10044:32;10040:1260;;;10133:11;;-1:-1:-1;;;10133:11:0;;;;10128:144;;10181:7;:5;:7::i;:::-;-1:-1:-1;;;;;10173:15:0;:4;-1:-1:-1;;;;;10173:15:0;;10165:91;;;;-1:-1:-1;;;10165:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10306:12;;10296:6;:22;;10288:63;;;;;-1:-1:-1;;;10288:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10375:10:0;;;;;;:4;:10;;;;;;;;10374:11;:24;;;;-1:-1:-1;;;;;;10390:8:0;;;;;;:4;:8;;;;;;;;10389:9;10374:24;10366:72;;;;-1:-1:-1;;;10366:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10464:13;;-1:-1:-1;;;;;10458:19:0;;;10464:13;;10458:19;10455:147;;10532:14;;10522:6;10506:13;10516:2;10506:9;:13::i;:::-;:22;:40;;10498:88;;;;-1:-1:-1;;;10498:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10618:28;10649:24;10667:4;10649:9;:24::i;:::-;10727:19;;10790:12;;10618:55;;-1:-1:-1;10703:43:0;;;;10766:36;;10763:124;;10859:12;;10836:35;;10763:124;10907:7;:18;;;;-1:-1:-1;10919:6:0;;-1:-1:-1;;;10919:6:0;;;;10918:7;10907:18;:43;;;;-1:-1:-1;10937:13:0;;-1:-1:-1;;;;;10929:21:0;;;10937:13;;10929:21;;10907:43;:58;;;;-1:-1:-1;10954:11:0;;-1:-1:-1;;;10954:11:0;;;;10907:58;:87;;;;-1:-1:-1;;;;;;10970:24:0;;;;;;:18;:24;;;;;;;;10969:25;10907:87;:114;;;;-1:-1:-1;;;;;;10999:22:0;;;;;;:18;:22;;;;;;;;10998:23;10907:114;10903:386;;;11042:38;11059:20;11042:16;:38::i;:::-;11128:21;11172:22;;11168:106;;11219:35;11232:21;11219:12;:35::i;:::-;10903:386;;10040:1260;;;-1:-1:-1;;;;;11376:24:0;;11312:12;11376:24;;;:18;:24;;;;;;11327:4;;11376:24;;;:50;;-1:-1:-1;;;;;;11404:22:0;;;;;;:18;:22;;;;;;;;11376:50;11375:102;;;-1:-1:-1;11440:13:0;;-1:-1:-1;;;;;11432:21:0;;;11440:13;;11432:21;;;;:44;;-1:-1:-1;11463:13:0;;-1:-1:-1;;;;;11457:19:0;;;11463:13;;11457:19;;11432:44;11371:594;;;-1:-1:-1;11504:5:0;11371:594;;;11587:13;;-1:-1:-1;;;;;11579:21:0;;;11587:13;;11579:21;:55;;;;-1:-1:-1;11618:15:0;;-1:-1:-1;;;;;11604:30:0;;;11618:15;;11604:30;;11579:55;11576:162;;;11667:14;;11655:9;:26;11710:12;;11700:7;:22;11576:162;11797:13;;-1:-1:-1;;;;;11791:19:0;;;11797:13;;11791:19;:55;;;;-1:-1:-1;11830:15:0;;-1:-1:-1;;;;;11814:32:0;;;11830:15;;11814:32;;11791:55;11787:165;;;11879:15;;11867:9;:27;11923:13;;11913:7;:23;11787:165;11977:41;11992:4;11998:2;12002:6;12010:7;11977:14;:41::i;2325:224::-;2445:7;2481:12;2473:6;;;;2465:29;;;;-1:-1:-1;;;2465:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2517:5:0;;;2325:224::o;12525:99::-;12582:17;;:34;;-1:-1:-1;;;;;12582:17:0;;;;:34;;;;;12609:6;;12582:17;:34;:17;:34;12609:6;12582:17;:34;;;;;;;;;;;;;;;;;;;8635:323;8730:7;8788;;8777;:18;;8755:110;;;;-1:-1:-1;;;8755:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8876:19;8898:10;:8;:10::i;:::-;8876:32;-1:-1:-1;8926:24:0;:7;8876:32;8926:11;:24::i;:::-;8919:31;8635:323;-1:-1:-1;;;8635:323:0:o;12034:483::-;6347:6;:13;;-1:-1:-1;;;;6347:13:0;-1:-1:-1;;;6347:13:0;;;12136:16:::1;::::0;;12150:1:::1;12136:16:::0;;;12112:21:::1;12136:16:::0;;::::1;::::0;;12112:21;12136:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12136:16:0::1;12112:40;;12181:4;12163;12168:1;12163:7;;;;;;;;-1:-1:-1::0;;;;;12163:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12207:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12207:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12163:7;;12207:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12207:22:0;12197:7;;:4;;12202:1:::1;::::0;12197:7;::::1;;;;;-1:-1:-1::0;;;;;12197:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12272:15:::1;::::0;12240:62:::1;::::0;12257:4:::1;::::0;12272:15:::1;12290:11:::0;12240:8:::1;:62::i;:::-;12313:15;::::0;:196:::1;::::0;-1:-1:-1;;;12313:196:0;;::::1;::::0;::::1;::::0;;;:15:::1;:196:::0;;;;;;12463:4:::1;12313:196:::0;;;;;;12483:15:::1;12313:196:::0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12313:15:0;;::::1;::::0;:66:::1;::::0;12394:11;;12436:4;;12463;12483:15;12313:196;;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;:15;:196:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6383:6:0;:14;;-1:-1:-1;;;;6383:14:0;;;-1:-1:-1;;;;12034:483:0:o;13507:282::-;13663:7;13658:28;;13672:14;:12;:14::i;:::-;13697:44;13715:6;13723:9;13734:6;13697:17;:44::i;:::-;13757:7;13752:29;;13766:15;:13;:15::i;16468:164::-;16510:7;16531:15;16548;16567:19;:17;:19::i;:::-;16530:56;;-1:-1:-1;16530:56:0;-1:-1:-1;16604:20:0;16530:56;;16604:11;:20::i;:::-;16597:27;;;;16468:164;:::o;2811:132::-;2869:7;2896:39;2900:1;2903;2896:39;;;;;;;;;;;;;;;;;:3;:39::i;8966:219::-;9013:9;;:14;:30;;;;-1:-1:-1;9031:7:0;;:12;9013:30;9009:43;;;9045:7;;9009:43;9084:9;;;9064:17;:29;9122:7;;;9104:15;:25;-1:-1:-1;9142:13:0;;;;9166:11;8966:219;:::o;13797:610::-;13944:15;13974:23;14012:12;14039:23;14077:12;14104:13;14131:19;14142:7;14131:10;:19::i;:::-;-1:-1:-1;;;;;14179:15:0;;;;;;:7;:15;;;;;;13929:221;;-1:-1:-1;13929:221:0;;-1:-1:-1;13929:221:0;;-1:-1:-1;13929:221:0;-1:-1:-1;13929:221:0;-1:-1:-1;13929:221:0;-1:-1:-1;14179:28:0;;13929:221;14179:19;:28::i;:::-;-1:-1:-1;;;;;14161:15:0;;;;;;;:7;:15;;;;;;:46;;;;14239:18;;;;;;;:39;;14262:15;14239:22;:39::i;:::-;-1:-1:-1;;;;;14218:18:0;;;;;;:7;:18;;;;;:60;14289:16;14299:5;14289:9;:16::i;:::-;14316:23;14328:4;14334;14316:11;:23::i;:::-;14372:9;-1:-1:-1;;;;;14355:44:0;14364:6;-1:-1:-1;;;;;14355:44:0;;14383:15;14355:44;;;;;;;;;;;;;;;;;;13797:610;;;;;;;;;:::o;9193:117::-;9249:17;;9237:9;:29;9287:15;;9277:7;:25;9193:117::o;16640:257::-;16738:7;;16691;;;;5077:15;16806:20;16738:7;5077:15;16806:11;:20::i;:::-;16796:7;:30;16792:61;;;16836:7;;5077:15;16828:25;;;;;;;;16792:61;16872:7;;-1:-1:-1;16881:7:0;-1:-1:-1;16640:257:0;;;:::o;2951:223::-;3071:7;3106:12;3099:5;3091:28;;;;-1:-1:-1;;;3091:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3130:9;3146:1;3142;:5;;;;;;;2951:223;-1:-1:-1;;;;;2951:223:0:o;14826:615::-;14926:7;14948;14970;14992;15014;15036;15072:23;15097:12;15111:13;15141:40;15153:7;15162:9;;15173:7;;15141:11;:40::i;:::-;15071:110;;;;;;15192:19;15214:10;:8;:10::i;:::-;15192:32;;15236:15;15253:23;15278:12;15307:46;15319:7;15328:4;15334:5;15341:11;15307;:46::i;:::-;15235:118;;-1:-1:-1;15235:118:0;-1:-1:-1;15235:118:0;-1:-1:-1;15404:15:0;;-1:-1:-1;15421:4:0;;-1:-1:-1;15427:5:0;;-1:-1:-1;;;;;14826:615:0;;;;;;;:::o;2181:136::-;2239:7;2266:43;2270:1;2273;2266:43;;;;;;;;;;;;;;;;;:3;:43::i;1994:179::-;2052:7;2084:5;;;2108:6;;;;2100:46;;;;;-1:-1:-1;;;2100:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;14415:211;14468:19;14490:10;:8;:10::i;:::-;14468:32;-1:-1:-1;14511:13:0;14527:22;:5;14468:32;14527:9;:22::i;:::-;14601:4;14585:22;;;;:7;:22;;;;;;14511:38;;-1:-1:-1;14585:33:0;;14511:38;14585:26;:33::i;:::-;14576:4;14560:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14415:211:0:o;14634:147::-;14712:7;;:17;;14724:4;14712:11;:17::i;:::-;14702:7;:27;14753:10;;:20;;14768:4;14753:14;:20::i;:::-;14740:10;:33;-1:-1:-1;;14634:147:0:o;15449:469::-;15618:7;;;;15712:30;15738:3;15712:21;:7;15724:8;15712:11;:21::i;:::-;:25;;:30::i;:::-;15697:45;-1:-1:-1;15753:13:0;15769:28;15793:3;15769:19;:7;15781:6;15769:11;:19::i;:28::-;15753:44;-1:-1:-1;15808:23:0;15834:28;15753:44;15834:17;:7;15846:4;15834:11;:17::i;:::-;:21;;:28::i;:::-;15808:54;15898:4;;-1:-1:-1;15904:5:0;;-1:-1:-1;15449:469:0;;-1:-1:-1;;;;;15449:469:0:o;15926:534::-;16120:7;;;;16217:24;:7;16229:11;16217;:24::i;:::-;16199:42;-1:-1:-1;16252:12:0;16267:21;:4;16276:11;16267:8;:21::i;:::-;16252:36;-1:-1:-1;16299:13:0;16315:22;:5;16325:11;16315:9;:22::i;:::-;16299:38;-1:-1:-1;16348:23:0;16374:28;16299:38;16374:17;:7;16386:4;16374:11;:17::i;:28::-;16421:7;;;;-1:-1:-1;16447:4:0;;-1:-1:-1;15926:534:0;;-1:-1:-1;;;;;;;15926:534:0:o;2557:246::-;2615:7;2639:6;2635:47;;-1:-1:-1;2669:1:0;2662:8;;2635:47;2704:5;;;2708:1;2704;:5;:1;2728:5;;;;;:10;2720:56;;;;-1:-1:-1;;;2720:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

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