ETH Price: $3,412.18 (-1.47%)
Gas: 10 Gwei

Token

314 Inu (314)
 

Overview

Max Total Supply

1,000,000 314

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,896.089123065930695221 314

Value
$0.00
0x66d64E0EB8Caf4f120D8945F00C3A56d9b6D4A36
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:
Inu314

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2024-03-21
*/

// SPDX-License-Identifier: MIT
 
// https://t.me/inu314
 
pragma solidity ^0.8.20;
 
 
/**
 * @title ERC314
 * @dev Implementation of the ERC314 interface.
 * ERC314 is a derivative of ERC20 which aims to integrate a liquidity pool on the token in order to enable native swaps, notably to reduce gas consumption. 
 */
 
// Events interface for ERC314
interface IEERC314 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event AddLiquidity(uint32 _blockToUnlockLiquidity, uint256 value);
    event RemoveLiquidity(uint256 value);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out
    );
}
 
 
abstract contract ERC314 is IEERC314{
    mapping(address account => uint256) private _balances;
 
    uint256 private _totalSupply;
    uint256 public _maxWallet;
    uint32 public blockToUnlockLiquidity;
 
    string private _name;
    string private _symbol;
 
    address public owner;
    address public liquidityProvider;
 
    bool public tradingEnable;
    bool public liquidityAdded;
    bool public maxWalletEnable;
 
 
 
    mapping(address account => uint32) private lastTransaction;
 
 
    modifier onlyOwner() {
        require(msg.sender == owner, "Ownable: caller is not the owner");
        _;
    }
 
    modifier onlyLiquidityProvider() {
        require(msg.sender == liquidityProvider, "You are not the liquidity provider");
        _;
    }
 
    /**
     * @dev Sets the values for {name}, {symbol} and {totalSupply}. 
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_, uint256 totalSupply_) {
        _name = name_;
        _symbol = symbol_;
        _totalSupply = totalSupply_;
        _maxWallet = totalSupply_ / 200;
        owner = msg.sender;
        tradingEnable = false;
        maxWalletEnable = true;
        _balances[msg.sender] = totalSupply_/10;
        uint256 liquidityAmount = totalSupply_ - _balances[msg.sender];
        _balances[address(this)] = liquidityAmount;
        liquidityAdded = false;
 
    }
 
 
 
    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual returns (string memory) {
        return _name;
    }
 
    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }
 
 
    /**
     * @dev Returns the number of decimals used to get its user representation.
     */
 
    function decimals() public view virtual returns (uint8) {
        return 18;
    }
 
    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }
 
    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual returns (uint256) {
        return _balances[account];
    }
 
    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - the caller must have a balance of at least `value`.
     * - if the receiver is the contract, the caller must send the amount of tokens to sell
     */
    function transfer(address to, uint256 value) public virtual returns (bool) {
        // sell or transfer
        if (to == address(this)) {
            sell(value);
        }
        else{
            _transfer(msg.sender, to, value);
        }
        return true;
    }
 
    /**
     * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively burns if `to` is the zero address.
     * All customizations to transfers and burns should be done by overriding this function.
     * This function includes MEV protection, which prevents the same address from making two transactions in the same block.(lastTransaction)
     * Emits a {Transfer} event.
     */
    function _transfer(address from, address to, uint256 value) internal virtual {
 
        require(lastTransaction[msg.sender] != block.number, "You can't make two transactions in the same block");
 
        lastTransaction[msg.sender] = uint32(block.number);
 
        require (_balances[from] >= value, "ERC20: transfer amount exceeds balance");
 
        unchecked {
            _balances[from] = _balances[from] - value;
        }
 
        if (to == address(0)) {
            unchecked {
                _totalSupply -= value;
            }
        } else {
            unchecked {
                _balances[to] += value;
            }
        }
 
        emit Transfer(from, to, value);
    }
 
    /**
    * @dev Returns the amount of ETH and tokens in the contract, used for trading.
    */
    function getReserves() public view returns (uint256, uint256) {
        return (address(this).balance, _balances[address(this)]);
    }
 
    /**
    * @dev Enables or disables trading.
    * @param _tradingEnable: true to enable trading, false to disable trading.
    * onlyOwner modifier
    */
    function enableTrading(bool _tradingEnable) external onlyOwner {
        tradingEnable = _tradingEnable;
    }
 
    /**
    * @dev Enables or disables the max wallet.
    * @param _maxWalletEnable: true to enable max wallet, false to disable max wallet.
    * onlyOwner modifier
    */
    function enableMaxWallet(bool _maxWalletEnable) external onlyOwner {
        maxWalletEnable = _maxWalletEnable;
    }
 
    /**
    * @dev Sets the max wallet.
    * @param _maxWallet_: the new max wallet.
    * onlyOwner modifier
    */
    function setMaxWallet(uint256 _maxWallet_) external onlyOwner {
        _maxWallet = _maxWallet_;
    }
 
    /**
    * @dev Transfers the ownership of the contract to zero address
    * onlyOwner modifier
    */
    function renounceOwnership() external onlyOwner {
        owner = address(0);
    }
 
    /**
    * @dev Adds liquidity to the contract.
    * @param _blockToUnlockLiquidity: the block number to unlock the liquidity.
    * value: the amount of ETH to add to the liquidity.
    * onlyOwner modifier
    */
    function addLiquidity(uint32 _blockToUnlockLiquidity) public onlyOwner payable {
 
        require(liquidityAdded == false, "Liquidity already added");
 
        liquidityAdded = true;
 
        require(msg.value > 0, "No ETH sent");
        require(block.number < _blockToUnlockLiquidity, "Block number too low");
 
        blockToUnlockLiquidity = _blockToUnlockLiquidity;
        tradingEnable = true;
        liquidityProvider = msg.sender;
 
        emit AddLiquidity(_blockToUnlockLiquidity, msg.value);
    }
 
    /**
    * @dev Removes liquidity from the contract.
    * onlyLiquidityProvider modifier
    */
    function removeLiquidity() public onlyLiquidityProvider {
 
        require(block.number > blockToUnlockLiquidity, "Liquidity locked");
 
        tradingEnable = false;
 
        payable(msg.sender).transfer(address(this).balance);
 
        emit RemoveLiquidity(address(this).balance);
 
    }
 
    /**
    * @dev Extends the liquidity lock, only if the new block number is higher than the current one.
    * @param _blockToUnlockLiquidity: the new block number to unlock the liquidity.
    * onlyLiquidityProvider modifier
    */
    function extendLiquidityLock(uint32 _blockToUnlockLiquidity) public onlyLiquidityProvider {
 
        require(blockToUnlockLiquidity < _blockToUnlockLiquidity, "You can't shorten duration");
 
        blockToUnlockLiquidity = _blockToUnlockLiquidity;
    }
 
    /**
    * @dev Estimates the amount of tokens or ETH to receive when buying or selling.
    * @param value: the amount of ETH or tokens to swap.
    * @param _buy: true if buying, false if selling.
    */
    function getAmountOut(uint256 value, bool _buy) public view returns(uint256) {
 
        (uint256 reserveETH, uint256 reserveToken) = getReserves();
 
        if (_buy) {
            return (value * reserveToken) / (reserveETH + value);
        } else {
            return (value * reserveETH) / (reserveToken + value);
        }
    }
 
    /**
    * @dev Buys tokens with ETH.
    * internal function
    */
    function buy() internal {
 
        require(tradingEnable, "Trading not enable");
 
        uint256 token_amount = (msg.value * _balances[address(this)]) / (address(this).balance);
 
        if (maxWalletEnable) {
            require(token_amount + _balances[msg.sender] <= _maxWallet, "Max wallet exceeded");
        }
 
        _transfer(address(this), msg.sender, token_amount);
 
        emit Swap(msg.sender, msg.value,0,0,token_amount);
    }
 
    /**
    * @dev Sells tokens for ETH.
    * internal function
    */
    function sell(uint256 sell_amount) internal {
 
        require(tradingEnable, "Trading not enable");
 
        uint256 ethAmount = (sell_amount * address(this).balance) / (_balances[address(this)] + sell_amount);
 
        require(ethAmount > 0, "Sell amount too low");
        require(address(this).balance >= ethAmount, "Insufficient ETH in reserves");
 
        _transfer(msg.sender, address(this), sell_amount);
        payable(msg.sender).transfer(ethAmount);
 
        emit Swap(msg.sender, 0,sell_amount,ethAmount,0);
    }
 
    /**
    * @dev Fallback function to buy tokens with ETH.
    */
    receive() external payable {
        buy();
    }
}
 
 
contract Inu314 is ERC314 {
    uint256 private _totalSupply = 1_000_000 * 10 ** 18;
 
    constructor() ERC314("314 Inu", "314", _totalSupply) {
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"AddLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"RemoveLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"}],"name":"Swap","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":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockToUnlockLiquidity","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_maxWalletEnable","type":"bool"}],"name":"enableMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingEnable","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"}],"name":"extendLiquidityLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bool","name":"_buy","type":"bool"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxWallet_","type":"uint256"}],"name":"setMaxWallet","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":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405269d3c21bcecceda10000006009553480156200001e575f80fd5b506040518060400160405280600781526020016633313420496e7560c81b815250604051806040016040528060038152602001620ccc4d60ea1b81525060095482600490816200006f9190620001ad565b5060056200007e8382620001ad565b5060018190556200009160c88262000275565b600255600680546001600160a01b031916331790556007805462ff00ff60a01b1916600160b01b179055620000c8600a8262000275565b335f90815260208190526040812082905590620000e6908362000295565b305f9081526020819052604090205550506007805460ff60a81b1916905550620002bb9050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200013657607f821691505b6020821081036200015557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620001a8575f81815260208120601f850160051c81016020861015620001835750805b601f850160051c820191505b81811015620001a4578281556001016200018f565b5050505b505050565b81516001600160401b03811115620001c957620001c96200010d565b620001e181620001da845462000121565b846200015b565b602080601f83116001811462000217575f8415620001ff5750858301515b5f19600386901b1c1916600185901b178555620001a4565b5f85815260208120601f198616915b82811015620002475788860151825594840194600190910190840162000226565b50858210156200026557878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f826200029057634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115620002b557634e487b7160e01b5f52601160045260245ffd5b92915050565b61107280620002c95f395ff3fe608060405260043610610134575f3560e01c806367b9a286116100a857806395d89b411161006d57806395d89b41146103865780639a540abf1461039a578063a9059cbb146103ad578063ae19139e146103cc578063d9443923146103eb578063f275f64b1461040b575f80fd5b806367b9a286146102f657806370a082311461030a578063715018a61461033e57806382247ec0146103525780638da5cb5b14610367575f80fd5b80631693e8d4116100f95780631693e8d41461023257806318160ddd1461025257806327de2e8514610266578063313ce567146102855780635b8bec55146102a05780635d0044ca146102d7575f80fd5b806304c0c4761461014757806306fdde031461017d5780630902f1ac1461019e57806311106ee2146101d557806312a54b6214610202575f80fd5b366101435761014161042a565b005b5f80fd5b348015610152575f80fd5b506003546101639063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b348015610188575f80fd5b5061019161056e565b6040516101749190610df6565b3480156101a9575f80fd5b506101c0305f908152602081905260409020544791565b60408051928352602083019190915201610174565b3480156101e0575f80fd5b506101f46101ef366004610e55565b6105fe565b604051908152602001610174565b34801561020d575f80fd5b5060075461022290600160b01b900460ff1681565b6040519015158152602001610174565b34801561023d575f80fd5b5060075461022290600160a01b900460ff1681565b34801561025d575f80fd5b506001546101f4565b348015610271575f80fd5b50610141610280366004610e7f565b610662565b348015610290575f80fd5b5060405160128152602001610174565b3480156102ab575f80fd5b506007546102bf906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b3480156102e2575f80fd5b506101416102f1366004610ea9565b610702565b348015610301575f80fd5b50610141610731565b348015610315575f80fd5b506101f4610324366004610ed6565b6001600160a01b03165f9081526020819052604090205490565b348015610349575f80fd5b50610141610811565b34801561035d575f80fd5b506101f460025481565b348015610372575f80fd5b506006546102bf906001600160a01b031681565b348015610391575f80fd5b5061019161084d565b6101416103a8366004610e7f565b61085c565b3480156103b8575f80fd5b506102226103c7366004610eef565b6109e6565b3480156103d7575f80fd5b506101416103e6366004610f17565b610a19565b3480156103f6575f80fd5b5060075461022290600160a81b900460ff1681565b348015610416575f80fd5b50610141610425366004610f17565b610a61565b600754600160a01b900460ff1661047d5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b305f9081526020819052604081205447906104989034610f44565b6104a29190610f5b565b600754909150600160b01b900460ff161561051757600254335f908152602081905260409020546104d39083610f7a565b11156105175760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610474565b610522303383610aa9565b604080513481525f602082018190528183015260608101839052905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a250565b60606004805461057d90610f8d565b80601f01602080910402602001604051908101604052809291908181526020018280546105a990610f8d565b80156105f45780601f106105cb576101008083540402835291602001916105f4565b820191905f5260205f20905b8154815290600101906020018083116105d757829003601f168201915b5050505050905090565b5f805f610617305f908152602081905260409020544791565b9150915083156106485761062b8583610f7a565b6106358287610f44565b61063f9190610f5b565b9250505061065c565b6106528582610f7a565b6106358387610f44565b92915050565b6007546001600160a01b0316331461068c5760405162461bcd60e51b815260040161047490610fc5565b60035463ffffffff8083169116106106e65760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e0000000000006044820152606401610474565b6003805463ffffffff191663ffffffff92909216919091179055565b6006546001600160a01b0316331461072c5760405162461bcd60e51b815260040161047490611007565b600255565b6007546001600160a01b0316331461075b5760405162461bcd60e51b815260040161047490610fc5565b60035463ffffffff1643116107a55760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b6044820152606401610474565b6007805460ff60a01b1916905560405133904780156108fc02915f818181858888f193505050501580156107db573d5f803e3d5ffd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b6006546001600160a01b0316331461083b5760405162461bcd60e51b815260040161047490611007565b600680546001600160a01b0319169055565b60606005805461057d90610f8d565b6006546001600160a01b031633146108865760405162461bcd60e51b815260040161047490611007565b600754600160a81b900460ff16156108e05760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c72656164792061646465640000000000000000006044820152606401610474565b6007805460ff60a81b1916600160a81b1790553461092e5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b6044820152606401610474565b8063ffffffff16431061097a5760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b6044820152606401610474565b6003805463ffffffff831663ffffffff199091168117909155600780546001600160a81b0319163317600160a01b179055604080519182523460208301527f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175910160405180910390a150565b5f306001600160a01b03841603610a0557610a0082610c60565b610a10565b610a10338484610aa9565b50600192915050565b6006546001600160a01b03163314610a435760405162461bcd60e51b815260040161047490611007565b60078054911515600160b01b0260ff60b01b19909216919091179055565b6006546001600160a01b03163314610a8b5760405162461bcd60e51b815260040161047490611007565b60078054911515600160a01b0260ff60a01b19909216919091179055565b335f908152600860205260409020544363ffffffff90911603610b285760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b6064820152608401610474565b335f908152600860209081526040808320805463ffffffff19164363ffffffff161790556001600160a01b038616835290829052902054811115610bbd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610474565b6001600160a01b038084165f908152602081905260409020805483900390558216610bf057600180548290039055610c0e565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c5391815260200190565b60405180910390a3505050565b600754600160a01b900460ff16610cae5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b6044820152606401610474565b305f90815260208190526040812054610cc8908390610f7a565b610cd24784610f44565b610cdc9190610f5b565b90505f8111610d235760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b6044820152606401610474565b80471015610d735760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e207265736572766573000000006044820152606401610474565b610d7e333084610aa9565b604051339082156108fc029083905f818181858888f19350505050158015610da8573d5f803e3d5ffd5b50604080515f808252602082018590528183018490526060820152905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a25050565b5f6020808352835180828501525f5b81811015610e2157858101830151858201604001528201610e05565b505f604082860101526040601f19601f8301168501019250505092915050565b80358015158114610e50575f80fd5b919050565b5f8060408385031215610e66575f80fd5b82359150610e7660208401610e41565b90509250929050565b5f60208284031215610e8f575f80fd5b813563ffffffff81168114610ea2575f80fd5b9392505050565b5f60208284031215610eb9575f80fd5b5035919050565b80356001600160a01b0381168114610e50575f80fd5b5f60208284031215610ee6575f80fd5b610ea282610ec0565b5f8060408385031215610f00575f80fd5b610f0983610ec0565b946020939093013593505050565b5f60208284031215610f27575f80fd5b610ea282610e41565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761065c5761065c610f30565b5f82610f7557634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561065c5761065c610f30565b600181811c90821680610fa157607f821691505b602082108103610fbf57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212200720f255511545a7f0df5115817e9c1692070686eb8bca5b5c1c1d2dc3a9330864736f6c63430008140033

