ETH Price: $3,327.06 (+2.60%)
Gas: 7.3 Gwei

Token

Performance AI (PAI)
 

Overview

Max Total Supply

100,000,000 PAI

Holders

8

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,657,749.849865378426631313 PAI

Value
$0.00
0x10d80575e25a75ec053a12850ac218cb7ef95589
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:
PAI

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-25
*/

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


/***
 *   
 *  TELEGRAM :  https://t.me/Performance_AI
 *  TWITTER :   https://twitter.com/PerformanceAI
 *  WEBSITE :   https://performanceai.co
 *                                                                             
 */

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

}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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 PAI is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 100000000 * 10**_decimals; 
    string private constant _name = unicode"Performance AI";  
    string private constant _symbol = unicode"PAI"; 
    uint256 public _taxSwapThreshold = 100000 * 10**_decimals;
    uint256 public walletLimit = 1000000 * 10 ** decimals();

    uint256 public _feeOnBuy = 25; // on buy fee
    uint256 public _feeOnSell = 25; // on sell fee


    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private swapEnabled = false;
    bool private tradingOpen;

    event TradingActive (bool _tradingOpen,bool _swapEnabled);
    
    uint256 public buyCounter = 0;

    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
        
        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = 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), "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) && 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[to] || _isExcludedFromFee[from],
                    "trading not yet open"
                );
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                buyCounter++;
                if (buyCounter > 1) {
                    walletLimit = _tTotal;
                }
            }

            if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {

                if(to != uniswapV2Pair){
                    require(balanceOf(to) + amount <= walletLimit, "Higher than the walletLimit for tokens");
                }

                if(_feeOnBuy > 0) {
                    if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                        taxAmount = amount.mul(_feeOnBuy).div(100);
                    }
                }

                if(_feeOnSell > 0) {
                    if(to == uniswapV2Pair){
                        taxAmount = amount.mul(_feeOnSell).div(100);
                    }
                }
            }

            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 openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        emit TradingActive(tradingOpen, swapEnabled);
    }

    function changeTaxFees(uint256 _bFee, uint256 _sFee) public onlyOwner {
        _feeOnBuy = _bFee;
        _feeOnSell = _sFee;
    }

    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":false,"internalType":"bool","name":"_tradingOpen","type":"bool"},{"indexed":false,"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"TradingActive","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":"_feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bFee","type":"uint256"},{"internalType":"uint256","name":"_sFee","type":"uint256"}],"name":"changeTaxFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000451565b6200002190620186a062000468565b600455620000326012600a62000451565b6200004190620f424062000468565b600555601960068190556007556009805460ff60a01b191690555f600a553480156200006b575f80fd5b506200007733620002f3565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000cc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000f2919062000482565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200013e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000164919062000482565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001af573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d5919062000482565b600980546001600160a01b03199081166001600160a01b039384161790915560088054909116918316919091179055620002126012600a62000451565b62000222906305f5e10062000468565b335f9081526001602081905260408220929092556003906200024b5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526003909252902080549091166001179055620002923390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002cb6012600a62000451565b620002db906305f5e10062000468565b60405190815260200160405180910390a350620004aa565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200039657815f19048211156200037a576200037a62000342565b808516156200038857918102915b93841c93908002906200035b565b509250929050565b5f82620003ae575060016200044b565b81620003bc57505f6200044b565b8160018114620003d55760028114620003e05762000400565b60019150506200044b565b60ff841115620003f457620003f462000342565b50506001821b6200044b565b5060208310610133831016604e8410600b841016171562000425575081810a6200044b565b62000431838362000356565b805f190482111562000447576200044762000342565b0290505b92915050565b5f6200046160ff8416836200039e565b9392505050565b80820281158282048414176200044b576200044b62000342565b5f6020828403121562000493575f80fd5b81516001600160a01b038116811462000461575f80fd5b61116a80620004b85f395ff3fe60806040526004361061011e575f3560e01c8063768dc7101161009d578063a9059cbb11610062578063a9059cbb14610338578063bf474bed14610357578063c9567bf91461036c578063dd62ed3e14610380578063f2fde38b146103c4575f80fd5b8063768dc7101461028557806389fe9a72146102b35780638da5cb5b146102d257806391ceedbf146102f857806395d89b411461030d575f80fd5b8063313ce567116100e3578063313ce567146101f65780633387ae48146102115780633c8463a11461022657806370a082311461023b578063715018a61461026f575f80fd5b806306fdde0314610129578063095ea7b31461017157806318160ddd146101a057806323b872dd146101c2578063291c5768146101e1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600e81526d506572666f726d616e636520414960901b60208201525b6040516101689190610e64565b60405180910390f35b34801561017c575f80fd5b5061019061018b366004610ecb565b6103e3565b6040519015158152602001610168565b3480156101ab575f80fd5b506101b46103f9565b604051908152602001610168565b3480156101cd575f80fd5b506101906101dc366004610ef3565b610419565b3480156101ec575f80fd5b506101b460065481565b348015610201575f80fd5b5060405160128152602001610168565b34801561021c575f80fd5b506101b460075481565b348015610231575f80fd5b506101b460055481565b348015610246575f80fd5b506101b4610255366004610f2c565b6001600160a01b03165f9081526001602052604090205490565b34801561027a575f80fd5b50610283610480565b005b348015610290575f80fd5b5061019061029f366004610f2c565b60036020525f908152604090205460ff1681565b3480156102be575f80fd5b506102836102cd366004610f45565b610493565b3480156102dd575f80fd5b505f546040516001600160a01b039091168152602001610168565b348015610303575f80fd5b506101b4600a5481565b348015610318575f80fd5b5060408051808201909152600381526250414960e81b602082015261015b565b348015610343575f80fd5b50610190610352366004610ecb565b6104a6565b348015610362575f80fd5b506101b460045481565b348015610377575f80fd5b506102836104b2565b34801561038b575f80fd5b506101b461039a366004610f65565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103cf575f80fd5b506102836103de366004610f2c565b610582565b5f6103ef3384846105fb565b5060015b92915050565b5f6104066012600a61108a565b610414906305f5e100611098565b905090565b5f61042584848461071e565b61047684336104718560405180606001604052806028815260200161110d602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610bf3565b6105fb565b5060019392505050565b610488610c2b565b6104915f610c84565b565b61049b610c2b565b600691909155600755565b5f6103ef33848461071e565b6104ba610c2b565b600954600160a81b900460ff16156105195760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b6009805461ffff60a01b191661010160a01b17908190556040805160ff600160a81b8404811615158252600160a01b909304909216151560208301527f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c910160405180910390a1565b61058a610c2b565b6001600160a01b0381166105ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610510565b6105f881610c84565b50565b6001600160a01b03831661065d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610510565b6001600160a01b0382166106be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610510565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383161580159061073e57506001600160a01b03821615155b61078a5760405162461bcd60e51b815260206004820181905260248201527f45524332303a207472616e7366657220746865207a65726f20616464726573736044820152606401610510565b5f81116107eb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610510565b5f80546001600160a01b0385811691161480159061081657505f546001600160a01b03848116911614155b15610b2e57600954600160a81b900460ff166108ac576001600160a01b0383165f9081526003602052604090205460ff168061086957506001600160a01b0384165f9081526003602052604090205460ff165b6108ac5760405162461bcd60e51b81526020600482015260146024820152733a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610510565b6009546001600160a01b0385811691161480156108d757506008546001600160a01b03848116911614155b80156108fb57506001600160a01b0383165f9081526003602052604090205460ff16155b1561093d57600a8054905f61090f836110af565b91905055506001600a54111561093d5761092b6012600a61108a565b610939906305f5e100611098565b6005555b6001600160a01b0384165f9081526003602052604090205460ff1615801561097d57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ab6576009546001600160a01b03848116911614610a2057600554826109b9856001600160a01b03165f9081526001602052604090205490565b6109c391906110c7565b1115610a205760405162461bcd60e51b815260206004820152602660248201527f486967686572207468616e207468652077616c6c65744c696d697420666f7220604482015265746f6b656e7360d01b6064820152608401610510565b60065415610a7b576009546001600160a01b038581169116148015610a5357506008546001600160a01b03848116911614155b15610a7b57610a786064610a7260065485610cd390919063ffffffff16565b90610d58565b90505b60075415610ab6576009546001600160a01b0390811690841603610ab657610ab36064610a7260075485610cd390919063ffffffff16565b90505b8015610b2e57305f90815260016020526040902054610ad59082610d99565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b259085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610b509083610df7565b6001600160a01b0385165f90815260016020526040902055610b93610b758383610df7565b6001600160a01b0385165f9081526001602052604090205490610d99565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610bdc8585610df7565b60405190815260200160405180910390a350505050565b5f8184841115610c165760405162461bcd60e51b81526004016105109190610e64565b505f610c2284866110da565b95945050505050565b5f546001600160a01b031633146104915760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610510565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f825f03610ce257505f6103f3565b5f610ced8385611098565b905082610cfa85836110ed565b14610d515760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610510565b9392505050565b5f610d5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e38565b5f80610da583856110c7565b905083811015610d515760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610510565b5f610d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bf3565b5f8183610e585760405162461bcd60e51b81526004016105109190610e64565b505f610c2284866110ed565b5f602080835283518060208501525f5b81811015610e9057858101830151858201604001528201610e74565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ec6575f80fd5b919050565b5f8060408385031215610edc575f80fd5b610ee583610eb0565b946020939093013593505050565b5f805f60608486031215610f05575f80fd5b610f0e84610eb0565b9250610f1c60208501610eb0565b9150604084013590509250925092565b5f60208284031215610f3c575f80fd5b610d5182610eb0565b5f8060408385031215610f56575f80fd5b50508035926020909101359150565b5f8060408385031215610f76575f80fd5b610f7f83610eb0565b9150610f8d60208401610eb0565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610fe457815f1904821115610fca57610fca610f96565b80851615610fd757918102915b93841c9390800290610faf565b509250929050565b5f82610ffa575060016103f3565b8161100657505f6103f3565b816001811461101c576002811461102657611042565b60019150506103f3565b60ff84111561103757611037610f96565b50506001821b6103f3565b5060208310610133831016604e8410600b8410161715611065575081810a6103f3565b61106f8383610faa565b805f190482111561108257611082610f96565b029392505050565b5f610d5160ff841683610fec565b80820281158282048414176103f3576103f3610f96565b5f600182016110c0576110c0610f96565b5060010190565b808201808211156103f3576103f3610f96565b818103818111156103f3576103f3610f96565b5f8261110757634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b9c2dbe8b75f8c454ce50250dc9fbda51d95b1ca0bdc8c968470757faeea181864736f6c63430008180033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063768dc7101161009d578063a9059cbb11610062578063a9059cbb14610338578063bf474bed14610357578063c9567bf91461036c578063dd62ed3e14610380578063f2fde38b146103c4575f80fd5b8063768dc7101461028557806389fe9a72146102b35780638da5cb5b146102d257806391ceedbf146102f857806395d89b411461030d575f80fd5b8063313ce567116100e3578063313ce567146101f65780633387ae48146102115780633c8463a11461022657806370a082311461023b578063715018a61461026f575f80fd5b806306fdde0314610129578063095ea7b31461017157806318160ddd146101a057806323b872dd146101c2578063291c5768146101e1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600e81526d506572666f726d616e636520414960901b60208201525b6040516101689190610e64565b60405180910390f35b34801561017c575f80fd5b5061019061018b366004610ecb565b6103e3565b6040519015158152602001610168565b3480156101ab575f80fd5b506101b46103f9565b604051908152602001610168565b3480156101cd575f80fd5b506101906101dc366004610ef3565b610419565b3480156101ec575f80fd5b506101b460065481565b348015610201575f80fd5b5060405160128152602001610168565b34801561021c575f80fd5b506101b460075481565b348015610231575f80fd5b506101b460055481565b348015610246575f80fd5b506101b4610255366004610f2c565b6001600160a01b03165f9081526001602052604090205490565b34801561027a575f80fd5b50610283610480565b005b348015610290575f80fd5b5061019061029f366004610f2c565b60036020525f908152604090205460ff1681565b3480156102be575f80fd5b506102836102cd366004610f45565b610493565b3480156102dd575f80fd5b505f546040516001600160a01b039091168152602001610168565b348015610303575f80fd5b506101b4600a5481565b348015610318575f80fd5b5060408051808201909152600381526250414960e81b602082015261015b565b348015610343575f80fd5b50610190610352366004610ecb565b6104a6565b348015610362575f80fd5b506101b460045481565b348015610377575f80fd5b506102836104b2565b34801561038b575f80fd5b506101b461039a366004610f65565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103cf575f80fd5b506102836103de366004610f2c565b610582565b5f6103ef3384846105fb565b5060015b92915050565b5f6104066012600a61108a565b610414906305f5e100611098565b905090565b5f61042584848461071e565b61047684336104718560405180606001604052806028815260200161110d602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610bf3565b6105fb565b5060019392505050565b610488610c2b565b6104915f610c84565b565b61049b610c2b565b600691909155600755565b5f6103ef33848461071e565b6104ba610c2b565b600954600160a81b900460ff16156105195760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064015b60405180910390fd5b6009805461ffff60a01b191661010160a01b17908190556040805160ff600160a81b8404811615158252600160a01b909304909216151560208301527f41a09f17206aad1ccd4bae176b5c5e0b2154e569947545c9019e6bb0cb4ef59c910160405180910390a1565b61058a610c2b565b6001600160a01b0381166105ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610510565b6105f881610c84565b50565b6001600160a01b03831661065d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610510565b6001600160a01b0382166106be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610510565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383161580159061073e57506001600160a01b03821615155b61078a5760405162461bcd60e51b815260206004820181905260248201527f45524332303a207472616e7366657220746865207a65726f20616464726573736044820152606401610510565b5f81116107eb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610510565b5f80546001600160a01b0385811691161480159061081657505f546001600160a01b03848116911614155b15610b2e57600954600160a81b900460ff166108ac576001600160a01b0383165f9081526003602052604090205460ff168061086957506001600160a01b0384165f9081526003602052604090205460ff165b6108ac5760405162461bcd60e51b81526020600482015260146024820152733a3930b234b733903737ba103cb2ba1037b832b760611b6044820152606401610510565b6009546001600160a01b0385811691161480156108d757506008546001600160a01b03848116911614155b80156108fb57506001600160a01b0383165f9081526003602052604090205460ff16155b1561093d57600a8054905f61090f836110af565b91905055506001600a54111561093d5761092b6012600a61108a565b610939906305f5e100611098565b6005555b6001600160a01b0384165f9081526003602052604090205460ff1615801561097d57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ab6576009546001600160a01b03848116911614610a2057600554826109b9856001600160a01b03165f9081526001602052604090205490565b6109c391906110c7565b1115610a205760405162461bcd60e51b815260206004820152602660248201527f486967686572207468616e207468652077616c6c65744c696d697420666f7220604482015265746f6b656e7360d01b6064820152608401610510565b60065415610a7b576009546001600160a01b038581169116148015610a5357506008546001600160a01b03848116911614155b15610a7b57610a786064610a7260065485610cd390919063ffffffff16565b90610d58565b90505b60075415610ab6576009546001600160a01b0390811690841603610ab657610ab36064610a7260075485610cd390919063ffffffff16565b90505b8015610b2e57305f90815260016020526040902054610ad59082610d99565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b259085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610b509083610df7565b6001600160a01b0385165f90815260016020526040902055610b93610b758383610df7565b6001600160a01b0385165f9081526001602052604090205490610d99565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610bdc8585610df7565b60405190815260200160405180910390a350505050565b5f8184841115610c165760405162461bcd60e51b81526004016105109190610e64565b505f610c2284866110da565b95945050505050565b5f546001600160a01b031633146104915760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610510565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f825f03610ce257505f6103f3565b5f610ced8385611098565b905082610cfa85836110ed565b14610d515760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610510565b9392505050565b5f610d5183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610e38565b5f80610da583856110c7565b905083811015610d515760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610510565b5f610d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bf3565b5f8183610e585760405162461bcd60e51b81526004016105109190610e64565b505f610c2284866110ed565b5f602080835283518060208501525f5b81811015610e9057858101830151858201604001528201610e74565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ec6575f80fd5b919050565b5f8060408385031215610edc575f80fd5b610ee583610eb0565b946020939093013593505050565b5f805f60608486031215610f05575f80fd5b610f0e84610eb0565b9250610f1c60208501610eb0565b9150604084013590509250925092565b5f60208284031215610f3c575f80fd5b610d5182610eb0565b5f8060408385031215610f56575f80fd5b50508035926020909101359150565b5f8060408385031215610f76575f80fd5b610f7f83610eb0565b9150610f8d60208401610eb0565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115610fe457815f1904821115610fca57610fca610f96565b80851615610fd757918102915b93841c9390800290610faf565b509250929050565b5f82610ffa575060016103f3565b8161100657505f6103f3565b816001811461101c576002811461102657611042565b60019150506103f3565b60ff84111561103757611037610f96565b50506001821b6103f3565b5060208310610133831016604e8410600b8410161715611065575081810a6103f3565b61106f8383610faa565b805f190482111561108257611082610f96565b029392505050565b5f610d5160ff841683610fec565b80820281158282048414176103f3576103f3610f96565b5f600182016110c0576110c0610f96565b5060010190565b808201808211156103f3576103f3610f96565b818103818111156103f3576103f3610f96565b5f8261110757634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b9c2dbe8b75f8c454ce50250dc9fbda51d95b1ca0bdc8c968470757faeea181864736f6c63430008180033

