ETH Price: $2,924.78 (-7.67%)
Gas: 10 Gwei

Token

Neboola AI (NAI)
 

Overview

Max Total Supply

100,000,000 NAI

Holders

264 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.98961687088 NAI

Value
$0.00
0x482808837c11822579abc52e43cc47c6a4926ed6
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The Future of LLM - Revolutionizing Language Models with Decentralized, Open Source, and Powered by IPFS for a Future of Collaborative Intelligence.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NeboolaAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// Neboola.ai represents a leading company in artificial intelligence, similar to AI chat generators 
// but distinctly using open-source models inspired by prominent frameworks such as GPT-3.5 
// and LLama Middle innovation reflects a commitment to decentralization,
// built on AI paradigms that deviate from traditional constraints There is freedom. 

// Website  : https://neboola.Ai/
// Docs     : https://docs.neboola.Ai
// Twitter  : https://twitter.com/neboolaAi/
// Telegram : https://t.me/neboolaAi
// github   : https://github.com/neboolaAi
// Medium   : https://medium.com/@neboola.ai

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

contract Ownable is Context {
    address private _owner;
    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);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract NeboolaAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;
    address private constant deadAddress = address(0xdead);

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=10;
    uint256 private _finalSellTax=15;
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=45;
    uint256 private _preventSwapBefore=40;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"Neboola AI";
    string private constant _symbol = unicode"NAI";
    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private initialized;
    bool private tradingOpen;
    bool private limitEffect = true;
    bool private inSwap = false;
    bool private swapEnabled = false;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(address(this), uniswapV2Router.WETH()
        );

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[deadAddress]= true;
        _isExcludedFromFee[address(this)] = 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 _balances[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 _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "ERC20: approve 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) && to != address(0), "ERC20: transfer the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;

        if (from != owner() && to != owner()) { 

            if (!tradingOpen) {
                require( 
                  _isExcludedFromFee[from] || _isExcludedFromFee[to],
                  "trading is not yet open"
                );
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                if (limitEffect) {
                    require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                    require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                } 
                _buyCount++;
            }
            
            if ( to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul 
                ((_buyCount>_reduceSellTaxAt)
                    ?_finalSellTax:_initialSellTax).div(100
                );
            } else if (from == uniswapV2Pair && to!= address(this) ){
                taxAmount = amount.mul
                ((_buyCount>_reduceBuyTaxAt)
                    ?_finalBuyTax:_initialBuyTax).div(100
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap && 
                to == uniswapV2Pair && 
                swapEnabled && 
                contractTokenBalance>_taxSwapThreshold && 
                _buyCount>_preventSwapBefore
            ){
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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 initialize(address taxWallet) external onlyOwner() {
        require(!initialized,"initialize already added");
        _taxWallet = payable (taxWallet);
        _isExcludedFromFee[taxWallet] = true;
        uint256 tokenAmount = balanceOf(address(this)).sub(_tTotal.mul(_initialBuyTax).div(100));
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance} (
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
        initialized=true;
    }

    function removeLimits () external onlyOwner returns (bool){
        limitEffect = false;
        return true;
    }
    
    function finalTax (uint256 _value) external onlyOwner returns (bool) {
        require(_value <= 10 && tradingOpen, "Exceeds value");
        _finalBuyTax = _value;
        _finalSellTax = _value;
        return true;
    }

    function openTrading() external onlyOwner returns (bool) {
        require(!tradingOpen && initialized,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        return true;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","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":"_taxSwapThreshold","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"finalTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"taxWallet","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

608060405260146005556014600655600a600755600f600855601e600955602d600a556028600b556000600c556012600a6200003c919062000601565b6200004b90620f424062000619565b600d556200005c6012600a62000601565b6200006b90620f424062000619565b600e556200007c6012600a62000601565b6200008b90620186a062000619565b600f556200009c6012600a62000601565b620000ab90620f424062000619565b6010556012805462ffffff60b01b1916600160b01b179055348015620000d057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915562000166903090620001506012600a62000601565b62000160906305f5e10062000619565b62000419565b601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e0919062000633565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000243573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000269919062000633565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dd919062000633565b601280546001600160a01b0319166001600160a01b03929092169190911781556200030a90600a62000601565b6200031a906305f5e10062000619565b336000908152600160208190526040822092909255600390620003456000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905560039092527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c80548416600190811790915530835291208054909216179055620003b83390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003f26012600a62000601565b62000402906305f5e10062000619565b60405190815260200160405180910390a36200065e565b6001600160a01b038316158015906200043a57506001600160a01b03821615155b6200048b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a20617070726f766520746865207a65726f206164647265737300604482015260640160405180910390fd5b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000543578160001904821115620005275762000527620004ec565b808516156200053557918102915b93841c939080029062000507565b509250929050565b6000826200055c57506001620005fb565b816200056b57506000620005fb565b81600181146200058457600281146200058f57620005af565b6001915050620005fb565b60ff841115620005a357620005a3620004ec565b50506001821b620005fb565b5060208310610133831016604e8410600b8410161715620005d4575081810a620005fb565b620005e0838362000502565b8060001904821115620005f757620005f7620004ec565b0290505b92915050565b60006200061260ff8416836200054b565b9392505050565b8082028115828204841417620005fb57620005fb620004ec565b6000602082840312156200064657600080fd5b81516001600160a01b03811681146200061257600080fd5b61171f806200066e6000396000f3fe6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb14610310578063bf474bed14610330578063c4d66de814610346578063c9567bf914610366578063dd62ed3e1461037b57600080fd5b80637d1db4a5146102705780638da5cb5b146102865780638f9a55c0146102ae57806395d89b41146102c4578063a6334c6d146102f057600080fd5b806323b872dd116100e757806323b872dd146101d2578063313ce567146101f257806370a082311461020e578063715018a614610244578063751039fc1461025b57600080fd5b806306fdde0314610124578063095ea7b3146101695780630faee56f1461019957806318160ddd146101bd57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600a8152694e65626f6f6c6120414960b01b60208201525b60405161016091906112d5565b60405180910390f35b34801561017557600080fd5b5061018961018436600461133b565b6103c1565b6040519015158152602001610160565b3480156101a557600080fd5b506101af60105481565b604051908152602001610160565b3480156101c957600080fd5b506101af6103d8565b3480156101de57600080fd5b506101896101ed366004611367565b6103f9565b3480156101fe57600080fd5b5060405160128152602001610160565b34801561021a57600080fd5b506101af6102293660046113a8565b6001600160a01b031660009081526001602052604090205490565b34801561025057600080fd5b50610259610462565b005b34801561026757600080fd5b506101896104df565b34801561027c57600080fd5b506101af600d5481565b34801561029257600080fd5b506000546040516001600160a01b039091168152602001610160565b3480156102ba57600080fd5b506101af600e5481565b3480156102d057600080fd5b506040805180820190915260038152624e414960e81b6020820152610153565b3480156102fc57600080fd5b5061018961030b3660046113c5565b61051d565b34801561031c57600080fd5b5061018961032b36600461133b565b6105ac565b34801561033c57600080fd5b506101af600f5481565b34801561035257600080fd5b506102596103613660046113a8565b6105b9565b34801561037257600080fd5b5061018961083c565b34801561038757600080fd5b506101af6103963660046113de565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103ce3384846108f5565b5060015b92915050565b60006103e66012600a611511565b6103f4906305f5e100611520565b905090565b60006104068484846109c2565b6104588433610453856040518060600160405280602881526020016116c2602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f34565b6108f5565b5060019392505050565b6000546001600160a01b031633146104955760405162461bcd60e51b815260040161048c90611537565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b0316331461050a5760405162461bcd60e51b815260040161048c90611537565b506012805460ff60b01b19169055600190565b600080546001600160a01b031633146105485760405162461bcd60e51b815260040161048c90611537565b600a82111580156105625750601254600160a81b900460ff165b61059e5760405162461bcd60e51b815260206004820152600d60248201526c457863656564732076616c756560981b604482015260640161048c565b506007819055600855600190565b60006103ce3384846109c2565b6000546001600160a01b031633146105e35760405162461bcd60e51b815260040161048c90611537565b601254600160a01b900460ff161561063d5760405162461bcd60e51b815260206004820152601860248201527f696e697469616c697a6520616c72656164792061646465640000000000000000604482015260640161048c565b600480546001600160a01b0319166001600160a01b0383169081179091556000908152600360205260408120805460ff191660011790556005546106c2906106ac906064906106a6906106926012600a611511565b6106a0906305f5e100611520565b90610f6e565b90610ff7565b3060009081526001602052604090205490611039565b6011549091506106f19030906001600160a01b03166106e36012600a611511565b610453906305f5e100611520565b6011546001600160a01b031663f305d71947308460008061071a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610782573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107a7919061156c565b505060125460115460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610800573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610824919061159a565b50506012805460ff60a01b1916600160a01b17905550565b600080546001600160a01b031633146108675760405162461bcd60e51b815260040161048c90611537565b601254600160a81b900460ff1615801561088a5750601254600160a01b900460ff165b6108d65760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161048c565b506012805463ff0000ff60a81b1916630100000160a81b179055600190565b6001600160a01b0383161580159061091557506001600160a01b03821615155b6109615760405162461bcd60e51b815260206004820152601f60248201527f45524332303a20617070726f766520746865207a65726f206164647265737300604482015260640161048c565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316158015906109e257506001600160a01b03821615155b610a2e5760405162461bcd60e51b815260206004820181905260248201527f45524332303a207472616e7366657220746865207a65726f2061646472657373604482015260640161048c565b60008111610a905760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161048c565b600080546001600160a01b03858116911614801590610abd57506000546001600160a01b03848116911614155b15610df157601254600160a81b900460ff16610b5e576001600160a01b03841660009081526003602052604090205460ff1680610b1257506001600160a01b03831660009081526003602052604090205460ff165b610b5e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206973206e6f7420796574206f70656e000000000000000000604482015260640161048c565b6012546001600160a01b038581169116148015610b8957506011546001600160a01b03848116911614155b8015610bae57506001600160a01b03831660009081526003602052604090205460ff16155b15610ca857601254600160b01b900460ff1615610c9257600d54821115610c175760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161048c565b600e5482610c3a856001600160a01b031660009081526001602052604090205490565b610c4491906115bc565b1115610c925760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161048c565b600c8054906000610ca2836115cf565b91905055505b6012546001600160a01b038481169116148015610cce57506001600160a01b0384163014155b15610d0057610cf960646106a6600a54600c5411610cee57600654610cf2565b6008545b8590610f6e565b9050610d53565b6012546001600160a01b038581169116148015610d2657506001600160a01b0383163014155b15610d5357610d5060646106a6600954600c5411610d4657600554610cf2565b6007548590610f6e565b90505b30600090815260016020526040902054601254600160b81b900460ff16158015610d8a57506012546001600160a01b038581169116145b8015610d9f5750601254600160c01b900460ff165b8015610dac5750600f5481115b8015610dbb5750600b54600c54115b15610def57610ddd610dd884610dd38460105461107b565b61107b565b611090565b478015610ded57610ded4761120a565b505b505b8015610e6b5730600090815260016020526040902054610e119082611248565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e629085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610e8e9083611039565b6001600160a01b038516600090815260016020526040902055610ed3610eb48383611039565b6001600160a01b03851660009081526001602052604090205490611248565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f1d8585611039565b60405190815260200160405180910390a350505050565b60008184841115610f585760405162461bcd60e51b815260040161048c91906112d5565b506000610f6584866115e8565b95945050505050565b600082600003610f80575060006103d2565b6000610f8c8385611520565b905082610f9985836115fb565b14610ff05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161048c565b9392505050565b6000610ff083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112a7565b6000610ff083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f34565b600081831161108a5782610ff0565b50919050565b6012805460ff60b81b1916600160b81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110d8576110d861161d565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111559190611633565b816001815181106111685761116861161d565b6001600160a01b03928316602091820292909201015260115461118e91309116846108f5565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c7908590600090869030904290600401611650565b600060405180830381600087803b1580156111e157600080fd5b505af11580156111f5573d6000803e3d6000fd5b50506012805460ff60b81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611244573d6000803e3d6000fd5b5050565b60008061125583856115bc565b905083811015610ff05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161048c565b600081836112c85760405162461bcd60e51b815260040161048c91906112d5565b506000610f6584866115fb565b600060208083528351808285015260005b81811015611302578581018301518582016040015282016112e6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461133857600080fd5b50565b6000806040838503121561134e57600080fd5b823561135981611323565b946020939093013593505050565b60008060006060848603121561137c57600080fd5b833561138781611323565b9250602084013561139781611323565b929592945050506040919091013590565b6000602082840312156113ba57600080fd5b8135610ff081611323565b6000602082840312156113d757600080fd5b5035919050565b600080604083850312156113f157600080fd5b82356113fc81611323565b9150602083013561140c81611323565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561146857816000190482111561144e5761144e611417565b8085161561145b57918102915b93841c9390800290611432565b509250929050565b60008261147f575060016103d2565b8161148c575060006103d2565b81600181146114a257600281146114ac576114c8565b60019150506103d2565b60ff8411156114bd576114bd611417565b50506001821b6103d2565b5060208310610133831016604e8410600b84101617156114eb575081810a6103d2565b6114f5838361142d565b806000190482111561150957611509611417565b029392505050565b6000610ff060ff841683611470565b80820281158282048414176103d2576103d2611417565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561158157600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156115ac57600080fd5b81518015158114610ff057600080fd5b808201808211156103d2576103d2611417565b6000600182016115e1576115e1611417565b5060010190565b818103818111156103d2576103d2611417565b60008261161857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561164557600080fd5b8151610ff081611323565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116a05784516001600160a01b03168352938301939183019160010161167b565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220de34e7bd0c5ba06377b7e29ca93a8d8f86ba34f738b2cdd66309979d3d3f51cb64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101185760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb14610310578063bf474bed14610330578063c4d66de814610346578063c9567bf914610366578063dd62ed3e1461037b57600080fd5b80637d1db4a5146102705780638da5cb5b146102865780638f9a55c0146102ae57806395d89b41146102c4578063a6334c6d146102f057600080fd5b806323b872dd116100e757806323b872dd146101d2578063313ce567146101f257806370a082311461020e578063715018a614610244578063751039fc1461025b57600080fd5b806306fdde0314610124578063095ea7b3146101695780630faee56f1461019957806318160ddd146101bd57600080fd5b3661011f57005b600080fd5b34801561013057600080fd5b5060408051808201909152600a8152694e65626f6f6c6120414960b01b60208201525b60405161016091906112d5565b60405180910390f35b34801561017557600080fd5b5061018961018436600461133b565b6103c1565b6040519015158152602001610160565b3480156101a557600080fd5b506101af60105481565b604051908152602001610160565b3480156101c957600080fd5b506101af6103d8565b3480156101de57600080fd5b506101896101ed366004611367565b6103f9565b3480156101fe57600080fd5b5060405160128152602001610160565b34801561021a57600080fd5b506101af6102293660046113a8565b6001600160a01b031660009081526001602052604090205490565b34801561025057600080fd5b50610259610462565b005b34801561026757600080fd5b506101896104df565b34801561027c57600080fd5b506101af600d5481565b34801561029257600080fd5b506000546040516001600160a01b039091168152602001610160565b3480156102ba57600080fd5b506101af600e5481565b3480156102d057600080fd5b506040805180820190915260038152624e414960e81b6020820152610153565b3480156102fc57600080fd5b5061018961030b3660046113c5565b61051d565b34801561031c57600080fd5b5061018961032b36600461133b565b6105ac565b34801561033c57600080fd5b506101af600f5481565b34801561035257600080fd5b506102596103613660046113a8565b6105b9565b34801561037257600080fd5b5061018961083c565b34801561038757600080fd5b506101af6103963660046113de565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103ce3384846108f5565b5060015b92915050565b60006103e66012600a611511565b6103f4906305f5e100611520565b905090565b60006104068484846109c2565b6104588433610453856040518060600160405280602881526020016116c2602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f34565b6108f5565b5060019392505050565b6000546001600160a01b031633146104955760405162461bcd60e51b815260040161048c90611537565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b0316331461050a5760405162461bcd60e51b815260040161048c90611537565b506012805460ff60b01b19169055600190565b600080546001600160a01b031633146105485760405162461bcd60e51b815260040161048c90611537565b600a82111580156105625750601254600160a81b900460ff165b61059e5760405162461bcd60e51b815260206004820152600d60248201526c457863656564732076616c756560981b604482015260640161048c565b506007819055600855600190565b60006103ce3384846109c2565b6000546001600160a01b031633146105e35760405162461bcd60e51b815260040161048c90611537565b601254600160a01b900460ff161561063d5760405162461bcd60e51b815260206004820152601860248201527f696e697469616c697a6520616c72656164792061646465640000000000000000604482015260640161048c565b600480546001600160a01b0319166001600160a01b0383169081179091556000908152600360205260408120805460ff191660011790556005546106c2906106ac906064906106a6906106926012600a611511565b6106a0906305f5e100611520565b90610f6e565b90610ff7565b3060009081526001602052604090205490611039565b6011549091506106f19030906001600160a01b03166106e36012600a611511565b610453906305f5e100611520565b6011546001600160a01b031663f305d71947308460008061071a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610782573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107a7919061156c565b505060125460115460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610800573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610824919061159a565b50506012805460ff60a01b1916600160a01b17905550565b600080546001600160a01b031633146108675760405162461bcd60e51b815260040161048c90611537565b601254600160a81b900460ff1615801561088a5750601254600160a01b900460ff165b6108d65760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161048c565b506012805463ff0000ff60a81b1916630100000160a81b179055600190565b6001600160a01b0383161580159061091557506001600160a01b03821615155b6109615760405162461bcd60e51b815260206004820152601f60248201527f45524332303a20617070726f766520746865207a65726f206164647265737300604482015260640161048c565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316158015906109e257506001600160a01b03821615155b610a2e5760405162461bcd60e51b815260206004820181905260248201527f45524332303a207472616e7366657220746865207a65726f2061646472657373604482015260640161048c565b60008111610a905760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161048c565b600080546001600160a01b03858116911614801590610abd57506000546001600160a01b03848116911614155b15610df157601254600160a81b900460ff16610b5e576001600160a01b03841660009081526003602052604090205460ff1680610b1257506001600160a01b03831660009081526003602052604090205460ff165b610b5e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e67206973206e6f7420796574206f70656e000000000000000000604482015260640161048c565b6012546001600160a01b038581169116148015610b8957506011546001600160a01b03848116911614155b8015610bae57506001600160a01b03831660009081526003602052604090205460ff16155b15610ca857601254600160b01b900460ff1615610c9257600d54821115610c175760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161048c565b600e5482610c3a856001600160a01b031660009081526001602052604090205490565b610c4491906115bc565b1115610c925760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161048c565b600c8054906000610ca2836115cf565b91905055505b6012546001600160a01b038481169116148015610cce57506001600160a01b0384163014155b15610d0057610cf960646106a6600a54600c5411610cee57600654610cf2565b6008545b8590610f6e565b9050610d53565b6012546001600160a01b038581169116148015610d2657506001600160a01b0383163014155b15610d5357610d5060646106a6600954600c5411610d4657600554610cf2565b6007548590610f6e565b90505b30600090815260016020526040902054601254600160b81b900460ff16158015610d8a57506012546001600160a01b038581169116145b8015610d9f5750601254600160c01b900460ff165b8015610dac5750600f5481115b8015610dbb5750600b54600c54115b15610def57610ddd610dd884610dd38460105461107b565b61107b565b611090565b478015610ded57610ded4761120a565b505b505b8015610e6b5730600090815260016020526040902054610e119082611248565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e629085815260200190565b60405180910390a35b6001600160a01b038416600090815260016020526040902054610e8e9083611039565b6001600160a01b038516600090815260016020526040902055610ed3610eb48383611039565b6001600160a01b03851660009081526001602052604090205490611248565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f1d8585611039565b60405190815260200160405180910390a350505050565b60008184841115610f585760405162461bcd60e51b815260040161048c91906112d5565b506000610f6584866115e8565b95945050505050565b600082600003610f80575060006103d2565b6000610f8c8385611520565b905082610f9985836115fb565b14610ff05760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161048c565b9392505050565b6000610ff083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112a7565b6000610ff083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f34565b600081831161108a5782610ff0565b50919050565b6012805460ff60b81b1916600160b81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110d8576110d861161d565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111559190611633565b816001815181106111685761116861161d565b6001600160a01b03928316602091820292909201015260115461118e91309116846108f5565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906111c7908590600090869030904290600401611650565b600060405180830381600087803b1580156111e157600080fd5b505af11580156111f5573d6000803e3d6000fd5b50506012805460ff60b81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611244573d6000803e3d6000fd5b5050565b60008061125583856115bc565b905083811015610ff05760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161048c565b600081836112c85760405162461bcd60e51b815260040161048c91906112d5565b506000610f6584866115fb565b600060208083528351808285015260005b81811015611302578581018301518582016040015282016112e6565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461133857600080fd5b50565b6000806040838503121561134e57600080fd5b823561135981611323565b946020939093013593505050565b60008060006060848603121561137c57600080fd5b833561138781611323565b9250602084013561139781611323565b929592945050506040919091013590565b6000602082840312156113ba57600080fd5b8135610ff081611323565b6000602082840312156113d757600080fd5b5035919050565b600080604083850312156113f157600080fd5b82356113fc81611323565b9150602083013561140c81611323565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561146857816000190482111561144e5761144e611417565b8085161561145b57918102915b93841c9390800290611432565b509250929050565b60008261147f575060016103d2565b8161148c575060006103d2565b81600181146114a257600281146114ac576114c8565b60019150506103d2565b60ff8411156114bd576114bd611417565b50506001821b6103d2565b5060208310610133831016604e8410600b84101617156114eb575081810a6103d2565b6114f5838361142d565b806000190482111561150957611509611417565b029392505050565b6000610ff060ff841683611470565b80820281158282048414176103d2576103d2611417565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008060006060848603121561158157600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156115ac57600080fd5b81518015158114610ff057600080fd5b808201808211156103d2576103d2611417565b6000600182016115e1576115e1611417565b5060010190565b818103818111156103d2576103d2611417565b60008261161857634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561164557600080fd5b8151610ff081611323565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116a05784516001600160a01b03168352938301939183019160010161167b565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220de34e7bd0c5ba06377b7e29ca93a8d8f86ba34f738b2cdd66309979d3d3f51cb64736f6c63430008130033

Deployed Bytecode Sourcemap

4078:8182:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6198:83;;;;;;;;;;-1:-1:-1;6268:5:0;;;;;;;;;;;;-1:-1:-1;;;6268:5:0;;;;6198:83;;;;;;;:::i;:::-;;;;;;;;7031:161;;;;;;;;;;-1:-1:-1;7031:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7031:161:0;1023:187:1;5185:51:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5185:51:0;1215:177:1;6475:95:0;;;;;;;;;;;;;:::i;7200:313::-;;;;;;;;;;-1:-1:-1;7200:313:0;;;;;:::i;:::-;;:::i;6384:83::-;;;;;;;;;;-1:-1:-1;6384:83:0;;4813:2;2000:36:1;;1988:2;1973:18;6384:83:0;1858:184:1;6578:119:0;;;;;;;;;;-1:-1:-1;6578:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6671:18:0;6644:7;6671:18;;;:9;:18;;;;;;;6578:119;3161:148;;;;;;;;;;;;;:::i;:::-;;11636:118;;;;;;;;;;;;;:::i;5000:53::-;;;;;;;;;;;;;;;;2947:79;;;;;;;;;;-1:-1:-1;2985:7:0;3012:6;2947:79;;-1:-1:-1;;;;;3012:6:0;;;2445:51:1;;2433:2;2418:18;2947:79:0;2299:203:1;5060:55:0;;;;;;;;;;;;;;;;6289:87;;;;;;;;;;-1:-1:-1;6361:7:0;;;;;;;;;;;;-1:-1:-1;;;6361:7:0;;;;6289:87;;11766:228;;;;;;;;;;-1:-1:-1;11766:228:0;;;;;:::i;:::-;;:::i;6705:167::-;;;;;;;;;;-1:-1:-1;6705:167:0;;;;;:::i;:::-;;:::i;5122:56::-;;;;;;;;;;;;;;;;10911:717;;;;;;;;;;-1:-1:-1;10911:717:0;;;;;:::i;:::-;;:::i;12002:218::-;;;;;;;;;;;;;:::i;6880:143::-;;;;;;;;;;-1:-1:-1;6880:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6988:18:0;;;6961:7;6988:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6880:143;7031:161;7106:4;7123:39;784:10;7146:7;7155:6;7123:8;:39::i;:::-;-1:-1:-1;7180:4:0;7031:161;;;;;:::o;6475:95::-;6528:7;4869:13;4813:2;4869;:13;:::i;:::-;4857:25;;:9;:25;:::i;:::-;6548:14;;6475:95;:::o;7200:313::-;7298:4;7315:36;7325:6;7333:9;7344:6;7315:9;:36::i;:::-;7362:121;7371:6;784:10;7393:89;7431:6;7393:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7393:19:0;;;;;;:11;:19;;;;;;;;784:10;7393:33;;;;;;;;;;:37;:89::i;:::-;7362:8;:121::i;:::-;-1:-1:-1;7501:4:0;7200:313;;;;;:::o;3161:148::-;3074:6;;-1:-1:-1;;;;;3074:6:0;784:10;3074:22;3066:67;;;;-1:-1:-1;;;3066:67:0;;;;;;;:::i;:::-;;;;;;;;;3268:1:::1;3252:6:::0;;3231:40:::1;::::0;-1:-1:-1;;;;;3252:6:0;;::::1;::::0;3231:40:::1;::::0;3268:1;;3231:40:::1;3299:1;3282:19:::0;;-1:-1:-1;;;;;;3282:19:0::1;::::0;;3161:148::o;11636:118::-;11689:4;3074:6;;-1:-1:-1;;;;;3074:6:0;784:10;3074:22;3066:67;;;;-1:-1:-1;;;3066:67:0;;;;;;;:::i;:::-;-1:-1:-1;11705:11:0::1;:19:::0;;-1:-1:-1;;;;11705:19:0::1;::::0;;;11636:118;:::o;11766:228::-;11829:4;3074:6;;-1:-1:-1;;;;;3074:6:0;784:10;3074:22;3066:67;;;;-1:-1:-1;;;3066:67:0;;;;;;;:::i;:::-;11864:2:::1;11854:6;:12;;:27;;;;-1:-1:-1::0;11870:11:0::1;::::0;-1:-1:-1;;;11870:11:0;::::1;;;11854:27;11846:53;;;::::0;-1:-1:-1;;;11846:53:0;;5336:2:1;11846:53:0::1;::::0;::::1;5318:21:1::0;5375:2;5355:18;;;5348:30;-1:-1:-1;;;5394:18:1;;;5387:43;5447:18;;11846:53:0::1;5134:337:1::0;11846:53:0::1;-1:-1:-1::0;11910:12:0::1;:21:::0;;;11942:13:::1;:22:::0;11982:4:::1;::::0;11766:228::o;6705:167::-;6783:4;6800:42;784:10;6824:9;6835:6;6800:9;:42::i;10911:717::-;3074:6;;-1:-1:-1;;;;;3074:6:0;784:10;3074:22;3066:67;;;;-1:-1:-1;;;3066:67:0;;;;;;;:::i;:::-;10991:11:::1;::::0;-1:-1:-1;;;10991:11:0;::::1;;;10990:12;10982:48;;;::::0;-1:-1:-1;;;10982:48:0;;5678:2:1;10982:48:0::1;::::0;::::1;5660:21:1::0;5717:2;5697:18;;;5690:30;5756:26;5736:18;;;5729:54;5800:18;;10982:48:0::1;5476:348:1::0;10982:48:0::1;11041:10;:32:::0;;-1:-1:-1;;;;;;11041:32:0::1;-1:-1:-1::0;;;;;11041:32:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;11084:29:0;;;:18:::1;:29;::::0;;;;:36;;-1:-1:-1;;11084:36:0::1;-1:-1:-1::0;11084:36:0::1;::::0;;11194:14:::1;::::0;11153:66:::1;::::0;11182:36:::1;::::0;11214:3:::1;::::0;11182:27:::1;::::0;4869:13:::1;4813:2;4869;:13;:::i;:::-;4857:25;::::0;:9:::1;:25;:::i;:::-;11182:11:::0;::::1;:27::i;:::-;:31:::0;::::1;:36::i;:::-;11171:4;6644:7:::0;6671:18;;;:9;:18;;;;;;11153:28;::::1;:66::i;:::-;11262:15;::::0;11131:88;;-1:-1:-1;11230:58:0::1;::::0;11247:4:::1;::::0;-1:-1:-1;;;;;11262:15:0::1;4869:13;4813:2;4869;:13;:::i;:::-;4857:25;::::0;:9:::1;:25;:::i;11230:58::-;11299:15;::::0;-1:-1:-1;;;;;11299:15:0::1;:31;11338:21;11384:4;11404:11:::0;11299:15:::1;::::0;11462:7:::1;2985::::0;3012:6;-1:-1:-1;;;;;3012:6:0;;2947:79;11462:7:::1;11299:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11299:211:0;;;-1:-1:-1;;;;;6188:15:1;;;11299:211:0::1;::::0;::::1;6170:34:1::0;6220:18;;;6213:34;;;;6263:18;;;6256:34;;;;6306:18;;;6299:34;6370:15;;;6349:19;;;6342:44;11484:15:0::1;6402:19:1::0;;;6395:35;6104:19;;11299:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11528:13:0::1;::::0;11559:15:::1;::::0;11521:71:::1;::::0;-1:-1:-1;;;11521:71:0;;-1:-1:-1;;;;;11559:15:0;;::::1;11521:71;::::0;::::1;6926:51:1::0;-1:-1:-1;;6993:18:1;;;6986:34;11528:13:0;::::1;::::0;-1:-1:-1;11521:29:0::1;::::0;6899:18:1;;11521:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11604:11:0::1;:16:::0;;-1:-1:-1;;;;11604:16:0::1;-1:-1:-1::0;;;11604:16:0::1;::::0;;-1:-1:-1;10911:717:0:o;12002:218::-;12053:4;3074:6;;-1:-1:-1;;;;;3074:6:0;784:10;3074:22;3066:67;;;;-1:-1:-1;;;3066:67:0;;;;;;;:::i;:::-;12079:11:::1;::::0;-1:-1:-1;;;12079:11:0;::::1;;;12078:12;:27:::0;::::1;;;-1:-1:-1::0;12094:11:0::1;::::0;-1:-1:-1;;;12094:11:0;::::1;;;12078:27;12070:62;;;::::0;-1:-1:-1;;;12070:62:0;;7515:2:1;12070:62:0::1;::::0;::::1;7497:21:1::0;7554:2;7534:18;;;7527:30;7593:25;7573:18;;;7566:53;7636:18;;12070:62:0::1;7313:347:1::0;12070:62:0::1;-1:-1:-1::0;12143:11:0::1;:18:::0;;-1:-1:-1;;;;12172:18:0;-1:-1:-1;;;12172:18:0;;;-1:-1:-1;;12002:218:0:o;7521:276::-;-1:-1:-1;;;;;7614:19:0;;;;;;:44;;-1:-1:-1;;;;;;7637:21:0;;;;7614:44;7606:88;;;;-1:-1:-1;;;7606:88:0;;7867:2:1;7606:88:0;;;7849:21:1;7906:2;7886:18;;;7879:30;7945:33;7925:18;;;7918:61;7996:18;;7606:88:0;7665:355:1;7606:88:0;-1:-1:-1;;;;;7705:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7757:32;;1361:25:1;;;7757:32:0;;1334:18:1;7757:32:0;;;;;;;7521:276;;;:::o;7805:2401::-;-1:-1:-1;;;;;7893:18:0;;;;;;:38;;-1:-1:-1;;;;;;7915:16:0;;;;7893:38;7885:83;;;;-1:-1:-1;;;7885:83:0;;8227:2:1;7885:83:0;;;8209:21:1;;;8246:18;;;8239:30;8305:34;8285:18;;;8278:62;8357:18;;7885:83:0;8025:356:1;7885:83:0;7996:1;7987:6;:10;7979:64;;;;-1:-1:-1;;;7979:64:0;;8588:2:1;7979:64:0;;;8570:21:1;8627:2;8607:18;;;8600:30;8666:34;8646:18;;;8639:62;-1:-1:-1;;;8717:18:1;;;8710:39;8766:19;;7979:64:0;8386:405:1;7979:64:0;8054:17;3012:6;;-1:-1:-1;;;;;8090:15:0;;;3012:6;;8090:15;;;;:32;;-1:-1:-1;2985:7:0;3012:6;-1:-1:-1;;;;;8109:13:0;;;3012:6;;8109:13;;8090:32;8086:1764;;;8147:11;;-1:-1:-1;;;8147:11:0;;;;8142:197;;-1:-1:-1;;;;;8208:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8236:22:0;;;;;;:18;:22;;;;;;;;8208:50;8179:144;;;;-1:-1:-1;;;8179:144:0;;8998:2:1;8179:144:0;;;8980:21:1;9037:2;9017:18;;;9010:30;9076:25;9056:18;;;9049:53;9119:18;;8179:144:0;8796:347:1;8179:144:0;8367:13;;-1:-1:-1;;;;;8359:21:0;;;8367:13;;8359:21;:55;;;;-1:-1:-1;8398:15:0;;-1:-1:-1;;;;;8384:30:0;;;8398:15;;8384:30;;8359:55;:83;;;;-1:-1:-1;;;;;;8420:22:0;;;;;;:18;:22;;;;;;;;8418:24;8359:83;8355:377;;;8468:11;;-1:-1:-1;;;8468:11:0;;;;8464:222;;;8522:12;;8512:6;:22;;8504:60;;;;-1:-1:-1;;;8504:60:0;;9350:2:1;8504:60:0;;;9332:21:1;9389:2;9369:18;;;9362:30;9428:27;9408:18;;;9401:55;9473:18;;8504:60:0;9148:349:1;8504:60:0;8621:14;;8611:6;8595:13;8605:2;-1:-1:-1;;;;;6671:18:0;6644:7;6671:18;;;:9;:18;;;;;;;6578:119;8595:13;:22;;;;:::i;:::-;:40;;8587:79;;;;-1:-1:-1;;;8587:79:0;;9834:2:1;8587:79:0;;;9816:21:1;9873:2;9853:18;;;9846:30;9912:28;9892:18;;;9885:56;9958:18;;8587:79:0;9632:350:1;8587:79:0;8705:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8355:377;8771:13;;-1:-1:-1;;;;;8765:19:0;;;8771:13;;8765:19;:43;;;;-1:-1:-1;;;;;;8788:20:0;;8803:4;8788:20;;8765:43;8760:471;;;8841:138;8957:3;8841:111;8882:16;;8872:9;;:26;8871:80;;8936:15;;8871:80;;;8922:13;;8871:80;8841:6;;:10;:111::i;:138::-;8829:150;;8760:471;;;9013:13;;-1:-1:-1;;;;;9005:21:0;;;9013:13;;9005:21;:43;;;;-1:-1:-1;;;;;;9030:18:0;;9043:4;9030:18;;9005:43;9001:230;;;9081:134;9193:3;9081:107;9121:15;;9111:9;;:25;9110:77;;9173:14;;9110:77;;;9160:12;;9081:6;;:10;:107::i;:134::-;9069:146;;9001:230;9296:4;9247:28;6671:18;;;:9;:18;;;;;;9340:6;;-1:-1:-1;;;9340:6:0;;;;9339:7;:48;;;;-1:-1:-1;9374:13:0;;-1:-1:-1;;;;;9368:19:0;;;9374:13;;9368:19;9339:48;:81;;;;-1:-1:-1;9409:11:0;;-1:-1:-1;;;9409:11:0;;;;9339:81;:141;;;;;9463:17;;9442:20;:38;9339:141;:191;;;;;9512:18;;9502:9;;:28;9339:191;9317:522;;;9564:67;9581:49;9585:6;9592:37;9596:20;9617:11;;9592:3;:37::i;:::-;9581:3;:49::i;:::-;9564:16;:67::i;:::-;9679:21;9722:22;;9719:105;;9769:35;9782:21;9769:12;:35::i;:::-;9545:294;9317:522;8124:1726;8086:1764;9865:11;;9862:161;;9933:4;9915:24;;;;:9;:24;;;;;;:39;;9944:9;9915:28;:39::i;:::-;9908:4;9890:24;;;;:9;:24;;;;;;;:64;;;;9972:39;;-1:-1:-1;;;;;9972:39:0;;;;;;;10001:9;1361:25:1;;1349:2;1334:18;;1215:177;9972:39:0;;;;;;;;9862:161;-1:-1:-1;;;;;10049:15:0;;;;;;:9;:15;;;;;;:27;;10069:6;10049:19;:27::i;:::-;-1:-1:-1;;;;;10033:15:0;;;;;;:9;:15;;;;;:43;10101:40;10119:21;:6;10130:9;10119:10;:21::i;:::-;-1:-1:-1;;;;;10101:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10087:13:0;;;;;;;:9;:13;;;;;:54;;;;10157:41;;;10176:21;:6;10187:9;10176:10;:21::i;:::-;10157:41;;1361:25:1;;;1349:2;1334:18;10157:41:0;;;;;;;7874:2332;7805:2401;;;:::o;1841:190::-;1927:7;1963:12;1955:6;;;;1947:29;;;;-1:-1:-1;;;1947:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1987:9:0;1999:5;2003:1;1999;:5;:::i;:::-;1987:17;1841:190;-1:-1:-1;;;;;1841:190:0:o;2039:246::-;2097:7;2121:1;2126;2121:6;2117:47;;-1:-1:-1;2151:1:0;2144:8;;2117:47;2174:9;2186:5;2190:1;2186;:5;:::i;:::-;2174:17;-1:-1:-1;2219:1:0;2210:5;2214:1;2174:17;2210:5;:::i;:::-;:10;2202:56;;;;-1:-1:-1;;;2202:56:0;;10684:2:1;2202:56:0;;;10666:21:1;10723:2;10703:18;;;10696:30;10762:34;10742:18;;;10735:62;-1:-1:-1;;;10813:18:1;;;10806:31;10854:19;;2202:56:0;10482:397:1;2202:56:0;2276:1;2039:246;-1:-1:-1;;;2039:246:0:o;2293:132::-;2351:7;2378:39;2382:1;2385;2378:39;;;;;;;;;;;;;;;;;:3;:39::i;1697:136::-;1755:7;1782:43;1786:1;1789;1782:43;;;;;;;;;;;;;;;;;:3;:43::i;10314:98::-;10371:7;10398:1;10396;:3;10395:9;;10403:1;10395:9;;;-1:-1:-1;10401:1:0;10314:98;-1:-1:-1;10314:98:0:o;10420:483::-;5537:6;:13;;-1:-1:-1;;;;5537:13:0;-1:-1:-1;;;5537:13:0;;;10522:16:::1;::::0;;10536:1:::1;10522:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10522:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10522:16:0::1;10498:40;;10567:4;10549;10554:1;10549:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10549:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10593:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10593:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10549:7;;10593:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10583:4;10588:1;10583:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10583:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10658:15:::1;::::0;10626:62:::1;::::0;10643:4:::1;::::0;10658:15:::1;10676:11:::0;10626:8:::1;:62::i;:::-;10699:15;::::0;:196:::1;::::0;-1:-1:-1;;;10699:196:0;;-1:-1:-1;;;;;10699:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10780:11;;10699:15:::1;::::0;10822:4;;10849::::1;::::0;10869:15:::1;::::0;10699:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5573:6:0;:14;;-1:-1:-1;;;;5573:14:0;;;-1:-1:-1;;;;10420:483:0:o;10214:92::-;10271:10;;:27;;-1:-1:-1;;;;;10271:10:0;;;;:27;;;;;10291:6;;10271:10;:27;:10;:27;10291:6;10271:10;:27;;;;;;;;;;;;;;;;;;;;;10214:92;:::o;1510:179::-;1568:7;;1600:5;1604:1;1600;:5;:::i;:::-;1588:17;;1629:1;1624;:6;;1616:46;;;;-1:-1:-1;;;1616:46:0;;12591:2:1;1616:46:0;;;12573:21:1;12630:2;12610:18;;;12603:30;12669:29;12649:18;;;12642:57;12716:18;;1616:46:0;12389:351:1;2433:189:0;2519:7;2554:12;2547:5;2539:28;;;;-1:-1:-1;;;2539:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2578:9:0;2590:5;2594:1;2590;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:180::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;-1:-1:-1;2658:23:1;;2507:180;-1:-1:-1;2507:180:1:o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:127::-;3146:10;3141:3;3137:20;3134:1;3127:31;3177:4;3174:1;3167:15;3201:4;3198:1;3191:15;3217:422;3306:1;3349:5;3306:1;3363:270;3384:7;3374:8;3371:21;3363:270;;;3443:4;3439:1;3435:6;3431:17;3425:4;3422:27;3419:53;;;3452:18;;:::i;:::-;3502:7;3492:8;3488:22;3485:55;;;3522:16;;;;3485:55;3601:22;;;;3561:15;;;;3363:270;;;3367:3;3217:422;;;;;:::o;3644:806::-;3693:5;3723:8;3713:80;;-1:-1:-1;3764:1:1;3778:5;;3713:80;3812:4;3802:76;;-1:-1:-1;3849:1:1;3863:5;;3802:76;3894:4;3912:1;3907:59;;;;3980:1;3975:130;;;;3887:218;;3907:59;3937:1;3928:10;;3951:5;;;3975:130;4012:3;4002:8;3999:17;3996:43;;;4019:18;;:::i;:::-;-1:-1:-1;;4075:1:1;4061:16;;4090:5;;3887:218;;4189:2;4179:8;4176:16;4170:3;4164:4;4161:13;4157:36;4151:2;4141:8;4138:16;4133:2;4127:4;4124:12;4120:35;4117:77;4114:159;;;-1:-1:-1;4226:19:1;;;4258:5;;4114:159;4305:34;4330:8;4324:4;4305:34;:::i;:::-;4375:6;4371:1;4367:6;4363:19;4354:7;4351:32;4348:58;;;4386:18;;:::i;:::-;4424:20;;3644:806;-1:-1:-1;;;3644:806:1:o;4455:140::-;4513:5;4542:47;4583:4;4573:8;4569:19;4563:4;4542:47;:::i;4600:168::-;4673:9;;;4704;;4721:15;;;4715:22;;4701:37;4691:71;;4742:18;;:::i;4773:356::-;4975:2;4957:21;;;4994:18;;;4987:30;5053:34;5048:2;5033:18;;5026:62;5120:2;5105:18;;4773:356::o;6441:306::-;6529:6;6537;6545;6598:2;6586:9;6577:7;6573:23;6569:32;6566:52;;;6614:1;6611;6604:12;6566:52;6643:9;6637:16;6627:26;;6693:2;6682:9;6678:18;6672:25;6662:35;;6737:2;6726:9;6722:18;6716:25;6706:35;;6441:306;;;;;:::o;7031:277::-;7098:6;7151:2;7139:9;7130:7;7126:23;7122:32;7119:52;;;7167:1;7164;7157:12;7119:52;7199:9;7193:16;7252:5;7245:13;7238:21;7231:5;7228:32;7218:60;;7274:1;7271;7264:12;9502:125;9567:9;;;9588:10;;;9585:36;;;9601:18;;:::i;9987:135::-;10026:3;10047:17;;;10044:43;;10067:18;;:::i;:::-;-1:-1:-1;10114:1:1;10103:13;;9987:135::o;10127:128::-;10194:9;;;10215:11;;;10212:37;;;10229:18;;:::i;10260:217::-;10300:1;10326;10316:132;;10370:10;10365:3;10361:20;10358:1;10351:31;10405:4;10402:1;10395:15;10433:4;10430:1;10423:15;10316:132;-1:-1:-1;10462:9:1;;10260:217::o;11016:127::-;11077:10;11072:3;11068:20;11065:1;11058:31;11108:4;11105:1;11098:15;11132:4;11129:1;11122:15;11148:251;11218:6;11271:2;11259:9;11250:7;11246:23;11242:32;11239:52;;;11287:1;11284;11277:12;11239:52;11319:9;11313:16;11338:31;11363:5;11338:31;:::i;11404:980::-;11666:4;11714:3;11703:9;11699:19;11745:6;11734:9;11727:25;11771:2;11809:6;11804:2;11793:9;11789:18;11782:34;11852:3;11847:2;11836:9;11832:18;11825:31;11876:6;11911;11905:13;11942:6;11934;11927:22;11980:3;11969:9;11965:19;11958:26;;12019:2;12011:6;12007:15;11993:29;;12040:1;12050:195;12064:6;12061:1;12058:13;12050:195;;;12129:13;;-1:-1:-1;;;;;12125:39:1;12113:52;;12220:15;;;;12185:12;;;;12161:1;12079:9;12050:195;;;-1:-1:-1;;;;;;;12301:32:1;;;;12296:2;12281:18;;12274:60;-1:-1:-1;;;12365:3:1;12350:19;12343:35;12262:3;11404:980;-1:-1:-1;;;11404:980:1:o

Swarm Source

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