Deployed Bytecode

0x608060405260043610610134575f3560e01c806367b9a286116100a857806395d89b411161006d57806395d89b41146103865780639a540abf1461039a578063a9059cbb146103ad578063ae19139e146103cc578063d9443923146103eb578063f275f64b1461040b575f80fd5b806367b9a286146102f657806370a082311461030a578063715018a61461033e57806382247ec0146103525780638da5cb5b14610367575f80fd5b80631693e8d4116100f95780631693e8d41461023257806318160ddd1461025257806327de2e8514610266578063313ce567146102855780635b8bec55146102a05780635d0044ca146102d7575f80fd5b806304c0c4761461014757806306fdde031461017d5780630902f1ac1461019e57806311106ee2146101d557806312a54b6214610202575f80fd5b366101435761014161042a565b005b5f80fd5b348015610152575f80fd5b506003546101639063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b348015610188575f80fd5b5061019161056e565b6040516101749190610df6565b3480156101a9575f80fd5b506101c0305f908152602081905260409020544791565b60408051928352602083019190915201610174565b3480156101e0575f80fd5b506101f46101ef366004610e55565b6105fe565b604051908152602001610174565b34801561020d575f80fd5b5060075461022290600160b01b900460ff1681565b6040519015158152602001610174565b34801561023d575f80fd5b5060075461022290600160a01b900460ff1681565b34801561025d575f80fd5b506001546101f4565b348015610271575f80fd5b50610141610280366004610e7f565b610662565b348015610290575f80fd5b5060405160128152602001610174565b3480156102ab575f80fd5b506007546102bf906001600160a01b031681565b6040516001600160a01b039091168152602001610174565b3480156102e2575f80fd5b506101416102f1366004610ea9565b610702565b348015610301575f80fd5b50610141610731565b348015610315575f80fd5b506101f4610324366004610ed6565b6001600160a01b03165f9081526020819052604090205490565b348015610349575f80fd5b50610141610811565b34801561035d575f80fd5b506101f460025481565b348015610372575f80fd5b506006546102bf906001600160a01b031681565b348015610391575f80fd5b5061019161084d565b6101416103a8366004610e7f565b61085c565b3480156103b8575f80fd5b506102226103c7366004610eef565b6109e6565b3480156103d7575f80fd5b506101416103e6366004610f17565b610a19565b3480156103f6575f80fd5b5060075461022290600160a81b900460ff1681565b348015610416575f80fd5b50610141610425366004610f17565b610a61565b600754600160a01b900460ff1661047d5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b60448201526064015b60405180910390fd5b305f9081526020819052604081205447906104989034610f44565b6104a29190610f5b565b600754909150600160b01b900460ff161561051757600254335f908152602081905260409020546104d39083610f7a565b11156105175760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b6044820152606401610474565b610522303383610aa9565b604080513481525f602082018190528183015260608101839052905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a250565b60606004805461057d90610f8d565b80601f01602080910402602001604051908101604052809291908181526020018280546105a990610f8d565b80156105f45780601f106105cb576101008083540402835291602001916105f4565b820191905f5260205f20905b8154815290600101906020018083116105d757829003601f168201915b5050505050905090565b5f805f610617305f908152602081905260409020544791565b9150915083156106485761062b8583610f7a565b6106358287610f44565b61063f9190610f5b565b9250505061065c565b6106528582610f7a565b6106358387610f44565b92915050565b6007546001600160a01b0316331461068c5760405162461bcd60e51b815260040161047490610fc5565b60035463ffffffff8083169116106106e65760405162461bcd60e51b815260206004820152601a60248201527f596f752063616e27742073686f7274656e206475726174696f6e0000000000006044820152606401610474565b6003805463ffffffff191663ffffffff92909216919091179055565b6006546001600160a01b0316331461072c5760405162461bcd60e51b815260040161047490611007565b600255565b6007546001600160a01b0316331461075b5760405162461bcd60e51b815260040161047490610fc5565b60035463ffffffff1643116107a55760405162461bcd60e51b815260206004820152601060248201526f131a5c5d5a591a5d1e481b1bd8dad95960821b6044820152606401610474565b6007805460ff60a01b1916905560405133904780156108fc02915f818181858888f193505050501580156107db573d5f803e3d5ffd5b506040514781527f9a5a8a32afd899e7f95003c6e21c9fab2d50e11992439d14472229180c60c7aa9060200160405180910390a1565b6006546001600160a01b0316331461083b5760405162461bcd60e51b815260040161047490611007565b600680546001600160a01b0319169055565b60606005805461057d90610f8d565b6006546001600160a01b031633146108865760405162461bcd60e51b815260040161047490611007565b600754600160a81b900460ff16156108e05760405162461bcd60e51b815260206004820152601760248201527f4c697175696469747920616c72656164792061646465640000000000000000006044820152606401610474565b6007805460ff60a81b1916600160a81b1790553461092e5760405162461bcd60e51b815260206004820152600b60248201526a139bc8115512081cd95b9d60aa1b6044820152606401610474565b8063ffffffff16431061097a5760405162461bcd60e51b8152602060048201526014602482015273426c6f636b206e756d62657220746f6f206c6f7760601b6044820152606401610474565b6003805463ffffffff831663ffffffff199091168117909155600780546001600160a81b0319163317600160a01b179055604080519182523460208301527f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175910160405180910390a150565b5f306001600160a01b03841603610a0557610a0082610c60565b610a10565b610a10338484610aa9565b50600192915050565b6006546001600160a01b03163314610a435760405162461bcd60e51b815260040161047490611007565b60078054911515600160b01b0260ff60b01b19909216919091179055565b6006546001600160a01b03163314610a8b5760405162461bcd60e51b815260040161047490611007565b60078054911515600160a01b0260ff60a01b19909216919091179055565b335f908152600860205260409020544363ffffffff90911603610b285760405162461bcd60e51b815260206004820152603160248201527f596f752063616e2774206d616b652074776f207472616e73616374696f6e7320604482015270696e207468652073616d6520626c6f636b60781b6064820152608401610474565b335f908152600860209081526040808320805463ffffffff19164363ffffffff161790556001600160a01b038616835290829052902054811115610bbd5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610474565b6001600160a01b038084165f908152602081905260409020805483900390558216610bf057600180548290039055610c0e565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c5391815260200190565b60405180910390a3505050565b600754600160a01b900460ff16610cae5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f7420656e61626c6560701b6044820152606401610474565b305f90815260208190526040812054610cc8908390610f7a565b610cd24784610f44565b610cdc9190610f5b565b90505f8111610d235760405162461bcd60e51b815260206004820152601360248201527253656c6c20616d6f756e7420746f6f206c6f7760681b6044820152606401610474565b80471015610d735760405162461bcd60e51b815260206004820152601c60248201527f496e73756666696369656e742045544820696e207265736572766573000000006044820152606401610474565b610d7e333084610aa9565b604051339082156108fc029083905f818181858888f19350505050158015610da8573d5f803e3d5ffd5b50604080515f808252602082018590528183018490526060820152905133917f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737919081900360800190a25050565b5f6020808352835180828501525f5b81811015610e2157858101830151858201604001528201610e05565b505f604082860101526040601f19601f8301168501019250505092915050565b80358015158114610e50575f80fd5b919050565b5f8060408385031215610e66575f80fd5b82359150610e7660208401610e41565b90509250929050565b5f60208284031215610e8f575f80fd5b813563ffffffff81168114610ea2575f80fd5b9392505050565b5f60208284031215610eb9575f80fd5b5035919050565b80356001600160a01b0381168114610e50575f80fd5b5f60208284031215610ee6575f80fd5b610ea282610ec0565b5f8060408385031215610f00575f80fd5b610f0983610ec0565b946020939093013593505050565b5f60208284031215610f27575f80fd5b610ea282610e41565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761065c5761065c610f30565b5f82610f7557634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561065c5761065c610f30565b600181811c90821680610fa157607f821691505b602082108103610fbf57634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526022908201527f596f7520617265206e6f7420746865206c69717569646974792070726f76696460408201526132b960f11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212200720f255511545a7f0df5115817e9c1692070686eb8bca5b5c1c1d2dc3a9330864736f6c63430008140033