Deployed Bytecode Sourcemap

4089:5632:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5759:83;;;;;;;;;;-1:-1:-1;5829:5:0;;;;;;;;;;;;-1:-1:-1;;;5829:5:0;;;;5759:83;;;;;;;:::i;:::-;;;;;;;;6592:161;;;;;;;;;;-1:-1:-1;6592:161:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;6592:161:0;1004:187:1;6036:95:0;;;;;;;;;;;;;:::i;:::-;;;1342:25:1;;;1330:2;1315:18;6036:95:0;1196:177:1;6761:313:0;;;;;;;;;;-1:-1:-1;6761:313:0;;;;;:::i;:::-;;:::i;4719:29::-;;;;;;;;;;;;;;;;5945:83;;;;;;;;;;-1:-1:-1;5945:83:0;;4396:2;1853:36:1;;1841:2;1826:18;5945:83:0;1711:184:1;4769:30:0;;;;;;;;;;;;;;;;4655:55;;;;;;;;;;;;;;;;6139:119;;;;;;;;;;-1:-1:-1;6139:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6232:18:0;6205:7;6232:18;;;:9;:18;;;;;;;6139:119;2809:103;;;;;;;;;;;;;:::i;:::-;;4301:51;;;;;;;;;;-1:-1:-1;4301:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9546:135;;;;;;;;;;-1:-1:-1;9546:135:0;;;;;:::i;:::-;;:::i;2574:87::-;;;;;;;;;;-1:-1:-1;2620:7:0;2647:6;2574:87;;-1:-1:-1;;;;;2647:6:0;;;2490:51:1;;2478:2;2463:18;2574:87:0;2344:203:1;5052:29:0;;;;;;;;;;;;;;;;5850:87;;;;;;;;;;-1:-1:-1;5922:7:0;;;;;;;;;;;;-1:-1:-1;;;5922:7:0;;;;5850:87;;6266:167;;;;;;;;;;-1:-1:-1;6266:167:0;;;;;:::i;:::-;;:::i;4591:57::-;;;;;;;;;;;;;;;;9316:222;;;;;;;;;;;;;:::i;6441:143::-;;;;;;;;;;-1:-1:-1;6441:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6549:18:0;;;6522:7;6549:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6441:143;2920:201;;;;;;;;;;-1:-1:-1;2920:201:0;;;;;:::i;:::-;;:::i;6592:161::-;6667:4;6684:39;414:10;6707:7;6716:6;6684:8;:39::i;:::-;-1:-1:-1;6741:4:0;6592:161;;;;;:::o;6036:95::-;6089:7;4452:13;4396:2;4452;:13;:::i;:::-;4440:25;;:9;:25;:::i;:::-;6109:14;;6036:95;:::o;6761:313::-;6859:4;6876:36;6886:6;6894:9;6905:6;6876:9;:36::i;:::-;6923:121;6932:6;414:10;6954:89;6992:6;6954:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6954:19:0;;;;;;:11;:19;;;;;;;;414:10;6954:33;;;;;;;;;;:37;:89::i;:::-;6923:8;:121::i;:::-;-1:-1:-1;7062:4:0;6761:313;;;;;:::o;2809:103::-;2533:13;:11;:13::i;:::-;2874:30:::1;2901:1;2874:18;:30::i;:::-;2809:103::o:0;9546:135::-;2533:13;:11;:13::i;:::-;9627:9:::1;:17:::0;;;;9655:10:::1;:18:::0;9546:135::o;6266:167::-;6344:4;6361:42;414:10;6385:9;6396:6;6361:9;:42::i;9316:222::-;2533:13;:11;:13::i;:::-;9378:11:::1;::::0;-1:-1:-1;;;9378:11:0;::::1;;;9377:12;9369:48;;;::::0;-1:-1:-1;;;9369:48:0;;4701:2:1;9369:48:0::1;::::0;::::1;4683:21:1::0;4740:2;4720:18;;;4713:30;4779:25;4759:18;;;4752:53;4822:18;;9369:48:0::1;;;;;;;;;9428:11;:18:::0;;-1:-1:-1;;;;9457:18:0;-1:-1:-1;;;9457:18:0;;;;;9491:39:::1;::::0;;9428:18:::1;-1:-1:-1::0;;;9505:11:0;::::1;::::0;::::1;5038:14:1::0;5031:22;5013:41;;-1:-1:-1;;;9518:11:0;;::::1;::::0;;::::1;5097:14:1::0;5090:22;5085:2;5070:18;;5063:50;9491:39:0::1;::::0;4986:18:1;9491:39:0::1;;;;;;;9316:222::o:0;2920:201::-;2533:13;:11;:13::i;:::-;-1:-1:-1;;;;;3009:22:0;::::1;3001:73;;;::::0;-1:-1:-1;;;3001:73:0;;5326:2:1;3001:73:0::1;::::0;::::1;5308:21:1::0;5365:2;5345:18;;;5338:30;5404:34;5384:18;;;5377:62;-1:-1:-1;;;5455:18:1;;;5448:36;5501:19;;3001:73:0::1;5124:402:1::0;3001:73:0::1;3085:28;3104:8;3085:18;:28::i;:::-;2920:201:::0;:::o;7082:335::-;-1:-1:-1;;;;;7175:19:0;;7167:68;;;;-1:-1:-1;;;7167:68:0;;5733:2:1;7167:68:0;;;5715:21:1;5772:2;5752:18;;;5745:30;5811:34;5791:18;;;5784:62;-1:-1:-1;;;5862:18:1;;;5855:34;5906:19;;7167:68:0;5531:400:1;7167:68:0;-1:-1:-1;;;;;7254:21:0;;7246:68;;;;-1:-1:-1;;;7246:68:0;;6138:2:1;7246:68:0;;;6120:21:1;6177:2;6157:18;;;6150:30;6216:34;6196:18;;;6189:62;-1:-1:-1;;;6267:18:1;;;6260:32;6309:19;;7246:68:0;5936:398:1;7246:68:0;-1:-1:-1;;;;;7325:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7377:32;;1342:25:1;;;7377:32:0;;1315:18:1;7377:32:0;;;;;;;7082:335;;;:::o;7425:1883::-;-1:-1:-1;;;;;7513:18:0;;;;;;:38;;-1:-1:-1;;;;;;7535:16:0;;;;7513:38;7505:83;;;;-1:-1:-1;;;7505:83:0;;6541:2:1;7505:83:0;;;6523:21:1;;;6560:18;;;6553:30;6619:34;6599:18;;;6592:62;6671:18;;7505:83:0;6339:356:1;7505:83:0;7616:1;7607:6;:10;7599:64;;;;-1:-1:-1;;;7599:64:0;;6902:2:1;7599:64:0;;;6884:21:1;6941:2;6921:18;;;6914:30;6980:34;6960:18;;;6953:62;-1:-1:-1;;;7031:18:1;;;7024:39;7080:19;;7599:64:0;6700:405:1;7599:64:0;7674:17;2647:6;;-1:-1:-1;;;;;7712:15:0;;;2647:6;;7712:15;;;;:32;;-1:-1:-1;2620:7:0;2647:6;-1:-1:-1;;;;;7731:13:0;;;2647:6;;7731:13;;7712:32;7708:1411;;;7768:11;;-1:-1:-1;;;7768:11:0;;;;7764:195;;-1:-1:-1;;;;;7829:22:0;;;;;;:18;:22;;;;;;;;;:50;;-1:-1:-1;;;;;;7855:24:0;;;;;;:18;:24;;;;;;;;7829:50;7799:144;;;;-1:-1:-1;;;7799:144:0;;7312:2:1;7799:144:0;;;7294:21:1;7351:2;7331:18;;;7324:30;-1:-1:-1;;;7370:18:1;;;7363:50;7430:18;;7799:144:0;7110:344:1;7799:144:0;7987:13;;-1:-1:-1;;;;;7979:21:0;;;7987:13;;7979:21;:55;;;;-1:-1:-1;8018:15:0;;-1:-1:-1;;;;;8004:30:0;;;8018:15;;8004:30;;7979:55;:83;;;;-1:-1:-1;;;;;;8040:22:0;;;;;;:18;:22;;;;;;;;8038:24;7979:83;7975:239;;;8084:10;:12;;;:10;:12;;;:::i;:::-;;;;;;8132:1;8119:10;;:14;8115:84;;;4452:13;4396:2;4452;:13;:::i;:::-;4440:25;;:9;:25;:::i;:::-;8158:11;:21;8115:84;-1:-1:-1;;;;;8235:24:0;;;;;;:18;:24;;;;;;;;8234:25;:52;;;;-1:-1:-1;;;;;;8264:22:0;;;;;;:18;:22;;;;;;;;8263:23;8234:52;8230:680;;;8318:13;;-1:-1:-1;;;;;8312:19:0;;;8318:13;;8312:19;8309:154;;8389:11;;8379:6;8363:13;8373:2;-1:-1:-1;;;;;6232:18:0;6205:7;6232:18;;;:9;:18;;;;;;;6139:119;8363:13;:22;;;;:::i;:::-;:37;;8355:88;;;;-1:-1:-1;;;8355:88:0;;7931:2:1;8355:88:0;;;7913:21:1;7970:2;7950:18;;;7943:30;8009:34;7989:18;;;7982:62;-1:-1:-1;;;8060:18:1;;;8053:36;8106:19;;8355:88:0;7729:402:1;8355:88:0;8486:9;;:13;8483:214;;8536:13;;-1:-1:-1;;;;;8528:21:0;;;8536:13;;8528:21;:55;;;;-1:-1:-1;8567:15:0;;-1:-1:-1;;;;;8553:30:0;;;8567:15;;8553:30;;8528:55;8524:154;;;8624:30;8650:3;8624:21;8635:9;;8624:6;:10;;:21;;;;:::i;:::-;:25;;:30::i;:::-;8612:42;;8524:154;8720:10;;:14;8717:178;;8768:13;;-1:-1:-1;;;;;8768:13:0;;;8762:19;;;;8759:117;;8821:31;8848:3;8821:22;8832:10;;8821:6;:10;;:22;;;;:::i;:31::-;8809:43;;8759:117;8929:13;;8926:182;;9007:4;8989:24;;;;:9;:24;;;;;;:39;;9018:9;8989:28;:39::i;:::-;8980:4;8962:24;;;;:9;:24;;;;;;;:66;;;;9052:40;;-1:-1:-1;;;;;9052:40:0;;;;;;;9082:9;1342:25:1;;1330:2;1315:18;;1196:177;9052:40:0;;;;;;;;8926:182;-1:-1:-1;;;;;9149:15:0;;;;;;:9;:15;;;;;;:27;;9169:6;9149:19;:27::i;:::-;-1:-1:-1;;;;;9131:15:0;;;;;;:9;:15;;;;;:45;9203:40;9221:21;:6;9232:9;9221:10;:21::i;:::-;-1:-1:-1;;;;;9203:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9187:13:0;;;;;;;:9;:13;;;;;:56;;;;9259:41;;;9278:21;:6;9289:9;9278:10;:21::i;:::-;9259:41;;1342:25:1;;;1330:2;1315:18;9259:41:0;;;;;;;7494:1814;7425:1883;;;:::o;1471:190::-;1557:7;1593:12;1585:6;;;;1577:29;;;;-1:-1:-1;;;1577:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1617:9:0;1629:5;1633:1;1629;:5;:::i;:::-;1617:17;1471:190;-1:-1:-1;;;;;1471:190:0:o;2669:132::-;2620:7;2647:6;-1:-1:-1;;;;;2647:6:0;414:10;2733:23;2725:68;;;;-1:-1:-1;;;2725:68:0;;8471:2:1;2725:68:0;;;8453:21:1;;;8490:18;;;8483:30;8549:34;8529:18;;;8522:62;8601:18;;2725:68:0;8269:356:1;3129:191:0;3203:16;3222:6;;-1:-1:-1;;;;;3239:17:0;;;-1:-1:-1;;;;;;3239:17:0;;;;;;3272:40;;3222:6;;;;;;;3272:40;;3203:16;3272:40;3192:128;3129:191;:::o;1669:246::-;1727:7;1751:1;1756;1751:6;1747:47;;-1:-1:-1;1781:1:0;1774:8;;1747:47;1804:9;1816:5;1820:1;1816;:5;:::i;:::-;1804:17;-1:-1:-1;1849:1:0;1840:5;1844:1;1804:17;1840:5;:::i;:::-;:10;1832:56;;;;-1:-1:-1;;;1832:56:0;;9054:2:1;1832:56:0;;;9036:21:1;9093:2;9073:18;;;9066:30;9132:34;9112:18;;;9105:62;-1:-1:-1;;;9183:18:1;;;9176:31;9224:19;;1832:56:0;8852:397:1;1832:56:0;1906:1;1669:246;-1:-1:-1;;;1669:246:0:o;1923:132::-;1981:7;2008:39;2012:1;2015;2008:39;;;;;;;;;;;;;;;;;:3;:39::i;1140:179::-;1198:7;;1230:5;1234:1;1230;:5;:::i;:::-;1218:17;;1259:1;1254;:6;;1246:46;;;;-1:-1:-1;;;1246:46:0;;9456:2:1;1246:46:0;;;9438:21:1;9495:2;9475:18;;;9468:30;9534:29;9514:18;;;9507:57;9581:18;;1246:46:0;9254:351:1;1327:136:0;1385:7;1412:43;1416:1;1419;1412:43;;;;;;;;;;;;;;;;;:3;:43::i;2063:189::-;2149:7;2184:12;2177:5;2169:28;;;;-1:-1:-1;;;2169:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2208:9:0;2220:5;2224:1;2220;: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:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;2091:248::-;2159:6;2167;2220:2;2208:9;2199:7;2195:23;2191:32;2188:52;;;2236:1;2233;2226:12;2188:52;-1:-1:-1;;2259:23:1;;;2329:2;2314:18;;;2301:32;;-1:-1:-1;2091:248:1:o;2552:260::-;2620:6;2628;2681:2;2669:9;2660:7;2656:23;2652:32;2649:52;;;2697:1;2694;2687:12;2649:52;2720:29;2739:9;2720:29;:::i;:::-;2710:39;;2768:38;2802:2;2791:9;2787:18;2768:38;:::i;:::-;2758:48;;2552:260;;;;;:::o;2817:127::-;2878:10;2873:3;2869:20;2866:1;2859:31;2909:4;2906:1;2899:15;2933:4;2930:1;2923:15;2949:416;3038:1;3075:5;3038:1;3089:270;3110:7;3100:8;3097:21;3089:270;;;3169:4;3165:1;3161:6;3157:17;3151:4;3148:27;3145:53;;;3178:18;;:::i;:::-;3228:7;3218:8;3214:22;3211:55;;;3248:16;;;;3211:55;3327:22;;;;3287:15;;;;3089:270;;;3093:3;2949:416;;;;;:::o;3370:806::-;3419:5;3449:8;3439:80;;-1:-1:-1;3490:1:1;3504:5;;3439:80;3538:4;3528:76;;-1:-1:-1;3575:1:1;3589:5;;3528:76;3620:4;3638:1;3633:59;;;;3706:1;3701:130;;;;3613:218;;3633:59;3663:1;3654:10;;3677:5;;;3701:130;3738:3;3728:8;3725:17;3722:43;;;3745:18;;:::i;:::-;-1:-1:-1;;3801:1:1;3787:16;;3816:5;;3613:218;;3915:2;3905:8;3902:16;3896:3;3890:4;3887:13;3883:36;3877:2;3867:8;3864:16;3859:2;3853:4;3850:12;3846:35;3843:77;3840:159;;;-1:-1:-1;3952:19:1;;;3984:5;;3840:159;4031:34;4056:8;4050:4;4031:34;:::i;:::-;4101:6;4097:1;4093:6;4089:19;4080:7;4077:32;4074:58;;;4112:18;;:::i;:::-;4150:20;;3370:806;-1:-1:-1;;;3370:806:1:o;4181:140::-;4239:5;4268:47;4309:4;4299:8;4295:19;4289:4;4268:47;:::i;4326:168::-;4399:9;;;4430;;4447:15;;;4441:22;;4427:37;4417:71;;4468:18;;:::i;7459:135::-;7498:3;7519:17;;;7516:43;;7539:18;;:::i;:::-;-1:-1:-1;7586:1:1;7575:13;;7459:135::o;7599:125::-;7664:9;;;7685:10;;;7682:36;;;7698:18;;:::i;8136:128::-;8203:9;;;8224:11;;;8221:37;;;8238:18;;:::i;8630:217::-;8670:1;8696;8686:132;;8740:10;8735:3;8731:20;8728:1;8721:31;8775:4;8772:1;8765:15;8803:4;8800:1;8793:15;8686:132;-1:-1:-1;8832:9:1;;8630:217::o

Swarm Source

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