ETH Price: $1,974.86 (+0.64%)
 

Overview

Max Total Supply

1,000,000,000 POPCORN

Holders

15

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Fei Protocol: Deployer
Balance
100,000,000 POPCORN

Value
$0.00
0x8d5ed43dca8c2f7dfb20cf7b53cc7e593635d7b9
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:
Popcorn

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-11-27
*/

/*
Copyright 2021 Popcorn Network https://popcorn.network/
*/
  pragma solidity ^0.8.9;
// SPDX-License-Identifier: MIT

interface ERC20 {
    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 ERC20Metadata is ERC20 {
    function name() external view returns (string memory);

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

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

abstract contract Context {
    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() {
        _setOwner(msg.sender);
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IpancakePair {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);

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

    function decimals() external pure returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

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

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);

    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(
        address indexed sender,
        uint256 amount0,
        uint256 amount1,
        address indexed to
    );
    event Swap(
        address indexed sender,
        uint256 amount0In,
        uint256 amount1In,
        uint256 amount0Out,
        uint256 amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);

    function token0() external view returns (address);

    function token1() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );

    function price0CumulativeLast() external view returns (uint256);

    function price1CumulativeLast() external view returns (uint256);

    function kLast() external view returns (uint256);

    function mint(address to) external returns (uint256 liquidity);

    function burn(address to)
        external
        returns (uint256 amount0, uint256 amount1);

    function swap(
        uint256 amount0Out,
        uint256 amount1Out,
        address to,
        bytes calldata data
    ) external;

    function skim(address to) external;

    function sync() external;

    function initialize(address, address) external;
}

interface IpancakeRouter01 {
    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 removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

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

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(
        uint256 amountA,
        uint256 reserveA,
        uint256 reserveB
    ) external pure returns (uint256 amountB);

    function getAmountOut(
        uint256 amountIn,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountOut);

    function getAmountIn(
        uint256 amountOut,
        uint256 reserveIn,
        uint256 reserveOut
    ) external pure returns (uint256 amountIn);

