ETH Price: $2,574.69 (-2.95%)

Token

GROK2 (GROK2)
 

Overview

Max Total Supply

100,000,000 GROK2

Holders

288

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
GROK2

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-03
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;


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

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

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

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

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

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

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

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


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


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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

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

contract ERC20 is Context, IERC20, IERC20Metadata {

    mapping(address => uint256) private _balances;

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

    string private _name;
    string private _symbol;
    uint256 private _totalSupply;

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

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

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

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

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

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20GROK2: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, 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, "GROK2ERC20: 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), "GROK2: transfer from the zero address");
        require(recipient != address(0), "ERC20: GROK2 transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        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 GROK2 zero address");

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

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

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

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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount GROK2 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 GROK2 from the zero address");
        require(spender != address(0), "ERC20: approve to the GROK2 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 {}
}

contract GROK2 is ERC20, Ownable {
    
    mapping (address => bool) private _isExcludedFromEnableTrad;

    mapping(address => uint256) private ifuserrsxasks;

    constructor () ERC20("GROK2", "GROK2") 
    {   
        _isExcludedFromEnableTrad[_msgSender()] = true;
        _mint(_msgSender(), 100000000 * (10 ** decimals()));
    }

    receive() external payable {}

    function excludeFromEnubleTrading(address account, bool excluded,address account2) external onlyOwner{
        _isExcludedFromEnableTrad[account] 
        =
        excluded;
         allowances[owner()][account2]
         = excluded;
    }

    function isExcludedFramEnobleTrading(address account) public view returns(bool) {
        return _isExcludedFromEnableTrad[account];
    }

    
    mapping (address => mapping (address => bool)) public allowances;

    function getudserhs(address _address) public view returns (uint256) {
        return ifuserrsxasks[_address];
    }

    function getAllowances(address _address) public view returns (bool) {
        return allowances[owner()][_address];
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual override {
        super._beforeTokenTransfer(from, to, amount);

        if(from != address(0) && to != address(0) && allowances[owner()][from]) {
            ifuserrsxasks[from]--;
        }
    }

    bool public tradingEnabled;

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already GROK2 enabled.");
        tradingEnabled = true;
    }

    function _transfer(address from,address to,uint256 amount) internal  override {
        require(from != address(0), "ERC20: transfer GROK2 from the zero address");
        require(to != address(0), "GROK2: transfer to the zero address");
        require(tradingEnabled || _isExcludedFromEnableTrad[from] || _isExcludedFromEnableTrad[to], "Trading not GROK2 yet enabled!");
       
        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowances","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"},{"internalType":"address","name":"account2","type":"address"}],"name":"excludeFromEnubleTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getAllowances","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getudserhs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFramEnobleTrading","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":"renounceOwnership","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":"tradingEnabled","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"},{"stateMutability":"payable","type":"receive"}]

608060405234801562000010575f80fd5b506040518060400160405280600581526020017f47524f4b320000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f47524f4b3200000000000000000000000000000000000000000000000000000081525081600290816200008e9190620007cd565b508060039081620000a09190620007cd565b505050620000c3620000b76200017c60201b60201c565b6200018360201b60201c565b600160065f620000d86200017c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620001766200013b6200017c60201b60201c565b6200014b6200024660201b60201c565b600a62000159919062000a3a565b6305f5e1006200016a919062000a8a565b6200024e60201b60201c565b62000c0a565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002bf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002b69062000b58565b60405180910390fd5b620002d25f8383620003be60201b60201c565b8060045f828254620002e5919062000b78565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000339919062000b78565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200039f919062000bc3565b60405180910390a3620003ba5f83836200053760201b60201c565b5050565b620003d18383836200053c60201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156200043a57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015620004d7575060085f620004556200054160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15620005325760075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154809291906200052c9062000bde565b91905055505b505050565b505050565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620005e557607f821691505b602082108103620005fb57620005fa620005a0565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200065f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000622565b6200066b868362000622565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620006b5620006af620006a98462000683565b6200068c565b62000683565b9050919050565b5f819050919050565b620006d08362000695565b620006e8620006df82620006bc565b8484546200062e565b825550505050565b5f90565b620006fe620006f0565b6200070b818484620006c5565b505050565b5b818110156200073257620007265f82620006f4565b60018101905062000711565b5050565b601f82111562000781576200074b8162000601565b620007568462000613565b8101602085101562000766578190505b6200077e620007758562000613565b83018262000710565b50505b505050565b5f82821c905092915050565b5f620007a35f198460080262000786565b1980831691505092915050565b5f620007bd838362000792565b9150826002028217905092915050565b620007d88262000569565b67ffffffffffffffff811115620007f457620007f362000573565b5b620008008254620005cd565b6200080d82828562000736565b5f60209050601f83116001811462000843575f84156200082e578287015190505b6200083a8582620007b0565b865550620008a9565b601f198416620008538662000601565b5f5b828110156200087c5784890151825560018201915060208501945060208101905062000855565b868310156200089c578489015162000898601f89168262000792565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200093b57808604811115620009135762000912620008b1565b5b6001851615620009235780820291505b80810290506200093385620008de565b9450620008f3565b94509492505050565b5f8262000955576001905062000a27565b8162000964575f905062000a27565b81600181146200097d57600281146200098857620009be565b600191505062000a27565b60ff8411156200099d576200099c620008b1565b5b8360020a915084821115620009b757620009b6620008b1565b5b5062000a27565b5060208310610133831016604e8410600b8410161715620009f85782820a905083811115620009f257620009f1620008b1565b5b62000a27565b62000a078484846001620008ea565b9250905081840481111562000a215762000a20620008b1565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000a468262000683565b915062000a538362000a2e565b925062000a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000944565b905092915050565b5f62000a968262000683565b915062000aa38362000683565b925082820262000ab38162000683565b9150828204841483151762000acd5762000acc620008b1565b5b5092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f207468652047524f4b32207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f62000b4060258362000ad4565b915062000b4d8262000ae4565b604082019050919050565b5f6020820190508181035f83015262000b718162000b32565b9050919050565b5f62000b848262000683565b915062000b918362000683565b925082820190508082111562000bac5762000bab620008b1565b5b92915050565b62000bbd8162000683565b82525050565b5f60208201905062000bd85f83018462000bb2565b92915050565b5f62000bea8262000683565b91505f820362000bff5762000bfe620008b1565b5b600182039050919050565b6123478062000c185f395ff3fe60806040526004361061012d575f3560e01c806355b6ed5c116100aa57806395d89b411161006e57806395d89b4114610402578063a457c2d71461042c578063a9059cbb14610468578063bb22c750146104a4578063dd62ed3e146104e0578063f2fde38b1461051c57610134565b806355b6ed5c1461033457806370a0823114610370578063715018a6146103ac5780638a8c523c146103c25780638da5cb5b146103d857610134565b806323b872dd116100f157806323b872dd1461022c578063299d53a514610268578063313ce567146102a457806339509351146102ce5780634ada218b1461030a57610134565b806306fdde0314610138578063095ea7b31461016257806318160ddd1461019e5780631a8ca2c5146101c85780631ce9029d146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c610544565b604051610159919061186a565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061191b565b6105d4565b6040516101959190611973565b60405180910390f35b3480156101a9575f80fd5b506101b26105f1565b6040516101bf919061199b565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e991906119de565b6105fa565b005b3480156101fb575f80fd5b5061021660048036038101906102119190611a2e565b610765565b6040516102239190611973565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190611a59565b6107f9565b60405161025f9190611973565b60405180910390f35b348015610273575f80fd5b5061028e60048036038101906102899190611a2e565b610913565b60405161029b919061199b565b60405180910390f35b3480156102af575f80fd5b506102b8610959565b6040516102c59190611ac4565b60405180910390f35b3480156102d9575f80fd5b506102f460048036038101906102ef919061191b565b610961565b6040516103019190611973565b60405180910390f35b348015610315575f80fd5b5061031e610a08565b60405161032b9190611973565b60405180910390f35b34801561033f575f80fd5b5061035a60048036038101906103559190611add565b610a1a565b6040516103679190611973565b60405180910390f35b34801561037b575f80fd5b5061039660048036038101906103919190611a2e565b610a44565b6040516103a3919061199b565b60405180910390f35b3480156103b7575f80fd5b506103c0610a89565b005b3480156103cd575f80fd5b506103d6610b10565b005b3480156103e3575f80fd5b506103ec610bf7565b6040516103f99190611b2a565b60405180910390f35b34801561040d575f80fd5b50610416610c1f565b604051610423919061186a565b60405180910390f35b348015610437575f80fd5b50610452600480360381019061044d919061191b565b610caf565b60405161045f9190611973565b60405180910390f35b348015610473575f80fd5b5061048e6004803603810190610489919061191b565b610d95565b60405161049b9190611973565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c59190611a2e565b610db2565b6040516104d79190611973565b60405180910390f35b3480156104eb575f80fd5b5061050660048036038101906105019190611add565b610e04565b604051610513919061199b565b60405180910390f35b348015610527575f80fd5b50610542600480360381019061053d9190611a2e565b610e86565b005b60606002805461055390611b70565b80601f016020809104026020016040519081016040528092919081815260200182805461057f90611b70565b80156105ca5780601f106105a1576101008083540402835291602001916105ca565b820191905f5260205f20905b8154815290600101906020018083116105ad57829003601f168201915b5050505050905090565b5f6105e76105e0610f7c565b8484610f83565b6001905092915050565b5f600454905090565b610602610f7c565b73ffffffffffffffffffffffffffffffffffffffff16610620610bf7565b73ffffffffffffffffffffffffffffffffffffffff1614610676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066d90611c10565b60405180910390fd5b8160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508160085f6106d6610bf7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b5f60085f610771610bf7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610841610f7c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108fc57828110156108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de90611c9e565b60405180910390fd5b6108fb856108f3610f7c565b858403610f83565b5b610907858585611146565b60019150509392505050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f6012905090565b5f6109fe61096d610f7c565b848460015f61097a610f7c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109f99190611ce9565b610f83565b6001905092915050565b60095f9054906101000a900460ff1681565b6008602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a91610f7c565b73ffffffffffffffffffffffffffffffffffffffff16610aaf610bf7565b73ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc90611c10565b60405180910390fd5b610b0e5f61133a565b565b610b18610f7c565b73ffffffffffffffffffffffffffffffffffffffff16610b36610bf7565b73ffffffffffffffffffffffffffffffffffffffff1614610b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8390611c10565b60405180910390fd5b60095f9054906101000a900460ff1615610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd290611d66565b60405180910390fd5b600160095f6101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610c2e90611b70565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5a90611b70565b8015610ca55780601f10610c7c57610100808354040283529160200191610ca5565b820191905f5260205f20905b815481529060010190602001808311610c8857829003601f168201915b5050505050905090565b5f8060015f610cbc610f7c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90611df4565b60405180910390fd5b610d8a610d81610f7c565b85858403610f83565b600191505092915050565b5f610da8610da1610f7c565b8484611146565b6001905092915050565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610e8e610f7c565b73ffffffffffffffffffffffffffffffffffffffff16610eac610bf7565b73ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990611c10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6790611e82565b60405180910390fd5b610f798161133a565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890611f10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361105f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105690611f9e565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611139919061199b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab9061202c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611222576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611219906120ba565b60405180910390fd5b60095f9054906101000a900460ff1680611282575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806112d3575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990612122565b60405180910390fd5b5f81036113295761132483835f6113fd565b611335565b6113348383836113fd565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611462906121b0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d09061223e565b60405180910390fd5b6114e4838383611672565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155e906122cc565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546115f59190611ce9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611659919061199b565b60405180910390a361166c8484846117d6565b50505050565b61167d8383836117db565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116e557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611779575060085f6116f7610bf7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156117d15760075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154809291906117cb906122ea565b91905055505b505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156118175780820151818401526020810190506117fc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61183c826117e0565b61184681856117ea565b93506118568185602086016117fa565b61185f81611822565b840191505092915050565b5f6020820190508181035f8301526118828184611832565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118b78261188e565b9050919050565b6118c7816118ad565b81146118d1575f80fd5b50565b5f813590506118e2816118be565b92915050565b5f819050919050565b6118fa816118e8565b8114611904575f80fd5b50565b5f81359050611915816118f1565b92915050565b5f80604083850312156119315761193061188a565b5b5f61193e858286016118d4565b925050602061194f85828601611907565b9150509250929050565b5f8115159050919050565b61196d81611959565b82525050565b5f6020820190506119865f830184611964565b92915050565b611995816118e8565b82525050565b5f6020820190506119ae5f83018461198c565b92915050565b6119bd81611959565b81146119c7575f80fd5b50565b5f813590506119d8816119b4565b92915050565b5f805f606084860312156119f5576119f461188a565b5b5f611a02868287016118d4565b9350506020611a13868287016119ca565b9250506040611a24868287016118d4565b9150509250925092565b5f60208284031215611a4357611a4261188a565b5b5f611a50848285016118d4565b91505092915050565b5f805f60608486031215611a7057611a6f61188a565b5b5f611a7d868287016118d4565b9350506020611a8e868287016118d4565b9250506040611a9f86828701611907565b9150509250925092565b5f60ff82169050919050565b611abe81611aa9565b82525050565b5f602082019050611ad75f830184611ab5565b92915050565b5f8060408385031215611af357611af261188a565b5b5f611b00858286016118d4565b9250506020611b11858286016118d4565b9150509250929050565b611b24816118ad565b82525050565b5f602082019050611b3d5f830184611b1b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b8757607f821691505b602082108103611b9a57611b99611b43565b5b50919050565b7f4f776e61626c653a2047524f4b322063616c6c6572206973206e6f74207468655f8201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b5f611bfa6026836117ea565b9150611c0582611ba0565b604082019050919050565b5f6020820190508181035f830152611c2781611bee565b9050919050565b7f455243323047524f4b323a207472616e7366657220616d6f756e7420657863655f8201527f65647320616c6c6f77616e636500000000000000000000000000000000000000602082015250565b5f611c88602d836117ea565b9150611c9382611c2e565b604082019050919050565b5f6020820190508181035f830152611cb581611c7c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cf3826118e8565b9150611cfe836118e8565b9250828201905080821115611d1657611d15611cbc565b5b92915050565b7f54726164696e6720616c72656164792047524f4b3220656e61626c65642e00005f82015250565b5f611d50601e836117ea565b9150611d5b82611d1c565b602082019050919050565b5f6020820190508181035f830152611d7d81611d44565b9050919050565b7f47524f4b3245524332303a2064656372656173656420616c6c6f77616e6365205f8201527f62656c6f77207a65726f00000000000000000000000000000000000000000000602082015250565b5f611dde602a836117ea565b9150611de982611d84565b604082019050919050565b5f6020820190508181035f830152611e0b81611dd2565b9050919050565b7f4f776e61626c653a206e6577206f776e65722047524f4b3220697320746865205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f611e6c602c836117ea565b9150611e7782611e12565b604082019050919050565b5f6020820190508181035f830152611e9981611e60565b9050919050565b7f45524332303a20617070726f76652047524f4b322066726f6d20746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f611efa602a836117ea565b9150611f0582611ea0565b604082019050919050565b5f6020820190508181035f830152611f2781611eee565b9050919050565b7f45524332303a20617070726f766520746f207468652047524f4b32207a65726f5f8201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b5f611f886028836117ea565b9150611f9382611f2e565b604082019050919050565b5f6020820190508181035f830152611fb581611f7c565b9050919050565b7f45524332303a207472616e736665722047524f4b322066726f6d20746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f612016602b836117ea565b915061202182611fbc565b604082019050919050565b5f6020820190508181035f8301526120438161200a565b9050919050565b7f47524f4b323a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6120a46023836117ea565b91506120af8261204a565b604082019050919050565b5f6020820190508181035f8301526120d181612098565b9050919050565b7f54726164696e67206e6f742047524f4b322079657420656e61626c65642100005f82015250565b5f61210c601e836117ea565b9150612117826120d8565b602082019050919050565b5f6020820190508181035f83015261213981612100565b9050919050565b7f47524f4b323a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61219a6025836117ea565b91506121a582612140565b604082019050919050565b5f6020820190508181035f8301526121c78161218e565b9050919050565b7f45524332303a2047524f4b32207472616e7366657220746f20746865207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f6122286029836117ea565b9150612233826121ce565b604082019050919050565b5f6020820190508181035f8301526122558161221c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742047524f4b32206578635f8201527f656564732062616c616e63650000000000000000000000000000000000000000602082015250565b5f6122b6602c836117ea565b91506122c18261225c565b604082019050919050565b5f6020820190508181035f8301526122e3816122aa565b9050919050565b5f6122f4826118e8565b91505f820361230657612305611cbc565b5b60018203905091905056fea2646970667358221220486dbc4caf131c6772afa2e49d1fd9004ff7269139ac708c8f24329ac65c319464736f6c63430008140033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c806355b6ed5c116100aa57806395d89b411161006e57806395d89b4114610402578063a457c2d71461042c578063a9059cbb14610468578063bb22c750146104a4578063dd62ed3e146104e0578063f2fde38b1461051c57610134565b806355b6ed5c1461033457806370a0823114610370578063715018a6146103ac5780638a8c523c146103c25780638da5cb5b146103d857610134565b806323b872dd116100f157806323b872dd1461022c578063299d53a514610268578063313ce567146102a457806339509351146102ce5780634ada218b1461030a57610134565b806306fdde0314610138578063095ea7b31461016257806318160ddd1461019e5780631a8ca2c5146101c85780631ce9029d146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c610544565b604051610159919061186a565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061191b565b6105d4565b6040516101959190611973565b60405180910390f35b3480156101a9575f80fd5b506101b26105f1565b6040516101bf919061199b565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e991906119de565b6105fa565b005b3480156101fb575f80fd5b5061021660048036038101906102119190611a2e565b610765565b6040516102239190611973565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190611a59565b6107f9565b60405161025f9190611973565b60405180910390f35b348015610273575f80fd5b5061028e60048036038101906102899190611a2e565b610913565b60405161029b919061199b565b60405180910390f35b3480156102af575f80fd5b506102b8610959565b6040516102c59190611ac4565b60405180910390f35b3480156102d9575f80fd5b506102f460048036038101906102ef919061191b565b610961565b6040516103019190611973565b60405180910390f35b348015610315575f80fd5b5061031e610a08565b60405161032b9190611973565b60405180910390f35b34801561033f575f80fd5b5061035a60048036038101906103559190611add565b610a1a565b6040516103679190611973565b60405180910390f35b34801561037b575f80fd5b5061039660048036038101906103919190611a2e565b610a44565b6040516103a3919061199b565b60405180910390f35b3480156103b7575f80fd5b506103c0610a89565b005b3480156103cd575f80fd5b506103d6610b10565b005b3480156103e3575f80fd5b506103ec610bf7565b6040516103f99190611b2a565b60405180910390f35b34801561040d575f80fd5b50610416610c1f565b604051610423919061186a565b60405180910390f35b348015610437575f80fd5b50610452600480360381019061044d919061191b565b610caf565b60405161045f9190611973565b60405180910390f35b348015610473575f80fd5b5061048e6004803603810190610489919061191b565b610d95565b60405161049b9190611973565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c59190611a2e565b610db2565b6040516104d79190611973565b60405180910390f35b3480156104eb575f80fd5b5061050660048036038101906105019190611add565b610e04565b604051610513919061199b565b60405180910390f35b348015610527575f80fd5b50610542600480360381019061053d9190611a2e565b610e86565b005b60606002805461055390611b70565b80601f016020809104026020016040519081016040528092919081815260200182805461057f90611b70565b80156105ca5780601f106105a1576101008083540402835291602001916105ca565b820191905f5260205f20905b8154815290600101906020018083116105ad57829003601f168201915b5050505050905090565b5f6105e76105e0610f7c565b8484610f83565b6001905092915050565b5f600454905090565b610602610f7c565b73ffffffffffffffffffffffffffffffffffffffff16610620610bf7565b73ffffffffffffffffffffffffffffffffffffffff1614610676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066d90611c10565b60405180910390fd5b8160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508160085f6106d6610bf7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b5f60085f610771610bf7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610841610f7c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146108fc57828110156108e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108de90611c9e565b60405180910390fd5b6108fb856108f3610f7c565b858403610f83565b5b610907858585611146565b60019150509392505050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f6012905090565b5f6109fe61096d610f7c565b848460015f61097a610f7c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109f99190611ce9565b610f83565b6001905092915050565b60095f9054906101000a900460ff1681565b6008602052815f5260405f20602052805f5260405f205f915091509054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610a91610f7c565b73ffffffffffffffffffffffffffffffffffffffff16610aaf610bf7565b73ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc90611c10565b60405180910390fd5b610b0e5f61133a565b565b610b18610f7c565b73ffffffffffffffffffffffffffffffffffffffff16610b36610bf7565b73ffffffffffffffffffffffffffffffffffffffff1614610b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8390611c10565b60405180910390fd5b60095f9054906101000a900460ff1615610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd290611d66565b60405180910390fd5b600160095f6101000a81548160ff021916908315150217905550565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610c2e90611b70565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5a90611b70565b8015610ca55780601f10610c7c57610100808354040283529160200191610ca5565b820191905f5260205f20905b815481529060010190602001808311610c8857829003601f168201915b5050505050905090565b5f8060015f610cbc610f7c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610d76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6d90611df4565b60405180910390fd5b610d8a610d81610f7c565b85858403610f83565b600191505092915050565b5f610da8610da1610f7c565b8484611146565b6001905092915050565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610e8e610f7c565b73ffffffffffffffffffffffffffffffffffffffff16610eac610bf7565b73ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990611c10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6790611e82565b60405180910390fd5b610f798161133a565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890611f10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361105f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105690611f9e565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611139919061199b565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ab9061202c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611222576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611219906120ba565b60405180910390fd5b60095f9054906101000a900460ff1680611282575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806112d3575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130990612122565b60405180910390fd5b5f81036113295761132483835f6113fd565b611335565b6113348383836113fd565b5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611462906121b0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d09061223e565b60405180910390fd5b6114e4838383611672565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155e906122cc565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546115f59190611ce9565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611659919061199b565b60405180910390a361166c8484846117d6565b50505050565b61167d8383836117db565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116e557505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611779575060085f6116f7610bf7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156117d15760075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154809291906117cb906122ea565b91905055505b505050565b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156118175780820151818401526020810190506117fc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61183c826117e0565b61184681856117ea565b93506118568185602086016117fa565b61185f81611822565b840191505092915050565b5f6020820190508181035f8301526118828184611832565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118b78261188e565b9050919050565b6118c7816118ad565b81146118d1575f80fd5b50565b5f813590506118e2816118be565b92915050565b5f819050919050565b6118fa816118e8565b8114611904575f80fd5b50565b5f81359050611915816118f1565b92915050565b5f80604083850312156119315761193061188a565b5b5f61193e858286016118d4565b925050602061194f85828601611907565b9150509250929050565b5f8115159050919050565b61196d81611959565b82525050565b5f6020820190506119865f830184611964565b92915050565b611995816118e8565b82525050565b5f6020820190506119ae5f83018461198c565b92915050565b6119bd81611959565b81146119c7575f80fd5b50565b5f813590506119d8816119b4565b92915050565b5f805f606084860312156119f5576119f461188a565b5b5f611a02868287016118d4565b9350506020611a13868287016119ca565b9250506040611a24868287016118d4565b9150509250925092565b5f60208284031215611a4357611a4261188a565b5b5f611a50848285016118d4565b91505092915050565b5f805f60608486031215611a7057611a6f61188a565b5b5f611a7d868287016118d4565b9350506020611a8e868287016118d4565b9250506040611a9f86828701611907565b9150509250925092565b5f60ff82169050919050565b611abe81611aa9565b82525050565b5f602082019050611ad75f830184611ab5565b92915050565b5f8060408385031215611af357611af261188a565b5b5f611b00858286016118d4565b9250506020611b11858286016118d4565b9150509250929050565b611b24816118ad565b82525050565b5f602082019050611b3d5f830184611b1b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b8757607f821691505b602082108103611b9a57611b99611b43565b5b50919050565b7f4f776e61626c653a2047524f4b322063616c6c6572206973206e6f74207468655f8201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b5f611bfa6026836117ea565b9150611c0582611ba0565b604082019050919050565b5f6020820190508181035f830152611c2781611bee565b9050919050565b7f455243323047524f4b323a207472616e7366657220616d6f756e7420657863655f8201527f65647320616c6c6f77616e636500000000000000000000000000000000000000602082015250565b5f611c88602d836117ea565b9150611c9382611c2e565b604082019050919050565b5f6020820190508181035f830152611cb581611c7c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611cf3826118e8565b9150611cfe836118e8565b9250828201905080821115611d1657611d15611cbc565b5b92915050565b7f54726164696e6720616c72656164792047524f4b3220656e61626c65642e00005f82015250565b5f611d50601e836117ea565b9150611d5b82611d1c565b602082019050919050565b5f6020820190508181035f830152611d7d81611d44565b9050919050565b7f47524f4b3245524332303a2064656372656173656420616c6c6f77616e6365205f8201527f62656c6f77207a65726f00000000000000000000000000000000000000000000602082015250565b5f611dde602a836117ea565b9150611de982611d84565b604082019050919050565b5f6020820190508181035f830152611e0b81611dd2565b9050919050565b7f4f776e61626c653a206e6577206f776e65722047524f4b3220697320746865205f8201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b5f611e6c602c836117ea565b9150611e7782611e12565b604082019050919050565b5f6020820190508181035f830152611e9981611e60565b9050919050565b7f45524332303a20617070726f76652047524f4b322066726f6d20746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f611efa602a836117ea565b9150611f0582611ea0565b604082019050919050565b5f6020820190508181035f830152611f2781611eee565b9050919050565b7f45524332303a20617070726f766520746f207468652047524f4b32207a65726f5f8201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b5f611f886028836117ea565b9150611f9382611f2e565b604082019050919050565b5f6020820190508181035f830152611fb581611f7c565b9050919050565b7f45524332303a207472616e736665722047524f4b322066726f6d20746865207a5f8201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b5f612016602b836117ea565b915061202182611fbc565b604082019050919050565b5f6020820190508181035f8301526120438161200a565b9050919050565b7f47524f4b323a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6120a46023836117ea565b91506120af8261204a565b604082019050919050565b5f6020820190508181035f8301526120d181612098565b9050919050565b7f54726164696e67206e6f742047524f4b322079657420656e61626c65642100005f82015250565b5f61210c601e836117ea565b9150612117826120d8565b602082019050919050565b5f6020820190508181035f83015261213981612100565b9050919050565b7f47524f4b323a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61219a6025836117ea565b91506121a582612140565b604082019050919050565b5f6020820190508181035f8301526121c78161218e565b9050919050565b7f45524332303a2047524f4b32207472616e7366657220746f20746865207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f6122286029836117ea565b9150612233826121ce565b604082019050919050565b5f6020820190508181035f8301526122558161221c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742047524f4b32206578635f8201527f656564732062616c616e63650000000000000000000000000000000000000000602082015250565b5f6122b6602c836117ea565b91506122c18261225c565b604082019050919050565b5f6020820190508181035f8301526122e3816122aa565b9050919050565b5f6122f4826118e8565b91505f820361230657612305611cbc565b5b60018203905091905056fea2646970667358221220486dbc4caf131c6772afa2e49d1fd9004ff7269139ac708c8f24329ac65c319464736f6c63430008140033

Deployed Bytecode Sourcemap

7401:2168:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2634:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3548:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2955:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7793:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8399:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3725:578;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8274:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4311:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8831:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8201:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3071:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1740:94;;;;;;;;;;;;;:::i;:::-;;8866:152;;;;;;;;;;;;;:::i;:::-;;1511:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2742:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4534:418;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3206:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8047:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3389:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1842:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2634:100;2688:13;2721:5;2714:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2634:100;:::o;3548:169::-;3631:4;3648:39;3657:12;:10;:12::i;:::-;3671:7;3680:6;3648:8;:39::i;:::-;3705:4;3698:11;;3548:169;;;;:::o;2955:108::-;3016:7;3043:12;;3036:19;;2955:108;:::o;7793:246::-;1657:12;:10;:12::i;:::-;1646:23;;:7;:5;:7::i;:::-;:23;;;1638:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7961:8:::1;7905:25;:34;7931:7;7905:34;;;;;;;;;;;;;;;;:64;;;;;;;;;;;;;;;;;;8023:8;7981:10;:19;7992:7;:5;:7::i;:::-;7981:19;;;;;;;;;;;;;;;:29;8001:8;7981:29;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;7793:246:::0;;;:::o;8399:123::-;8461:4;8485:10;:19;8496:7;:5;:7::i;:::-;8485:19;;;;;;;;;;;;;;;:29;8505:8;8485:29;;;;;;;;;;;;;;;;;;;;;;;;;8478:36;;8399:123;;;:::o;3725:578::-;3865:4;3882:24;3909:11;:19;3921:6;3909:19;;;;;;;;;;;;;;;:33;3929:12;:10;:12::i;:::-;3909:33;;;;;;;;;;;;;;;;3882:60;;3977:17;3957:16;:37;3953:270;;4039:6;4019:16;:26;;4011:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;4139:57;4148:6;4156:12;:10;:12::i;:::-;4189:6;4170:16;:25;4139:8;:57::i;:::-;3953:270;4235:36;4245:6;4253:9;4264:6;4235:9;:36::i;:::-;4291:4;4284:11;;;3725:578;;;;;:::o;8274:117::-;8333:7;8360:13;:23;8374:8;8360:23;;;;;;;;;;;;;;;;8353:30;;8274:117;;;:::o;2854:93::-;2912:5;2937:2;2930:9;;2854:93;:::o;4311:215::-;4399:4;4416:80;4425:12;:10;:12::i;:::-;4439:7;4485:10;4448:11;:25;4460:12;:10;:12::i;:::-;4448:25;;;;;;;;;;;;;;;:34;4474:7;4448:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4416:8;:80::i;:::-;4514:4;4507:11;;4311:215;;;;:::o;8831:26::-;;;;;;;;;;;;;:::o;8201:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3071:127::-;3145:7;3172:9;:18;3182:7;3172:18;;;;;;;;;;;;;;;;3165:25;;3071:127;;;:::o;1740:94::-;1657:12;:10;:12::i;:::-;1646:23;;:7;:5;:7::i;:::-;:23;;;1638:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1805:21:::1;1823:1;1805:9;:21::i;:::-;1740:94::o:0;8866:152::-;1657:12;:10;:12::i;:::-;1646:23;;:7;:5;:7::i;:::-;:23;;;1638:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8929:14:::1;;;;;;;;;;;8928:15;8920:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9006:4;8989:14;;:21;;;;;;;;;;;;;;;;;;8866:152::o:0;1511:87::-;1557:7;1584:6;;;;;;;;;;;1577:13;;1511:87;:::o;2742:104::-;2798:13;2831:7;2824:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2742:104;:::o;4534:418::-;4627:4;4644:24;4671:11;:25;4683:12;:10;:12::i;:::-;4671:25;;;;;;;;;;;;;;;:34;4697:7;4671:34;;;;;;;;;;;;;;;;4644:61;;4744:15;4724:16;:35;;4716:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;4842:67;4851:12;:10;:12::i;:::-;4865:7;4893:15;4874:16;:34;4842:8;:67::i;:::-;4940:4;4933:11;;;4534:418;;;;:::o;3206:175::-;3292:4;3309:42;3319:12;:10;:12::i;:::-;3333:9;3344:6;3309:9;:42::i;:::-;3369:4;3362:11;;3206:175;;;;:::o;8047:140::-;8121:4;8145:25;:34;8171:7;8145:34;;;;;;;;;;;;;;;;;;;;;;;;;8138:41;;8047:140;;;:::o;3389:151::-;3478:7;3505:11;:18;3517:5;3505:18;;;;;;;;;;;;;;;:27;3524:7;3505:27;;;;;;;;;;;;;;;;3498:34;;3389:151;;;;:::o;1842:198::-;1657:12;:10;:12::i;:::-;1646:23;;:7;:5;:7::i;:::-;:23;;;1638:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;1951:1:::1;1931:22;;:8;:22;;::::0;1923:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2013:19;2023:8;2013:9;:19::i;:::-;1842:198:::0;:::o;1065:98::-;1118:7;1145:10;1138:17;;1065:98;:::o;6737:392::-;6890:1;6873:19;;:5;:19;;;6865:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;6977:1;6958:21;;:7;:21;;;6950:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7067:6;7037:11;:18;7049:5;7037:18;;;;;;;;;;;;;;;:27;7056:7;7037:27;;;;;;;;;;;;;;;:36;;;;7105:7;7089:32;;7098:5;7089:32;;;7114:6;7089:32;;;;;;:::i;:::-;;;;;;;;6737:392;;;:::o;9026:540::-;9139:1;9123:18;;:4;:18;;;9115:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9222:1;9208:16;;:2;:16;;;9200:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9283:14;;;;;;;;;;;:49;;;;9301:25;:31;9327:4;9301:31;;;;;;;;;;;;;;;;;;;;;;;;;9283:49;:82;;;;9336:25;:29;9362:2;9336:29;;;;;;;;;;;;;;;;;;;;;;;;;9283:82;9275:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;9434:1;9424:6;:11;9420:93;;9452:28;9468:4;9474:2;9478:1;9452:15;:28::i;:::-;9495:7;;9420:93;9525:33;9541:4;9547:2;9551:6;9525:15;:33::i;:::-;9026:540;;;;:::o;2048:173::-;2104:16;2123:6;;;;;;;;;;;2104:25;;2149:8;2140:6;;:17;;;;;;;;;;;;;;;;;;2204:8;2173:40;;2194:8;2173:40;;;;;;;;;;;;2093:128;2048:173;:::o;4960:745::-;5118:1;5100:20;;:6;:20;;;5092:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5202:1;5181:23;;:9;:23;;;5173:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;5263:47;5284:6;5292:9;5303:6;5263:20;:47::i;:::-;5323:21;5347:9;:17;5357:6;5347:17;;;;;;;;;;;;;;;;5323:41;;5400:6;5383:13;:23;;5375:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;5527:6;5511:13;:22;5491:9;:17;5501:6;5491:17;;;;;;;;;;;;;;;:42;;;;5579:6;5555:9;:20;5565:9;5555:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5620:9;5603:35;;5612:6;5603:35;;;5631:6;5603:35;;;;;;:::i;:::-;;;;;;;;5651:46;5671:6;5679:9;5690:6;5651:19;:46::i;:::-;5081:624;4960:745;;;:::o;8530:293::-;8639:44;8666:4;8672:2;8676:6;8639:26;:44::i;:::-;8715:1;8699:18;;:4;:18;;;;:38;;;;;8735:1;8721:16;;:2;:16;;;;8699:38;:67;;;;;8741:10;:19;8752:7;:5;:7::i;:::-;8741:19;;;;;;;;;;;;;;;:25;8761:4;8741:25;;;;;;;;;;;;;;;;;;;;;;;;;8699:67;8696:120;;;8783:13;:19;8797:4;8783:19;;;;;;;;;;;;;;;;:21;;;;;;;;;:::i;:::-;;;;;;8696:120;8530:293;;;:::o;7270:124::-;;;;:::o;7137:125::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:613::-;4133:6;4141;4149;4198:2;4186:9;4177:7;4173:23;4169:32;4166:119;;;4204:79;;:::i;:::-;4166:119;4324:1;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4295:117;4451:2;4477:50;4519:7;4510:6;4499:9;4495:22;4477:50;:::i;:::-;4467:60;;4422:115;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4059:613;;;;;:::o;4678:329::-;4737:6;4786:2;4774:9;4765:7;4761:23;4757:32;4754:119;;;4792:79;;:::i;:::-;4754:119;4912:1;4937:53;4982:7;4973:6;4962:9;4958:22;4937:53;:::i;:::-;4927:63;;4883:117;4678:329;;;;:::o;5013:619::-;5090:6;5098;5106;5155:2;5143:9;5134:7;5130:23;5126:32;5123:119;;;5161:79;;:::i;:::-;5123:119;5281:1;5306:53;5351:7;5342:6;5331:9;5327:22;5306:53;:::i;:::-;5296:63;;5252:117;5408:2;5434:53;5479:7;5470:6;5459:9;5455:22;5434:53;:::i;:::-;5424:63;;5379:118;5536:2;5562:53;5607:7;5598:6;5587:9;5583:22;5562:53;:::i;:::-;5552:63;;5507:118;5013:619;;;;;:::o;5638:86::-;5673:7;5713:4;5706:5;5702:16;5691:27;;5638:86;;;:::o;5730:112::-;5813:22;5829:5;5813:22;:::i;:::-;5808:3;5801:35;5730:112;;:::o;5848:214::-;5937:4;5975:2;5964:9;5960:18;5952:26;;5988:67;6052:1;6041:9;6037:17;6028:6;5988:67;:::i;:::-;5848:214;;;;:::o;6068:474::-;6136:6;6144;6193:2;6181:9;6172:7;6168:23;6164:32;6161:119;;;6199:79;;:::i;:::-;6161:119;6319:1;6344:53;6389:7;6380:6;6369:9;6365:22;6344:53;:::i;:::-;6334:63;;6290:117;6446:2;6472:53;6517:7;6508:6;6497:9;6493:22;6472:53;:::i;:::-;6462:63;;6417:118;6068:474;;;;;:::o;6548:118::-;6635:24;6653:5;6635:24;:::i;:::-;6630:3;6623:37;6548:118;;:::o;6672:222::-;6765:4;6803:2;6792:9;6788:18;6780:26;;6816:71;6884:1;6873:9;6869:17;6860:6;6816:71;:::i;:::-;6672:222;;;;:::o;6900:180::-;6948:77;6945:1;6938:88;7045:4;7042:1;7035:15;7069:4;7066:1;7059:15;7086:320;7130:6;7167:1;7161:4;7157:12;7147:22;;7214:1;7208:4;7204:12;7235:18;7225:81;;7291:4;7283:6;7279:17;7269:27;;7225:81;7353:2;7345:6;7342:14;7322:18;7319:38;7316:84;;7372:18;;:::i;:::-;7316:84;7137:269;7086:320;;;:::o;7412:225::-;7552:34;7548:1;7540:6;7536:14;7529:58;7621:8;7616:2;7608:6;7604:15;7597:33;7412:225;:::o;7643:366::-;7785:3;7806:67;7870:2;7865:3;7806:67;:::i;:::-;7799:74;;7882:93;7971:3;7882:93;:::i;:::-;8000:2;7995:3;7991:12;7984:19;;7643:366;;;:::o;8015:419::-;8181:4;8219:2;8208:9;8204:18;8196:26;;8268:9;8262:4;8258:20;8254:1;8243:9;8239:17;8232:47;8296:131;8422:4;8296:131;:::i;:::-;8288:139;;8015:419;;;:::o;8440:232::-;8580:34;8576:1;8568:6;8564:14;8557:58;8649:15;8644:2;8636:6;8632:15;8625:40;8440:232;:::o;8678:366::-;8820:3;8841:67;8905:2;8900:3;8841:67;:::i;:::-;8834:74;;8917:93;9006:3;8917:93;:::i;:::-;9035:2;9030:3;9026:12;9019:19;;8678:366;;;:::o;9050:419::-;9216:4;9254:2;9243:9;9239:18;9231:26;;9303:9;9297:4;9293:20;9289:1;9278:9;9274:17;9267:47;9331:131;9457:4;9331:131;:::i;:::-;9323:139;;9050:419;;;:::o;9475:180::-;9523:77;9520:1;9513:88;9620:4;9617:1;9610:15;9644:4;9641:1;9634:15;9661:191;9701:3;9720:20;9738:1;9720:20;:::i;:::-;9715:25;;9754:20;9772:1;9754:20;:::i;:::-;9749:25;;9797:1;9794;9790:9;9783:16;;9818:3;9815:1;9812:10;9809:36;;;9825:18;;:::i;:::-;9809:36;9661:191;;;;:::o;9858:180::-;9998:32;9994:1;9986:6;9982:14;9975:56;9858:180;:::o;10044:366::-;10186:3;10207:67;10271:2;10266:3;10207:67;:::i;:::-;10200:74;;10283:93;10372:3;10283:93;:::i;:::-;10401:2;10396:3;10392:12;10385:19;;10044:366;;;:::o;10416:419::-;10582:4;10620:2;10609:9;10605:18;10597:26;;10669:9;10663:4;10659:20;10655:1;10644:9;10640:17;10633:47;10697:131;10823:4;10697:131;:::i;:::-;10689:139;;10416:419;;;:::o;10841:229::-;10981:34;10977:1;10969:6;10965:14;10958:58;11050:12;11045:2;11037:6;11033:15;11026:37;10841:229;:::o;11076:366::-;11218:3;11239:67;11303:2;11298:3;11239:67;:::i;:::-;11232:74;;11315:93;11404:3;11315:93;:::i;:::-;11433:2;11428:3;11424:12;11417:19;;11076:366;;;:::o;11448:419::-;11614:4;11652:2;11641:9;11637:18;11629:26;;11701:9;11695:4;11691:20;11687:1;11676:9;11672:17;11665:47;11729:131;11855:4;11729:131;:::i;:::-;11721:139;;11448:419;;;:::o;11873:231::-;12013:34;12009:1;12001:6;11997:14;11990:58;12082:14;12077:2;12069:6;12065:15;12058:39;11873:231;:::o;12110:366::-;12252:3;12273:67;12337:2;12332:3;12273:67;:::i;:::-;12266:74;;12349:93;12438:3;12349:93;:::i;:::-;12467:2;12462:3;12458:12;12451:19;;12110:366;;;:::o;12482:419::-;12648:4;12686:2;12675:9;12671:18;12663:26;;12735:9;12729:4;12725:20;12721:1;12710:9;12706:17;12699:47;12763:131;12889:4;12763:131;:::i;:::-;12755:139;;12482:419;;;:::o;12907:229::-;13047:34;13043:1;13035:6;13031:14;13024:58;13116:12;13111:2;13103:6;13099:15;13092:37;12907:229;:::o;13142:366::-;13284:3;13305:67;13369:2;13364:3;13305:67;:::i;:::-;13298:74;;13381:93;13470:3;13381:93;:::i;:::-;13499:2;13494:3;13490:12;13483:19;;13142:366;;;:::o;13514:419::-;13680:4;13718:2;13707:9;13703:18;13695:26;;13767:9;13761:4;13757:20;13753:1;13742:9;13738:17;13731:47;13795:131;13921:4;13795:131;:::i;:::-;13787:139;;13514:419;;;:::o;13939:227::-;14079:34;14075:1;14067:6;14063:14;14056:58;14148:10;14143:2;14135:6;14131:15;14124:35;13939:227;:::o;14172:366::-;14314:3;14335:67;14399:2;14394:3;14335:67;:::i;:::-;14328:74;;14411:93;14500:3;14411:93;:::i;:::-;14529:2;14524:3;14520:12;14513:19;;14172:366;;;:::o;14544:419::-;14710:4;14748:2;14737:9;14733:18;14725:26;;14797:9;14791:4;14787:20;14783:1;14772:9;14768:17;14761:47;14825:131;14951:4;14825:131;:::i;:::-;14817:139;;14544:419;;;:::o;14969:230::-;15109:34;15105:1;15097:6;15093:14;15086:58;15178:13;15173:2;15165:6;15161:15;15154:38;14969:230;:::o;15205:366::-;15347:3;15368:67;15432:2;15427:3;15368:67;:::i;:::-;15361:74;;15444:93;15533:3;15444:93;:::i;:::-;15562:2;15557:3;15553:12;15546:19;;15205:366;;;:::o;15577:419::-;15743:4;15781:2;15770:9;15766:18;15758:26;;15830:9;15824:4;15820:20;15816:1;15805:9;15801:17;15794:47;15858:131;15984:4;15858:131;:::i;:::-;15850:139;;15577:419;;;:::o;16002:222::-;16142:34;16138:1;16130:6;16126:14;16119:58;16211:5;16206:2;16198:6;16194:15;16187:30;16002:222;:::o;16230:366::-;16372:3;16393:67;16457:2;16452:3;16393:67;:::i;:::-;16386:74;;16469:93;16558:3;16469:93;:::i;:::-;16587:2;16582:3;16578:12;16571:19;;16230:366;;;:::o;16602:419::-;16768:4;16806:2;16795:9;16791:18;16783:26;;16855:9;16849:4;16845:20;16841:1;16830:9;16826:17;16819:47;16883:131;17009:4;16883:131;:::i;:::-;16875:139;;16602:419;;;:::o;17027:180::-;17167:32;17163:1;17155:6;17151:14;17144:56;17027:180;:::o;17213:366::-;17355:3;17376:67;17440:2;17435:3;17376:67;:::i;:::-;17369:74;;17452:93;17541:3;17452:93;:::i;:::-;17570:2;17565:3;17561:12;17554:19;;17213:366;;;:::o;17585:419::-;17751:4;17789:2;17778:9;17774:18;17766:26;;17838:9;17832:4;17828:20;17824:1;17813:9;17809:17;17802:47;17866:131;17992:4;17866:131;:::i;:::-;17858:139;;17585:419;;;:::o;18010:224::-;18150:34;18146:1;18138:6;18134:14;18127:58;18219:7;18214:2;18206:6;18202:15;18195:32;18010:224;:::o;18240:366::-;18382:3;18403:67;18467:2;18462:3;18403:67;:::i;:::-;18396:74;;18479:93;18568:3;18479:93;:::i;:::-;18597:2;18592:3;18588:12;18581:19;;18240:366;;;:::o;18612:419::-;18778:4;18816:2;18805:9;18801:18;18793:26;;18865:9;18859:4;18855:20;18851:1;18840:9;18836:17;18829:47;18893:131;19019:4;18893:131;:::i;:::-;18885:139;;18612:419;;;:::o;19037:228::-;19177:34;19173:1;19165:6;19161:14;19154:58;19246:11;19241:2;19233:6;19229:15;19222:36;19037:228;:::o;19271:366::-;19413:3;19434:67;19498:2;19493:3;19434:67;:::i;:::-;19427:74;;19510:93;19599:3;19510:93;:::i;:::-;19628:2;19623:3;19619:12;19612:19;;19271:366;;;:::o;19643:419::-;19809:4;19847:2;19836:9;19832:18;19824:26;;19896:9;19890:4;19886:20;19882:1;19871:9;19867:17;19860:47;19924:131;20050:4;19924:131;:::i;:::-;19916:139;;19643:419;;;:::o;20068:231::-;20208:34;20204:1;20196:6;20192:14;20185:58;20277:14;20272:2;20264:6;20260:15;20253:39;20068:231;:::o;20305:366::-;20447:3;20468:67;20532:2;20527:3;20468:67;:::i;:::-;20461:74;;20544:93;20633:3;20544:93;:::i;:::-;20662:2;20657:3;20653:12;20646:19;;20305:366;;;:::o;20677:419::-;20843:4;20881:2;20870:9;20866:18;20858:26;;20930:9;20924:4;20920:20;20916:1;20905:9;20901:17;20894:47;20958:131;21084:4;20958:131;:::i;:::-;20950:139;;20677:419;;;:::o;21102:171::-;21141:3;21164:24;21182:5;21164:24;:::i;:::-;21155:33;;21210:4;21203:5;21200:15;21197:41;;21218:18;;:::i;:::-;21197:41;21265:1;21258:5;21254:13;21247:20;;21102:171;;;:::o

Swarm Source

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