Deployed Bytecode Sourcemap

9735:158:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9711:5;:3;:5::i;:::-;9735:158;;;;;922:36;;;;;;;;;;-1:-1:-1;922:36:0;;;;;;;;;;;188:10:1;176:23;;;158:42;;146:2;131:18;922:36:0;;;;;;;;2350:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4988:137::-;;;;;;;;;;;;5110:4;5032:7;5092:24;;;;;;;;;;;5069:21;;4988:137;;;;;938:25:1;;;994:2;979:18;;972:34;;;;911:18;4988:137:0;764:248:1;8074:344:0;;;;;;;;;;-1:-1:-1;8074:344:0;;;;;:::i;:::-;;:::i;:::-;;;1581:25:1;;;1569:2;1554:18;8074:344:0;1435:177:1;1161:27:0;;;;;;;;;;-1:-1:-1;1161:27:0;;;;-1:-1:-1;;;1161:27:0;;;;;;;;;1782:14:1;;1775:22;1757:41;;1745:2;1730:18;1161:27:0;1617:187:1;1096:25:0;;;;;;;;;;-1:-1:-1;1096:25:0;;;;-1:-1:-1;;;1096:25:0;;;;;;2920:99;;;;;;;;;;-1:-1:-1;2999:12:0;;2920:99;;7590:261;;;;;;;;;;-1:-1:-1;7590:261:0;;;;;:::i;:::-;;:::i;2770:84::-;;;;;;;;;;-1:-1:-1;2770:84:0;;2844:2;2232:36:1;;2220:2;2205:18;2770:84:0;2090:184:1;1054:32:0;;;;;;;;;;-1:-1:-1;1054:32:0;;;;-1:-1:-1;;;;;1054:32:0;;;;;;-1:-1:-1;;;;;2443:32:1;;;2425:51;;2413:2;2398:18;1054:32:0;2279:203:1;5850:105:0;;;;;;;;;;-1:-1:-1;5850:105:0;;;;;:::i;:::-;;:::i;7036:304::-;;;;;;;;;;;;;:::i;3083:118::-;;;;;;;;;;-1:-1:-1;3083:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;3175:18:0;3148:7;3175:18;;;;;;;;;;;;3083:118;6075:85;;;;;;;;;;;;;:::i;890:25::-;;;;;;;;;;;;;;;;1027:20;;;;;;;;;;-1:-1:-1;1027:20:0;;;;-1:-1:-1;;;;;1027:20:0;;;2561:95;;;;;;;;;;;;;:::i;6394:529::-;;;;;;:::i;:::-;;:::i;3457:280::-;;;;;;;;;;-1:-1:-1;3457:280:0;;;;;:::i;:::-;;:::i;5598:120::-;;;;;;;;;;-1:-1:-1;5598:120:0;;;;;:::i;:::-;;:::i;1128:26::-;;;;;;;;;;-1:-1:-1;1128:26:0;;;;-1:-1:-1;;;1128:26:0;;;;;;5298:112;;;;;;;;;;-1:-1:-1;5298:112:0;;;;;:::i;:::-;;:::i;8503:461::-;8549:13;;-1:-1:-1;;;8549:13:0;;;;8541:44;;;;-1:-1:-1;;;8541:44:0;;3687:2:1;8541:44:0;;;3669:21:1;3726:2;3706:18;;;3699:30;-1:-1:-1;;;3745:18:1;;;3738:48;3803:18;;8541:44:0;;;;;;;;;8653:4;8599:20;8635:24;;;;;;;;;;;8664:21;;8623:36;;:9;:36;:::i;:::-;8622:64;;;;:::i;:::-;8704:15;;8599:87;;-1:-1:-1;;;;8704:15:0;;;;8700:130;;;8784:10;;8769;8759:9;:21;;;;;;;;;;;8744:36;;:12;:36;:::i;:::-;:50;;8736:82;;;;-1:-1:-1;;;8736:82:0;;4691:2:1;8736:82:0;;;4673:21:1;4730:2;4710:18;;;4703:30;-1:-1:-1;;;4749:18:1;;;4742:49;4808:18;;8736:82:0;4489:343:1;8736:82:0;8843:50;8861:4;8868:10;8880:12;8843:9;:50::i;:::-;8912:44;;;8929:9;5084:25:1;;8939:1:0;5140:2:1;5125:18;;5118:34;;;5168:18;;;5161:34;5226:2;5211:18;;5204:34;;;8912:44:0;;8917:10;;8912:44;;;;;;5071:3:1;8912:44:0;;;8527:437;8503:461::o;2350:91::-;2395:13;2428:5;2421:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2350:91;:::o;8074:344::-;8142:7;8166:18;8186:20;8210:13;5110:4;5032:7;5092:24;;;;;;;;;;;5069:21;;4988:137;8210:13;8165:58;;;;8241:4;8237:174;;;8295:18;8308:5;8295:10;:18;:::i;:::-;8270:20;8278:12;8270:5;:20;:::i;:::-;8269:45;;;;:::i;:::-;8262:52;;;;;;8237:174;8378:20;8393:5;8378:12;:20;:::i;:::-;8355:18;8363:10;8355:5;:18;:::i;8074:344::-;;;;;:::o;7590:261::-;1466:17;;-1:-1:-1;;;;;1466:17:0;1452:10;:31;1444:78;;;;-1:-1:-1;;;1444:78:0;;;;;;;:::i;:::-;7702:22:::1;::::0;:48:::1;::::0;;::::1;:22:::0;::::1;:48;7694:87;;;::::0;-1:-1:-1;;;7694:87:0;;6239:2:1;7694:87:0::1;::::0;::::1;6221:21:1::0;6278:2;6258:18;;;6251:30;6317:28;6297:18;;;6290:56;6363:18;;7694:87:0::1;6037:350:1::0;7694:87:0::1;7795:22;:48:::0;;-1:-1:-1;;7795:48:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;7590:261::o;5850:105::-;1329:5;;-1:-1:-1;;;;;1329:5:0;1315:10;:19;1307:64;;;;-1:-1:-1;;;1307:64:0;;;;;;;:::i;:::-;5923:10:::1;:24:::0;5850:105::o;7036:304::-;1466:17;;-1:-1:-1;;;;;1466:17:0;1452:10;:31;1444:78;;;;-1:-1:-1;;;1444:78:0;;;;;;;:::i;:::-;7129:22:::1;::::0;::::1;;7114:12;:37;7106:66;;;::::0;-1:-1:-1;;;7106:66:0;;6955:2:1;7106:66:0::1;::::0;::::1;6937:21:1::0;6994:2;6974:18;;;6967:30;-1:-1:-1;;;7013:18:1;;;7006:46;7069:18;;7106:66:0::1;6753:340:1::0;7106:66:0::1;7186:13;:21:::0;;-1:-1:-1;;;;7186:21:0::1;::::0;;7221:51:::1;::::0;7229:10:::1;::::0;7250:21:::1;7221:51:::0;::::1;;;::::0;7202:5:::1;7221:51:::0;7202:5;7221:51;7250:21;7229:10;7221:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;7291:38:0::1;::::0;7307:21:::1;1581:25:1::0;;7291:38:0::1;::::0;1569:2:1;1554:18;7291:38:0::1;;;;;;;7036:304::o:0;6075:85::-;1329:5;;-1:-1:-1;;;;;1329:5:0;1315:10;:19;1307:64;;;;-1:-1:-1;;;1307:64:0;;;;;;;:::i;:::-;6134:5:::1;:18:::0;;-1:-1:-1;;;;;;6134:18:0::1;::::0;;6075:85::o;2561:95::-;2608:13;2641:7;2634:14;;;;;:::i;6394:529::-;1329:5;;-1:-1:-1;;;;;1329:5:0;1315:10;:19;1307:64;;;;-1:-1:-1;;;1307:64:0;;;;;;;:::i;:::-;6495:14:::1;::::0;-1:-1:-1;;;6495:14:0;::::1;;;:23;6487:59;;;::::0;-1:-1:-1;;;6487:59:0;;7300:2:1;6487:59:0::1;::::0;::::1;7282:21:1::0;7339:2;7319:18;;;7312:30;7378:25;7358:18;;;7351:53;7421:18;;6487:59:0::1;7098:347:1::0;6487:59:0::1;6560:14;:21:::0;;-1:-1:-1;;;;6560:21:0::1;-1:-1:-1::0;;;6560:21:0::1;::::0;;6603:9:::1;6595:37;;;::::0;-1:-1:-1;;;6595:37:0;;7652:2:1;6595:37:0::1;::::0;::::1;7634:21:1::0;7691:2;7671:18;;;7664:30;-1:-1:-1;;;7710:18:1;;;7703:41;7761:18;;6595:37:0::1;7450:335:1::0;6595:37:0::1;6666:23;6651:38;;:12;:38;6643:71;;;::::0;-1:-1:-1;;;6643:71:0;;7992:2:1;6643:71:0::1;::::0;::::1;7974:21:1::0;8031:2;8011:18;;;8004:30;-1:-1:-1;;;8050:18:1;;;8043:50;8110:18;;6643:71:0::1;7790:344:1::0;6643:71:0::1;6728:22;:48:::0;;::::1;::::0;::::1;-1:-1:-1::0;;6728:48:0;;::::1;::::0;::::1;::::0;;;6787:13:::1;:20:::0;;-1:-1:-1;;;;;;6818:30:0;6838:10:::1;6818:30:::0;-1:-1:-1;;;6818:30:0;;;6867:48:::1;::::0;;8311:42:1;;;6905:9:0::1;8384:2:1::0;8369:18;;8362:34;6867:48:0::1;::::0;8284:18:1;6867:48:0::1;;;;;;;6394:529:::0;:::o;3457:280::-;3526:4;3590;-1:-1:-1;;;;;3576:19:0;;;3572:136;;3612:11;3617:5;3612:4;:11::i;:::-;3572:136;;;3664:32;3674:10;3686:2;3690:5;3664:9;:32::i;:::-;-1:-1:-1;3725:4:0;3457:280;;;;:::o;5598:120::-;1329:5;;-1:-1:-1;;;;;1329:5:0;1315:10;:19;1307:64;;;;-1:-1:-1;;;1307:64:0;;;;;;;:::i;:::-;5676:15:::1;:34:::0;;;::::1;;-1:-1:-1::0;;;5676:34:0::1;-1:-1:-1::0;;;;5676:34:0;;::::1;::::0;;;::::1;::::0;;5598:120::o;5298:112::-;1329:5;;-1:-1:-1;;;;;1329:5:0;1315:10;:19;1307:64;;;;-1:-1:-1;;;1307:64:0;;;;;;;:::i;:::-;5372:13:::1;:30:::0;;;::::1;;-1:-1:-1::0;;;5372:30:0::1;-1:-1:-1::0;;;;5372:30:0;;::::1;::::0;;;::::1;::::0;;5298:112::o;4159:719::-;4274:10;4258:27;;;;:15;:27;;;;;;4289:12;4258:27;;;;:43;4250:105;;;;-1:-1:-1;;;4250:105:0;;8609:2:1;4250:105:0;;;8591:21:1;8648:2;8628:18;;;8621:30;8687:34;8667:18;;;8660:62;-1:-1:-1;;;8738:18:1;;;8731:47;8795:19;;4250:105:0;8407:413:1;4250:105:0;4385:10;4369:27;;;;:15;:27;;;;;;;;:50;;-1:-1:-1;;4369:50:0;4406:12;4369:50;;;;;-1:-1:-1;;;;;4442:15:0;;;;;;;;;;;-1:-1:-1;;4442:24:0;4433:76;;;;-1:-1:-1;;;4433:76:0;;9027:2:1;4433:76:0;;;9009:21:1;9066:2;9046:18;;;9039:30;9105:34;9085:18;;;9078:62;-1:-1:-1;;;9156:18:1;;;9149:36;9202:19;;4433:76:0;8825:402:1;4433:76:0;-1:-1:-1;;;;;4566:15:0;;;:9;:15;;;;;;;;;;;;:23;;;4548:41;;4618:16;;4614:213;;4680:12;:21;;;;;;;4614:213;;;-1:-1:-1;;;;;4778:13:0;;:9;:13;;;;;;;;;;:22;;;;;;4614:213;4860:2;-1:-1:-1;;;;;4845:25:0;4854:4;-1:-1:-1;;;;;4845:25:0;;4864:5;4845:25;;;;1581::1;;1569:2;1554:18;;1435:177;4845:25:0;;;;;;;;4159:719;;;:::o;9049:544::-;9115:13;;-1:-1:-1;;;9115:13:0;;;;9107:44;;;;-1:-1:-1;;;9107:44:0;;3687:2:1;9107:44:0;;;3669:21:1;3726:2;3706:18;;;3699:30;-1:-1:-1;;;3745:18:1;;;3738:48;3803:18;;9107:44:0;3485:342:1;9107:44:0;9244:4;9165:17;9226:24;;;;;;;;;;;:38;;9253:11;;9226:38;:::i;:::-;9186:35;9200:21;9186:11;:35;:::i;:::-;9185:80;;;;:::i;:::-;9165:100;;9299:1;9287:9;:13;9279:45;;;;-1:-1:-1;;;9279:45:0;;9434:2:1;9279:45:0;;;9416:21:1;9473:2;9453:18;;;9446:30;-1:-1:-1;;;9492:18:1;;;9485:49;9551:18;;9279:45:0;9232:343:1;9279:45:0;9368:9;9343:21;:34;;9335:75;;;;-1:-1:-1;;;9335:75:0;;9782:2:1;9335:75:0;;;9764:21:1;9821:2;9801:18;;;9794:30;9860;9840:18;;;9833:58;9908:18;;9335:75:0;9580:352:1;9335:75:0;9424:49;9434:10;9454:4;9461:11;9424:9;:49::i;:::-;9484:39;;9492:10;;9484:39;;;;;9513:9;;9484:39;;;;9513:9;9492:10;9484:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9542:43:0;;;9559:1;5084:25:1;;;5140:2;5125:18;;5118:34;;;5168:18;;;5161:34;;;5226:2;5211:18;;5204:34;9542:43:0;;9547:10;;9542:43;;;;;;5071:3:1;9542:43:0;;;9093:500;9049:544;:::o;211:548:1:-;323:4;352:2;381;370:9;363:21;413:6;407:13;456:6;451:2;440:9;436:18;429:34;481:1;491:140;505:6;502:1;499:13;491:140;;;600:14;;;596:23;;590:30;566:17;;;585:2;562:26;555:66;520:10;;491:140;;;495:3;680:1;675:2;666:6;655:9;651:22;647:31;640:42;750:2;743;739:7;734:2;726:6;722:15;718:29;707:9;703:45;699:54;691:62;;;;211:548;;;;:::o;1017:160::-;1082:20;;1138:13;;1131:21;1121:32;;1111:60;;1167:1;1164;1157:12;1111:60;1017:160;;;:::o;1182:248::-;1247:6;1255;1308:2;1296:9;1287:7;1283:23;1279:32;1276:52;;;1324:1;1321;1314:12;1276:52;1360:9;1347:23;1337:33;;1389:35;1420:2;1409:9;1405:18;1389:35;:::i;:::-;1379:45;;1182:248;;;;;:::o;1809:276::-;1867:6;1920:2;1908:9;1899:7;1895:23;1891:32;1888:52;;;1936:1;1933;1926:12;1888:52;1975:9;1962:23;2025:10;2018:5;2014:22;2007:5;2004:33;1994:61;;2051:1;2048;2041:12;1994:61;2074:5;1809:276;-1:-1:-1;;;1809:276:1:o;2487:180::-;2546:6;2599:2;2587:9;2578:7;2574:23;2570:32;2567:52;;;2615:1;2612;2605:12;2567:52;-1:-1:-1;2638:23:1;;2487:180;-1:-1:-1;2487:180:1:o;2672:173::-;2740:20;;-1:-1:-1;;;;;2789:31:1;;2779:42;;2769:70;;2835:1;2832;2825:12;2850:186;2909:6;2962:2;2950:9;2941:7;2937:23;2933:32;2930:52;;;2978:1;2975;2968:12;2930:52;3001:29;3020:9;3001:29;:::i;3041:254::-;3109:6;3117;3170:2;3158:9;3149:7;3145:23;3141:32;3138:52;;;3186:1;3183;3176:12;3138:52;3209:29;3228:9;3209:29;:::i;:::-;3199:39;3285:2;3270:18;;;;3257:32;;-1:-1:-1;;;3041:254:1:o;3300:180::-;3356:6;3409:2;3397:9;3388:7;3384:23;3380:32;3377:52;;;3425:1;3422;3415:12;3377:52;3448:26;3464:9;3448:26;:::i;3832:127::-;3893:10;3888:3;3884:20;3881:1;3874:31;3924:4;3921:1;3914:15;3948:4;3945:1;3938:15;3964:168;4037:9;;;4068;;4085:15;;;4079:22;;4065:37;4055:71;;4106:18;;:::i;4137:217::-;4177:1;4203;4193:132;;4247:10;4242:3;4238:20;4235:1;4228:31;4282:4;4279:1;4272:15;4310:4;4307:1;4300:15;4193:132;-1:-1:-1;4339:9:1;;4137:217::o;4359:125::-;4424:9;;;4445:10;;;4442:36;;;4458:18;;:::i;5249:380::-;5328:1;5324:12;;;;5371;;;5392:61;;5446:4;5438:6;5434:17;5424:27;;5392:61;5499:2;5491:6;5488:14;5468:18;5465:38;5462:161;;5545:10;5540:3;5536:20;5533:1;5526:31;5580:4;5577:1;5570:15;5608:4;5605:1;5598:15;5462:161;;5249:380;;;:::o;5634:398::-;5836:2;5818:21;;;5875:2;5855:18;;;5848:30;5914:34;5909:2;5894:18;;5887:62;-1:-1:-1;;;5980:2:1;5965:18;;5958:32;6022:3;6007:19;;5634:398::o;6392:356::-;6594:2;6576:21;;;6613:18;;;6606:30;6672:34;6667:2;6652:18;;6645:62;6739:2;6724:18;;6392:356::o

Swarm Source

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