    function getAmountsOut(uint256 amountIn, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path)
        external
        view
        returns (uint256[] memory amounts);
}

interface IpancakeRouter02 is IpancakeRouter01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

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

// Bep20 standards for token creation by bloctechsolutions.com

contract Popcorn is Context, ERC20, ERC20Metadata, Ownable {
    using SafeMath for uint256;
    
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromMaxTx;

    IpancakeRouter02 public pancakeRouter;
    address public pancakePair;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _totalSupply;
    bool public _antiwhale = false; //once switched on, can never be switched off.

    uint256 public _maxTxAmount; 


    constructor() {
        _name = "Popcorn Network";
        _symbol = "POPCORN";
        _decimals = 18;
        _totalSupply = 1000000000 * 1e18;
        _balances[owner()] = _totalSupply;
        
        _maxTxAmount = _totalSupply.mul(100).div(100);

        IpancakeRouter02 _pancakeRouter = IpancakeRouter02(

            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D  //  UniswapV2Router02
            );

        // Create a uniswap pair for this new token
        pancakePair = IUniswapV2Factory(_pancakeRouter.factory()).createPair(
            address(this),
            _pancakeRouter.WETH()
        );

        // set the rest of the contract variables
        pancakeRouter = _pancakeRouter;

                // exclude from max tx
        _isExcludedFromMaxTx[owner()] = true;
        _isExcludedFromMaxTx[address(this)] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

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

    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 AntiWhale() external onlyOwner {
        _antiwhale = 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,
            "WE: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }
 
    function setExcludeFromMaxTx(address _address, bool value) public onlyOwner {
        _isExcludedFromMaxTx[_address] = value;
    }

        // for 1% input 1
    function setMaxTxPercent(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = _totalSupply.mul(maxTxAmount).div(100);
    }

    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,
            "WE: 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), "WE: transfer from the zero address");
        require(recipient != address(0), "WE: transfer to the zero address");
        require(amount > 0, "WE: Transfer amount must be greater than zero");

        if(_isExcludedFromMaxTx[sender] == false && 
            _isExcludedFromMaxTx[recipient] == false   // by default false
        ){
            require(amount <= _maxTxAmount,"amount exceed max limit");

             if (!_antiwhale && sender != owner() && recipient != owner()) {
            require(recipient != pancakePair, " WE:antuwhale is not enabled");
             }
        }
        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount,
            "WE: transfer amount exceeds balance"
        );
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}
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) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AntiWhale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_antiwhale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakePair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeRouter","outputs":[{"internalType":"contract IpancakeRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxPercent","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"}]

6080604052600a805460ff191690553480156200001b57600080fd5b5062000027336200037e565b60408051808201909152600f8082526e506f70636f726e204e6574776f726b60881b60209092019182526200005f91600691620004e8565b50604080518082019091526007808252662827a821a7a92760c91b60209092019182526200008e9181620004e8565b506008805460ff191660121790556b033b2e3c9fd0803ce8000000600981905560016000620000c56000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506200012060646200010c6064600954620003ce60201b620006f81790919060201c565b6200046260201b6200077e1790919060201c565b600b819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a491906200058e565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021891906200058e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000266573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028c91906200058e565b600580546001600160a01b03199081166001600160a01b039384161790915560048054909116918316919091179055600160036000620002d46000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526003909252902080549091166001179055620003276000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200036f91815260200190565b60405180910390a3506200069f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600082620003df575060006200045c565b6000620003ed8385620005b9565b905082620003fc8583620005e7565b14620004595760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200045983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004ac60201b60201c565b60008183620004d05760405162461bcd60e51b81526004016200045091906200060a565b506000620004df8486620005e7565b95945050505050565b828054620004f69062000662565b90600052602060002090601f0160209004810192826200051a576000855562000565565b82601f106200053557805160ff191683800117855562000565565b8280016001018555821562000565579182015b828111156200056557825182559160200191906001019062000548565b506200057392915062000577565b5090565b5b8082111562000573576000815560010162000578565b600060208284031215620005a157600080fd5b81516001600160a01b03811681146200045957600080fd5b6000816000190483118215151615620005e257634e487b7160e01b600052601160045260246000fd5b500290565b6000826200060557634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b8181101562000639578581018301518582016040015282016200061b565b818111156200064c576000604083870101525b50601f01601f1916929092016040019392505050565b600181811c908216806200067757607f821691505b602082108114156200069957634e487b7160e01b600052602260045260246000fd5b50919050565b610f5480620006af6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b8578063a9059cbb1161007c578063a9059cbb1461026e578063b8c9d25c14610281578063c21ebd0714610294578063d543dbeb146102a7578063dd62ed3e146102ba578063f2fde38b146102f357600080fd5b8063715018a61461021d5780637d1db4a5146102255780638da5cb5b1461022e57806395d89b4114610253578063a457c2d71461025b57600080fd5b806339509351116100ff57806339509351146101b75780634ce4898f146101ca5780635b89029c146101d75780636adeb40d146101ec57806370a08231146101f457600080fd5b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461017d57806323b872dd1461018f578063313ce567146101a2575b600080fd5b610144610306565b6040516101519190610cc5565b60405180910390f35b61016d610168366004610d36565b610398565b6040519015158152602001610151565b6009545b604051908152602001610151565b61016d61019d366004610d60565b6103af565b60085460405160ff9091168152602001610151565b61016d6101c5366004610d36565b61045b565b600a5461016d9060ff1681565b6101ea6101e5366004610d9c565b610497565b005b6101ea6104ec565b610181610202366004610dd8565b6001600160a01b031660009081526001602052604090205490565b6101ea610525565b610181600b5481565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610151565b61014461055b565b61016d610269366004610d36565b61056a565b61016d61027c366004610d36565b610600565b60055461023b906001600160a01b031681565b60045461023b906001600160a01b031681565b6101ea6102b5366004610df3565b61060d565b6101816102c8366004610e0c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101ea610301366004610dd8565b61065d565b60606006805461031590610e3f565b80601f016020809104026020016040519081016040528092919081815260200182805461034190610e3f565b801561038e5780601f106103635761010080835404028352916020019161038e565b820191906000526020600020905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b60006103a53384846107c0565b5060015b92915050565b60006103bc8484846108e4565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156104435760405162461bcd60e51b815260206004820152602560248201527f57453a207472616e7366657220616d6f756e74206578636565647320616c6c6f60448201526477616e636560d81b60648201526084015b60405180910390fd5b61045085338584036107c0565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103a5918590610492908690610e90565b6107c0565b6000546001600160a01b031633146104c15760405162461bcd60e51b815260040161043a90610ea8565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146105165760405162461bcd60e51b815260040161043a90610ea8565b600a805460ff19166001179055565b6000546001600160a01b0316331461054f5760405162461bcd60e51b815260040161043a90610ea8565b6105596000610c3e565b565b60606007805461031590610e3f565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156105e95760405162461bcd60e51b815260206004820152602260248201527f57453a2064656372656173656420616c6c6f77616e63652062656c6f77207a65604482015261726f60f01b606482015260840161043a565b6105f633858584036107c0565b5060019392505050565b60006103a53384846108e4565b6000546001600160a01b031633146106375760405162461bcd60e51b815260040161043a90610ea8565b6106576064610651836009546106f890919063ffffffff16565b9061077e565b600b5550565b6000546001600160a01b031633146106875760405162461bcd60e51b815260040161043a90610ea8565b6001600160a01b0381166106ec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161043a565b6106f581610c3e565b50565b600082610707575060006103a9565b60006107138385610edd565b9050826107208583610efc565b146107775760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161043a565b9392505050565b600061077783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c8e565b6001600160a01b0383166108225760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161043a565b6001600160a01b0382166108835760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161043a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109455760405162461bcd60e51b815260206004820152602260248201527f57453a207472616e736665722066726f6d20746865207a65726f206164647265604482015261737360f01b606482015260840161043a565b6001600160a01b03821661099b5760405162461bcd60e51b815260206004820181905260248201527f57453a207472616e7366657220746f20746865207a65726f2061646472657373604482015260640161043a565b60008111610a015760405162461bcd60e51b815260206004820152602d60248201527f57453a205472616e7366657220616d6f756e74206d757374206265206772656160448201526c746572207468616e207a65726f60981b606482015260840161043a565b6001600160a01b03831660009081526003602052604090205460ff16158015610a4357506001600160a01b03821660009081526003602052604090205460ff16155b15610b3857600b54811115610a9a5760405162461bcd60e51b815260206004820152601760248201527f616d6f756e7420657863656564206d6178206c696d6974000000000000000000604482015260640161043a565b600a5460ff16158015610abb57506000546001600160a01b03848116911614155b8015610ad557506000546001600160a01b03838116911614155b15610b38576005546001600160a01b0383811691161415610b385760405162461bcd60e51b815260206004820152601c60248201527f2057453a616e74757768616c65206973206e6f7420656e61626c656400000000604482015260640161043a565b6001600160a01b03831660009081526001602052604090205481811015610bad5760405162461bcd60e51b815260206004820152602360248201527f57453a207472616e7366657220616d6f756e7420657863656564732062616c616044820152626e636560e81b606482015260840161043a565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290610be4908490610e90565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3091815260200190565b60405180910390a350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183610caf5760405162461bcd60e51b815260040161043a9190610cc5565b506000610cbc8486610efc565b95945050505050565b600060208083528351808285015260005b81811015610cf257858101830151858201604001528201610cd6565b81811115610d04576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610d3157600080fd5b919050565b60008060408385031215610d4957600080fd5b610d5283610d1a565b946020939093013593505050565b600080600060608486031215610d7557600080fd5b610d7e84610d1a565b9250610d8c60208501610d1a565b9150604084013590509250925092565b60008060408385031215610daf57600080fd5b610db883610d1a565b915060208301358015158114610dcd57600080fd5b809150509250929050565b600060208284031215610dea57600080fd5b61077782610d1a565b600060208284031215610e0557600080fd5b5035919050565b60008060408385031215610e1f57600080fd5b610e2883610d1a565b9150610e3660208401610d1a565b90509250929050565b600181811c90821680610e5357607f821691505b60208210811415610e7457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ea357610ea3610e7a565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000816000190483118215151615610ef757610ef7610e7a565b500290565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c6a6d1ac50b97789852a15563761b134d11ce4baa50ebe6bfaaea7310b8bd8f064736f6c634300080a0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b8578063a9059cbb1161007c578063a9059cbb1461026e578063b8c9d25c14610281578063c21ebd0714610294578063d543dbeb146102a7578063dd62ed3e146102ba578063f2fde38b146102f357600080fd5b8063715018a61461021d5780637d1db4a5146102255780638da5cb5b1461022e57806395d89b4114610253578063a457c2d71461025b57600080fd5b806339509351116100ff57806339509351146101b75780634ce4898f146101ca5780635b89029c146101d75780636adeb40d146101ec57806370a08231146101f457600080fd5b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461017d57806323b872dd1461018f578063313ce567146101a2575b600080fd5b610144610306565b6040516101519190610cc5565b60405180910390f35b61016d610168366004610d36565b610398565b6040519015158152602001610151565b6009545b604051908152602001610151565b61016d61019d366004610d60565b6103af565b60085460405160ff9091168152602001610151565b61016d6101c5366004610d36565b61045b565b600a5461016d9060ff1681565b6101ea6101e5366004610d9c565b610497565b005b6101ea6104ec565b610181610202366004610dd8565b6001600160a01b031660009081526001602052604090205490565b6101ea610525565b610181600b5481565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610151565b61014461055b565b61016d610269366004610d36565b61056a565b61016d61027c366004610d36565b610600565b60055461023b906001600160a01b031681565b60045461023b906001600160a01b031681565b6101ea6102b5366004610df3565b61060d565b6101816102c8366004610e0c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101ea610301366004610dd8565b61065d565b60606006805461031590610e3f565b80601f016020809104026020016040519081016040528092919081815260200182805461034190610e3f565b801561038e5780601f106103635761010080835404028352916020019161038e565b820191906000526020600020905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b60006103a53384846107c0565b5060015b92915050565b60006103bc8484846108e4565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156104435760405162461bcd60e51b815260206004820152602560248201527f57453a207472616e7366657220616d6f756e74206578636565647320616c6c6f60448201526477616e636560d81b60648201526084015b60405180910390fd5b61045085338584036107c0565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103a5918590610492908690610e90565b6107c0565b6000546001600160a01b031633146104c15760405162461bcd60e51b815260040161043a90610ea8565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146105165760405162461bcd60e51b815260040161043a90610ea8565b600a805460ff19166001179055565b6000546001600160a01b0316331461054f5760405162461bcd60e51b815260040161043a90610ea8565b6105596000610c3e565b565b60606007805461031590610e3f565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156105e95760405162461bcd60e51b815260206004820152602260248201527f57453a2064656372656173656420616c6c6f77616e63652062656c6f77207a65604482015261726f60f01b606482015260840161043a565b6105f633858584036107c0565b5060019392505050565b60006103a53384846108e4565b6000546001600160a01b031633146106375760405162461bcd60e51b815260040161043a90610ea8565b6106576064610651836009546106f890919063ffffffff16565b9061077e565b600b5550565b6000546001600160a01b031633146106875760405162461bcd60e51b815260040161043a90610ea8565b6001600160a01b0381166106ec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161043a565b6106f581610c3e565b50565b600082610707575060006103a9565b60006107138385610edd565b9050826107208583610efc565b146107775760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161043a565b9392505050565b600061077783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610c8e565b6001600160a01b0383166108225760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161043a565b6001600160a01b0382166108835760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161043a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109455760405162461bcd60e51b815260206004820152602260248201527f57453a207472616e736665722066726f6d20746865207a65726f206164647265604482015261737360f01b606482015260840161043a565b6001600160a01b03821661099b5760405162461bcd60e51b815260206004820181905260248201527f57453a207472616e7366657220746f20746865207a65726f2061646472657373604482015260640161043a565b60008111610a015760405162461bcd60e51b815260206004820152602d60248201527f57453a205472616e7366657220616d6f756e74206d757374206265206772656160448201526c746572207468616e207a65726f60981b606482015260840161043a565b6001600160a01b03831660009081526003602052604090205460ff16158015610a4357506001600160a01b03821660009081526003602052604090205460ff16155b15610b3857600b54811115610a9a5760405162461bcd60e51b815260206004820152601760248201527f616d6f756e7420657863656564206d6178206c696d6974000000000000000000604482015260640161043a565b600a5460ff16158015610abb57506000546001600160a01b03848116911614155b8015610ad557506000546001600160a01b03838116911614155b15610b38576005546001600160a01b0383811691161415610b385760405162461bcd60e51b815260206004820152601c60248201527f2057453a616e74757768616c65206973206e6f7420656e61626c656400000000604482015260640161043a565b6001600160a01b03831660009081526001602052604090205481811015610bad5760405162461bcd60e51b815260206004820152602360248201527f57453a207472616e7366657220616d6f756e7420657863656564732062616c616044820152626e636560e81b606482015260840161043a565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290610be4908490610e90565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3091815260200190565b60405180910390a350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183610caf5760405162461bcd60e51b815260040161043a9190610cc5565b506000610cbc8486610efc565b95945050505050565b600060208083528351808285015260005b81811015610cf257858101830151858201604001528201610cd6565b81811115610d04576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610d3157600080fd5b919050565b60008060408385031215610d4957600080fd5b610d5283610d1a565b946020939093013593505050565b600080600060608486031215610d7557600080fd5b610d7e84610d1a565b9250610d8c60208501610d1a565b9150604084013590509250925092565b60008060408385031215610daf57600080fd5b610db883610d1a565b915060208301358015158114610dcd57600080fd5b809150509250929050565b600060208284031215610dea57600080fd5b61077782610d1a565b600060208284031215610e0557600080fd5b5035919050565b60008060408385031215610e1f57600080fd5b610e2883610d1a565b9150610e3660208401610d1a565b90509250929050565b600181811c90821680610e5357607f821691505b60208210811415610e7457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ea357610ea3610e7a565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000816000190483118215151615610ef757610ef7610e7a565b500290565b600082610f1957634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220c6a6d1ac50b97789852a15563761b134d11ce4baa50ebe6bfaaea7310b8bd8f064736f6c634300080a0033

Deployed Bytecode Sourcemap

11797:6457:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13355:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14417:210;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;14417:210:0;1053:187:1;13683:108:0;13771:12;;13683:108;;;1391:25:1;;;1379:2;1364:18;13683:108:0;1245:177:1;14719:526:0;;;;;;:::i;:::-;;:::i;13575:100::-;13658:9;;13575:100;;13658:9;;;;1902:36:1;;1890:2;1875:18;13575:100:0;1760:184:1;15565:297:0;;;;;;:::i;:::-;;:::i;12290:30::-;;;;;;;;;15254:133;;;;;;:::i;:::-;;:::i;:::-;;14635:76;;;:::i;13799:177::-;;;;;;:::i;:::-;-1:-1:-1;;;;;13950:18:0;13918:7;13950:18;;;:9;:18;;;;;;;13799:177;1877:94;;;:::i;12376:27::-;;;;;;1654:87;1700:7;1727:6;-1:-1:-1;;;;;1727:6:0;1654:87;;;-1:-1:-1;;;;;2656:32:1;;;2638:51;;2626:2;2611:18;1654:87:0;2492:203:1;13463:104:0;;;:::i;15870:479::-;;;;;;:::i;:::-;;:::i;13984:216::-;;;;;;:::i;:::-;;:::i;12134:26::-;;;;;-1:-1:-1;;;;;12134:26:0;;;12090:37;;;;;-1:-1:-1;;;;;12090:37:0;;;15422:135;;;;;;:::i;:::-;;:::i;14208:201::-;;;;;;:::i;:::-;-1:-1:-1;;;;;14374:18:0;;;14342:7;14374:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;14208:201;1979:229;;;;;;:::i;:::-;;:::i;13355:100::-;13409:13;13442:5;13435:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13355:100;:::o;14417:210::-;14536:4;14558:39;1266:10;14581:7;14590:6;14558:8;:39::i;:::-;-1:-1:-1;14615:4:0;14417:210;;;;;:::o;14719:526::-;14859:4;14876:36;14886:6;14894:9;14905:6;14876:9;:36::i;:::-;-1:-1:-1;;;;;14952:19:0;;14925:24;14952:19;;;:11;:19;;;;;;;;1266:10;14952:33;;;;;;;;15018:26;;;;14996:113;;;;-1:-1:-1;;;14996:113:0;;3969:2:1;14996:113:0;;;3951:21:1;4008:2;3988:18;;;3981:30;4047:34;4027:18;;;4020:62;-1:-1:-1;;;4098:18:1;;;4091:35;4143:19;;14996:113:0;;;;;;;;;15145:57;15154:6;1266:10;15195:6;15176:16;:25;15145:8;:57::i;:::-;-1:-1:-1;15233:4:0;;14719:526;-1:-1:-1;;;;14719:526:0:o;15565:297::-;1266:10;15680:4;15774:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15774:34:0;;;;;;;;;;15680:4;;15702:130;;15752:7;;15774:47;;15811:10;;15774:47;:::i;:::-;15702:8;:130::i;15254:133::-;1700:7;1727:6;-1:-1:-1;;;;;1727:6:0;1266:10;1789:23;1781:68;;;;-1:-1:-1;;;1781:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15341:30:0;;;::::1;;::::0;;;:20:::1;:30;::::0;;;;:38;;-1:-1:-1;;15341:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15254:133::o;14635:76::-;1700:7;1727:6;-1:-1:-1;;;;;1727:6:0;1266:10;1789:23;1781:68;;;;-1:-1:-1;;;1781:68:0;;;;;;;:::i;:::-;14686:10:::1;:17:::0;;-1:-1:-1;;14686:17:0::1;14699:4;14686:17;::::0;;14635:76::o;1877:94::-;1700:7;1727:6;-1:-1:-1;;;;;1727:6:0;1266:10;1789:23;1781:68;;;;-1:-1:-1;;;1781:68:0;;;;;;;:::i;:::-;1942:21:::1;1960:1;1942:9;:21::i;:::-;1877:94::o:0;13463:104::-;13519:13;13552:7;13545:14;;;;;:::i;15870:479::-;1266:10;15990:4;16039:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16039:34:0;;;;;;;;;;16106:35;;;;16084:119;;;;-1:-1:-1;;;16084:119:0;;5001:2:1;16084:119:0;;;4983:21:1;5040:2;5020:18;;;5013:30;5079:34;5059:18;;;5052:62;-1:-1:-1;;;5130:18:1;;;5123:32;5172:19;;16084:119:0;4799:398:1;16084:119:0;16239:67;1266:10;16262:7;16290:15;16271:16;:34;16239:8;:67::i;:::-;-1:-1:-1;16337:4:0;;15870:479;-1:-1:-1;;;15870:479:0:o;13984:216::-;14106:4;14128:42;1266:10;14152:9;14163:6;14128:9;:42::i;15422:135::-;1700:7;1727:6;-1:-1:-1;;;;;1727:6:0;1266:10;1789:23;1781:68;;;;-1:-1:-1;;;1781:68:0;;;;;;;:::i;:::-;15511:38:::1;15545:3;15511:29;15528:11;15511:12;;:16;;:29;;;;:::i;:::-;:33:::0;::::1;:38::i;:::-;15496:12;:53:::0;-1:-1:-1;15422:135:0:o;1979:229::-;1700:7;1727:6;-1:-1:-1;;;;;1727:6:0;1266:10;1789:23;1781:68;;;;-1:-1:-1;;;1781:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2082:22:0;::::1;2060:110;;;::::0;-1:-1:-1;;;2060:110:0;;5404:2:1;2060:110:0::1;::::0;::::1;5386:21:1::0;5443:2;5423:18;;;5416:30;5482:34;5462:18;;;5455:62;-1:-1:-1;;;5533:18:1;;;5526:36;5579:19;;2060:110:0::1;5202:402:1::0;2060:110:0::1;2181:19;2191:8;2181:9;:19::i;:::-;1979:229:::0;:::o;18822:471::-;18880:7;19125:6;19121:47;;-1:-1:-1;19155:1:0;19148:8;;19121:47;19180:9;19192:5;19196:1;19192;:5;:::i;:::-;19180:17;-1:-1:-1;19225:1:0;19216:5;19220:1;19180:17;19216:5;:::i;:::-;:10;19208:56;;;;-1:-1:-1;;;19208:56:0;;6206:2:1;19208:56:0;;;6188:21:1;6245:2;6225:18;;;6218:30;6284:34;6264:18;;;6257:62;-1:-1:-1;;;6335:18:1;;;6328:31;6376:19;;19208:56:0;6004:397:1;19208:56:0;19284:1;18822:471;-1:-1:-1;;;18822:471:0:o;19302:132::-;19360:7;19387:39;19391:1;19394;19387:39;;;;;;;;;;;;;;;;;:3;:39::i;17606:380::-;-1:-1:-1;;;;;17742:19:0;;17734:68;;;;-1:-1:-1;;;17734:68:0;;6608:2:1;17734:68:0;;;6590:21:1;6647:2;6627:18;;;6620:30;6686:34;6666:18;;;6659:62;-1:-1:-1;;;6737:18:1;;;6730:34;6781:19;;17734:68:0;6406:400:1;17734:68:0;-1:-1:-1;;;;;17821:21:0;;17813:68;;;;-1:-1:-1;;;17813:68:0;;7013:2:1;17813:68:0;;;6995:21:1;7052:2;7032:18;;;7025:30;7091:34;7071:18;;;7064:62;-1:-1:-1;;;7142:18:1;;;7135:32;7184:19;;17813:68:0;6811:398:1;17813:68:0;-1:-1:-1;;;;;17894:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17946:32;;1391:25:1;;;17946:32:0;;1364:18:1;17946:32:0;;;;;;;17606:380;;;:::o;16357:1241::-;-1:-1:-1;;;;;16497:20:0;;16489:67;;;;-1:-1:-1;;;16489:67:0;;7416:2:1;16489:67:0;;;7398:21:1;7455:2;7435:18;;;7428:30;7494:34;7474:18;;;7467:62;-1:-1:-1;;;7545:18:1;;;7538:32;7587:19;;16489:67:0;7214:398:1;16489:67:0;-1:-1:-1;;;;;16575:23:0;;16567:68;;;;-1:-1:-1;;;16567:68:0;;7819:2:1;16567:68:0;;;7801:21:1;;;7838:18;;;7831:30;7897:34;7877:18;;;7870:62;7949:18;;16567:68:0;7617:356:1;16567:68:0;16663:1;16654:6;:10;16646:68;;;;-1:-1:-1;;;16646:68:0;;8180:2:1;16646:68:0;;;8162:21:1;8219:2;8199:18;;;8192:30;8258:34;8238:18;;;8231:62;-1:-1:-1;;;8309:18:1;;;8302:43;8362:19;;16646:68:0;7978:409:1;16646:68:0;-1:-1:-1;;;;;16730:28:0;;;;;;:20;:28;;;;;;;;:37;;;:95;;-1:-1:-1;;;;;;16785:31:0;;;;;;:20;:31;;;;;;;;:40;16730:95;16727:391;;;16891:12;;16881:6;:22;;16873:57;;;;-1:-1:-1;;;16873:57:0;;8594:2:1;16873:57:0;;;8576:21:1;8633:2;8613:18;;;8606:30;8672:25;8652:18;;;8645:53;8715:18;;16873:57:0;8392:347:1;16873:57:0;16953:10;;;;16952:11;:32;;;;-1:-1:-1;1700:7:0;1727:6;-1:-1:-1;;;;;16967:17:0;;;1727:6;;16967:17;;16952:32;:56;;;;-1:-1:-1;1700:7:0;1727:6;-1:-1:-1;;;;;16988:20:0;;;1727:6;;16988:20;;16952:56;16948:159;;;17046:11;;-1:-1:-1;;;;;17033:24:0;;;17046:11;;17033:24;;17025:65;;;;-1:-1:-1;;;17025:65:0;;8946:2:1;17025:65:0;;;8928:21:1;8985:2;8965:18;;;8958:30;9024;9004:18;;;8997:58;9072:18;;17025:65:0;8744:352:1;17025:65:0;-1:-1:-1;;;;;17212:17:0;;17188:21;17212:17;;;:9;:17;;;;;;17262:23;;;;17240:108;;;;-1:-1:-1;;;17240:108:0;;9303:2:1;17240:108:0;;;9285:21:1;9342:2;9322:18;;;9315:30;9381:34;9361:18;;;9354:62;-1:-1:-1;;;9432:18:1;;;9425:33;9475:19;;17240:108:0;9101:399:1;17240:108:0;-1:-1:-1;;;;;17384:17:0;;;;;;;:9;:17;;;;;;17404:22;;;17384:42;;17448:20;;;;;;;;:30;;17420:6;;17384:17;17448:30;;17420:6;;17448:30;:::i;:::-;;;;;;;;17513:9;-1:-1:-1;;;;;17496:35:0;17505:6;-1:-1:-1;;;;;17496:35:0;;17524:6;17496:35;;;;1391:25:1;;1379:2;1364:18;;1245:177;17496:35:0;;;;;;;;16478:1120;16357:1241;;;:::o;2216:173::-;2272:16;2291:6;;-1:-1:-1;;;;;2308:17:0;;;-1:-1:-1;;;;;;2308:17:0;;;;;;2341:40;;2291:6;;;;;;;2341:40;;2272:16;2341:40;2261:128;2216:173;:::o;19443:278::-;19529:7;19564:12;19557:5;19549:28;;;;-1:-1:-1;;;19549:28:0;;;;;;;;:::i;:::-;-1:-1:-1;19588:9:0;19600:5;19604:1;19600;:5;:::i;:::-;19588:17;19443:278;-1:-1:-1;;;;;19443:278:0:o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:347::-;2014:6;2022;2075:2;2063:9;2054:7;2050:23;2046:32;2043:52;;;2091:1;2088;2081:12;2043:52;2114:29;2133:9;2114:29;:::i;:::-;2104:39;;2193:2;2182:9;2178:18;2165:32;2240:5;2233:13;2226:21;2219:5;2216:32;2206:60;;2262:1;2259;2252:12;2206:60;2285:5;2275:15;;;1949:347;;;;;:::o;2301:186::-;2360:6;2413:2;2401:9;2392:7;2388:23;2384:32;2381:52;;;2429:1;2426;2419:12;2381:52;2452:29;2471:9;2452:29;:::i;2932:180::-;2991:6;3044:2;3032:9;3023:7;3019:23;3015:32;3012:52;;;3060:1;3057;3050:12;3012:52;-1:-1:-1;3083:23:1;;2932:180;-1:-1:-1;2932:180:1:o;3117:260::-;3185:6;3193;3246:2;3234:9;3225:7;3221:23;3217:32;3214:52;;;3262:1;3259;3252:12;3214:52;3285:29;3304:9;3285:29;:::i;:::-;3275:39;;3333:38;3367:2;3356:9;3352:18;3333:38;:::i;:::-;3323:48;;3117:260;;;;;:::o;3382:380::-;3461:1;3457:12;;;;3504;;;3525:61;;3579:4;3571:6;3567:17;3557:27;;3525:61;3632:2;3624:6;3621:14;3601:18;3598:38;3595:161;;;3678:10;3673:3;3669:20;3666:1;3659:31;3713:4;3710:1;3703:15;3741:4;3738:1;3731:15;3595:161;;3382:380;;;:::o;4173:127::-;4234:10;4229:3;4225:20;4222:1;4215:31;4265:4;4262:1;4255:15;4289:4;4286:1;4279:15;4305:128;4345:3;4376:1;4372:6;4369:1;4366:13;4363:39;;;4382:18;;:::i;:::-;-1:-1:-1;4418:9:1;;4305:128::o;4438:356::-;4640:2;4622:21;;;4659:18;;;4652:30;4718:34;4713:2;4698:18;;4691:62;4785:2;4770:18;;4438:356::o;5609:168::-;5649:7;5715:1;5711;5707:6;5703:14;5700:1;5697:21;5692:1;5685:9;5678:17;5674:45;5671:71;;;5722:18;;:::i;:::-;-1:-1:-1;5762:9:1;;5609:168::o;5782:217::-;5822:1;5848;5838:132;;5892:10;5887:3;5883:20;5880:1;5873:31;5927:4;5924:1;5917:15;5955:4;5952:1;5945:15;5838:132;-1:-1:-1;5984:9:1;;5782:217::o

Swarm Source

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