ETH Price: $3,253.46 (-2.27%)
Gas: 7.4 Gwei
 

Overview

Max Total Supply

5,700,000,000 IBIT

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.00000001 IBIT

Value
$0.00
0x184ABE182ffAbfdEc46BEefe48C125433697f5E8
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:
InfinityBitToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-15
*/

// SPDX-License-Identifier: AGPL-3.0-only
/*
  _____        __ _       _ _         ____  _ _         _
 |_   _|      / _(_)     (_) |       |  _ \(_) |       (_)
   | |  _ __ | |_ _ _ __  _| |_ _   _| |_) |_| |_       _  ___
   | | | '_ \|  _| | '_ \| | __| | | |  _ <| | __|     | |/ _ \
  _| |_| | | | | | | | | | | |_| |_| | |_) | | |_   _  | | (_) |
 |_____|_| |_|_| |_|_| |_|_|\__|\__, |____/|_|\__| (_) |_|\___/
                                 __/ |
                                |___/
*/
// InfinityBit Token (IBIT)
// https://infinitybit.io
// TG: https://t.me/infinitybit_io
// Twitter: https://twitter.com/infinitybit_io

pragma solidity 0.8.17;

// Context
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() {
        _transferOwnership(_msgSender());
    }
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    function _checkOwner() internal view virtual {
        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 cannot be the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// ERC20 Interface
interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

// Uniswap V2
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

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

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

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}
interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    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(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
    external
    returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals = 8;
    uint256 private _deployHeight;
    address private _contractDeployer;
    address private _uniswapV2RouterAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address private _uniswapUniversalRouter = 0x4648a43B2C14Da09FdF82B161150d3F634f40491;
    bool private _maxWalletEnabled = false;
    address private _uniswapV2PairAddress;

    // Maximum Supply is 10,000,000,000. This is immutable and cannot be changed.
    uint256 private immutable _maxSupply = 10000000000 * (10 ** uint256(_decimals));

    // Maximum total tax rate. This is immutable and cannot be changed.
    uint8 private immutable _maxTax = 5;

    // Maximum wallet. This is immutable and cannot be changed.
    uint256 private immutable _maxWallet = 125000000 * (10 ** uint256(_decimals));

    // Marketing Tax
    uint8 private _marketingTax = 0; // 3% will be initial after LP setup
    address private _marketingWallet = 0xA6e18D5F6b20dFA84d7d245bb656561f1f9aff69;

    // Developer Tax
    uint8 private _devTax = 0; // 2% will be initial after LP setup
    address private _devWallet = 0x9d0D8E5e651Ab7d54Af5B0F655b3978504E67E0C;

    // LP Tax
    uint8 private _lpTax = 0;
    address private _lpWallet = 0x37aF53cF22eB52219E8f7dDc5969e3C6dd95F42E;

    // AntiSnipe Period Length in Blocks
    uint256 private _ASB = 30;

    // Burn Address
    address private immutable _burnAddress = 0x000000000000000000000000000000000000D34d;

    // Anti-Snipe Deny-List
    //  This is a list of bot wallets which have been detected
    //  and locked from interacting with the contract.
    mapping(address=>bool) AntiSnipeDenyList;

    constructor() {
        _name = "InfinityBit Token";
        _symbol = "IBIT";
        _deployHeight = block.number;
        _contractDeployer = msg.sender;

        // Mint Supply
        _mint(_contractDeployer, _maxSupply);

        // Burn 43%
        _burn(msg.sender, 430000000000000000);
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, amount);
        return true;
    }
    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, allowance(msg.sender, spender) + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = allowance(msg.sender, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(msg.sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }
    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;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _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: 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;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

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

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

        _allowances[from][spender] = amount;
        emit Approval(from, spender, amount);
    }
    function _spendAllowance(address from, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(from, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(from, spender, currentAllowance - amount);
            }
        }
    }

    function getDevTax() public view returns (uint8) {
        return _devTax;
    }

    function getLpTax() public view returns (uint8) {
        return _lpTax;
    }

    function getMarketingTax() public view returns (uint8) {
        return _marketingTax;
    }

    function setDevTax(uint8 tax) public onlyOwner {
        require(_lpTax+_marketingTax+tax <= _maxTax, "IBIT: total tax cannot exceed max tax");
        _devTax = tax;
    }

    function setLpTax(uint8 tax) public onlyOwner {
        require((_devTax+_marketingTax+tax) <= _maxTax, "IBIT: total tax cannot exceed max tax");
        _lpTax = tax;
    }

    function setMarketingTax(uint8 tax) public onlyOwner {
        require(_devTax+_lpTax+tax <= _maxTax, "IBIT: total tax cannot exceed max tax");
        _marketingTax = tax;
    }
    
    function removeFromDenyList(address _address) public onlyOwner {
        require(AntiSnipeDenyList[_address] == true, "AntiSnipe: address is not on the deny list");
        AntiSnipeDenyList[_address] = false;
    }

    function CheckIsSniper(address _address) public view returns (bool) {
        return AntiSnipeDenyList[_address];
    }

    function ToggleMaxWallet(bool _enable) public onlyOwner {
        _maxWalletEnabled = _enable;
    }

    function SetUniswapV2Pair(address _w) public onlyOwner {
        _uniswapV2PairAddress = _w;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!AntiSnipeDenyList[from], "AntiSnipe: from address is on denylist");

        uint256 lp_tax_amount = 0;
        uint256 dev_tax_amount = 0;
        uint256 marketing_tax_amount = 0;
        uint256 transfer_amount;

        if(msg.sender != _contractDeployer && msg.sender != owner() && to != _uniswapV2RouterAddress)
        {
            // Calculate Taxes
            lp_tax_amount = (amount * _lpTax)/100;
            dev_tax_amount = (amount * _devTax)/100;
            marketing_tax_amount = (amount * _marketingTax)/100;

            // Calculate final transfer amount
            transfer_amount = amount - lp_tax_amount - dev_tax_amount - marketing_tax_amount;

            // Begin Max Wallet Check
            uint256 wallet_size = balanceOf(to);

            if(
                _maxWalletEnabled
                && to != _uniswapV2PairAddress
                && to != _uniswapUniversalRouter
            )
            {
                require((wallet_size + transfer_amount) <= _maxWallet, "IBIT: maximum wallet cannot be exceeded");
            }

            // InfinityBit Token official contract address will be announced only after
            //   _ASB blocks have passed since contract deployment. Any transfers before
            //   such time are considered to be bot snipers, and will be locked.
            if(block.number < _deployHeight+_ASB)
            {
                AntiSnipeDenyList[to] = true;
            }
        }
        else
        {
            transfer_amount = amount;
        }

        _beforeTokenTransfer(from, to, transfer_amount);
        _beforeTokenTransfer(from, _lpWallet, lp_tax_amount);
        _beforeTokenTransfer(from, _devWallet, dev_tax_amount);
        _beforeTokenTransfer(from, _marketingWallet, marketing_tax_amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += transfer_amount;
            _balances[_lpWallet] += lp_tax_amount;
            _balances[_devWallet] += dev_tax_amount;
            _balances[_marketingWallet] += marketing_tax_amount;
        }

        if(marketing_tax_amount > 0)
        {
            emit Transfer(from, _marketingWallet, marketing_tax_amount);
        }

        if(dev_tax_amount > 0)
        {
            emit Transfer(from, _devWallet, dev_tax_amount);
        }

        if(lp_tax_amount > 0)
        {
            emit Transfer(from, _lpWallet, lp_tax_amount);
        }

        emit Transfer(from, to, transfer_amount);

        _afterTokenTransfer(from, _marketingWallet, marketing_tax_amount);
        _afterTokenTransfer(from, _devWallet, dev_tax_amount);
        _afterTokenTransfer(from, _lpWallet, lp_tax_amount);
        _afterTokenTransfer(from, to, transfer_amount);

    }
    

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

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":"_address","type":"address"}],"name":"CheckIsSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_w","type":"address"}],"name":"SetUniswapV2Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enable","type":"bool"}],"name":"ToggleMaxWallet","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":[],"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":"getDevTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLpTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarketingTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":[],"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":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeFromDenyList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"tax","type":"uint8"}],"name":"setDevTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"tax","type":"uint8"}],"name":"setLpTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"tax","type":"uint8"}],"name":"setMarketingTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]

6101006040526008600660006101000a81548160ff021916908360ff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734648a43b2c14da09fdf82b161150d3f634f40491600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60146101000a81548160ff021916908315150217905550600660009054906101000a900460ff1660ff16600a62000107919062000a04565b6402540be40062000119919062000a55565b608090815250600560ff1660a09060ff16815250600660009054906101000a900460ff1660ff16600a6200014e919062000a04565b63077359406200015f919062000a55565b60c0908152506000600b60146101000a81548160ff021916908360ff16021790555073a6e18d5f6b20dfa84d7d245bb656561f1f9aff69600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60146101000a81548160ff021916908360ff160217905550739d0d8e5e651ab7d54af5b0f655b3978504e67e0c600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60146101000a81548160ff021916908360ff1602179055507337af53cf22eb52219e8f7ddc5969e3c6dd95f42e600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601e600f5561d34d73ffffffffffffffffffffffffffffffffffffffff1660e09073ffffffffffffffffffffffffffffffffffffffff16815250348015620002ff57600080fd5b5062000320620003146200044c60201b60201c565b6200045460201b60201c565b6040518060400160405280601181526020017f496e66696e69747942697420546f6b656e0000000000000000000000000000008152506004908162000366919062000d10565b506040518060400160405280600481526020017f494249540000000000000000000000000000000000000000000000000000000081525060059081620003ad919062000d10565b504360078190555033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042c600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166080516200051860201b60201c565b62000446336705f7aab8c56b00006200068660201b60201c565b62001013565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200058a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005819062000e58565b60405180910390fd5b6200059e600083836200086d60201b60201c565b8060036000828254620005b2919062000e7a565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000666919062000ec6565b60405180910390a362000682600083836200087260201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006ef9062000f59565b60405180910390fd5b6200070c826000836200086d60201b60201c565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000796576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200078d9062000ff1565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200084c919062000ec6565b60405180910390a362000868836000846200087260201b60201c565b505050565b505050565b505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200090557808604811115620008dd57620008dc62000877565b5b6001851615620008ed5780820291505b8081029050620008fd85620008a6565b9450620008bd565b94509492505050565b600082620009205760019050620009f3565b81620009305760009050620009f3565b816001811462000949576002811462000954576200098a565b6001915050620009f3565b60ff84111562000969576200096862000877565b5b8360020a91508482111562000983576200098262000877565b5b50620009f3565b5060208310610133831016604e8410600b8410161715620009c45782820a905083811115620009be57620009bd62000877565b5b620009f3565b620009d38484846001620008b3565b92509050818404811115620009ed57620009ec62000877565b5b81810290505b9392505050565b6000819050919050565b600062000a1182620009fa565b915062000a1e83620009fa565b925062000a4d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200090e565b905092915050565b600062000a6282620009fa565b915062000a6f83620009fa565b925082820262000a7f81620009fa565b9150828204841483151762000a995762000a9862000877565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b2257607f821691505b60208210810362000b385762000b3762000ada565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000ba27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b63565b62000bae868362000b63565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000bf162000beb62000be584620009fa565b62000bc6565b620009fa565b9050919050565b6000819050919050565b62000c0d8362000bd0565b62000c2562000c1c8262000bf8565b84845462000b70565b825550505050565b600090565b62000c3c62000c2d565b62000c4981848462000c02565b505050565b5b8181101562000c715762000c6560008262000c32565b60018101905062000c4f565b5050565b601f82111562000cc05762000c8a8162000b3e565b62000c958462000b53565b8101602085101562000ca5578190505b62000cbd62000cb48562000b53565b83018262000c4e565b50505b505050565b600082821c905092915050565b600062000ce56000198460080262000cc5565b1980831691505092915050565b600062000d00838362000cd2565b9150826002028217905092915050565b62000d1b8262000aa0565b67ffffffffffffffff81111562000d375762000d3662000aab565b5b62000d43825462000b09565b62000d5082828562000c75565b600060209050601f83116001811462000d88576000841562000d73578287015190505b62000d7f858262000cf2565b86555062000def565b601f19841662000d988662000b3e565b60005b8281101562000dc25784890151825560018201915060208501945060208101905062000d9b565b8683101562000de2578489015162000dde601f89168262000cd2565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000e40601f8362000df7565b915062000e4d8262000e08565b602082019050919050565b6000602082019050818103600083015262000e738162000e31565b9050919050565b600062000e8782620009fa565b915062000e9483620009fa565b925082820190508082111562000eaf5762000eae62000877565b5b92915050565b62000ec081620009fa565b82525050565b600060208201905062000edd600083018462000eb5565b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600062000f4160218362000df7565b915062000f4e8262000ee3565b604082019050919050565b6000602082019050818103600083015262000f748162000f32565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b600062000fd960228362000df7565b915062000fe68262000f7b565b604082019050919050565b600060208201905081810360008301526200100c8162000fca565b9050919050565b60805160a05160c05160e0516127b7620010556000396000505060006113750152600081816106b7015281816107a50152610af60152600050506127b76000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80634f2fcbfc116100c3578063a2932c281161007c578063a2932c28146103a3578063a457c2d7146103d3578063a9059cbb14610403578063cfd10a1214610433578063dd62ed3e1461044f578063f2fde38b1461047f57610158565b80634f2fcbfc146102f357806370a082311461030f578063715018a61461033f5780638da5cb5b1461034957806395d89b41146103675780639f9aac7e1461038557610158565b8063313ce56711610115578063313ce567146102335780633386253314610251578063395093511461026d5780633c01439c1461029d57806340a55915146102b95780634a3273bf146102d757610158565b806306fdde031461015d578063095ea7b31461017b5780630c004ab8146101ab57806318160ddd146101c9578063215048cd146101e757806323b872dd14610203575b600080fd5b61016561049b565b6040516101729190611b67565b60405180910390f35b61019560048036038101906101909190611c22565b61052d565b6040516101a29190611c7d565b60405180910390f35b6101b3610550565b6040516101c09190611cb4565b60405180910390f35b6101d1610567565b6040516101de9190611cde565b60405180910390f35b61020160048036038101906101fc9190611cf9565b610571565b005b61021d60048036038101906102189190611d26565b610667565b60405161022a9190611c7d565b60405180910390f35b61023b610696565b6040516102489190611cb4565b60405180910390f35b61026b60048036038101906102669190611da5565b6106ad565b005b61028760048036038101906102829190611c22565b610770565b6040516102949190611c7d565b60405180910390f35b6102b760048036038101906102b29190611da5565b61079b565b005b6102c161085e565b6040516102ce9190611cb4565b60405180910390f35b6102f160048036038101906102ec9190611dfe565b610875565b005b61030d60048036038101906103089190611cf9565b61089a565b005b61032960048036038101906103249190611cf9565b6108e6565b6040516103369190611cde565b60405180910390f35b61034761092f565b005b610351610943565b60405161035e9190611e3a565b60405180910390f35b61036f61096c565b60405161037c9190611b67565b60405180910390f35b61038d6109fe565b60405161039a9190611cb4565b60405180910390f35b6103bd60048036038101906103b89190611cf9565b610a15565b6040516103ca9190611c7d565b60405180910390f35b6103ed60048036038101906103e89190611c22565b610a6b565b6040516103fa9190611c7d565b60405180910390f35b61041d60048036038101906104189190611c22565b610ad5565b60405161042a9190611c7d565b60405180910390f35b61044d60048036038101906104489190611da5565b610aec565b005b61046960048036038101906104649190611e55565b610baf565b6040516104769190611cde565b60405180910390f35b61049960048036038101906104949190611cf9565b610c36565b005b6060600480546104aa90611ec4565b80601f01602080910402602001604051908101604052809291908181526020018280546104d690611ec4565b80156105235780601f106104f857610100808354040283529160200191610523565b820191906000526020600020905b81548152906001019060200180831161050657829003601f168201915b5050505050905090565b600080610538610cb9565b9050610545818585610cc1565b600191505092915050565b6000600b60149054906101000a900460ff16905090565b6000600354905090565b610579610e8a565b60011515601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461060c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060390611f67565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600080610672610cb9565b905061067f858285610f08565b61068a858585610f94565b60019150509392505050565b6000600660009054906101000a900460ff16905090565b6106b5610e8a565b7f000000000000000000000000000000000000000000000000000000000000000060ff1681600b60149054906101000a900460ff16600c60149054906101000a900460ff166107049190611fb6565b61070e9190611fb6565b60ff161115610752576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107499061205d565b60405180910390fd5b80600d60146101000a81548160ff021916908360ff16021790555050565b60006107913384846107823388610baf565b61078c919061207d565b610cc1565b6001905092915050565b6107a3610e8a565b7f000000000000000000000000000000000000000000000000000000000000000060ff1681600d60149054906101000a900460ff16600c60149054906101000a900460ff166107f29190611fb6565b6107fc9190611fb6565b60ff161115610840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108379061205d565b60405180910390fd5b80600b60146101000a81548160ff021916908360ff16021790555050565b6000600c60149054906101000a900460ff16905090565b61087d610e8a565b80600a60146101000a81548160ff02191690831515021790555050565b6108a2610e8a565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610937610e8a565b6109416000611a09565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461097b90611ec4565b80601f01602080910402602001604051908101604052809291908181526020018280546109a790611ec4565b80156109f45780601f106109c9576101008083540402835291602001916109f4565b820191906000526020600020905b8154815290600101906020018083116109d757829003601f168201915b5050505050905090565b6000600d60149054906101000a900460ff16905090565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080610a783385610baf565b905082811015610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab490612123565b60405180910390fd5b610aca3385858403610cc1565b600191505092915050565b6000610ae2338484610f94565b6001905092915050565b610af4610e8a565b7f000000000000000000000000000000000000000000000000000000000000000060ff1681600b60149054906101000a900460ff16600d60149054906101000a900460ff16610b439190611fb6565b610b4d9190611fb6565b60ff161115610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b889061205d565b60405180910390fd5b80600c60146101000a81548160ff021916908360ff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c3e610e8a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca4906121b5565b60405180910390fd5b610cb681611a09565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790612247565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d96906122d9565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e7d9190611cde565b60405180910390a3505050565b610e92610cb9565b73ffffffffffffffffffffffffffffffffffffffff16610eb0610943565b73ffffffffffffffffffffffffffffffffffffffff1614610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd90612345565b60405180910390fd5b565b6000610f148484610baf565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f8e5781811015610f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f77906123b1565b60405180910390fd5b610f8d8484848403610cc1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffa90612443565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611072576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611069906124d5565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f690612567565b60405180910390fd5b600080600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156111965750611166610943565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156111f05750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611458576064600d60149054906101000a900460ff1660ff16866112159190612587565b61121f91906125f8565b93506064600c60149054906101000a900460ff1660ff16866112419190612587565b61124b91906125f8565b92506064600b60149054906101000a900460ff1660ff168661126d9190612587565b61127791906125f8565b9150818385876112879190612629565b6112919190612629565b61129b9190612629565b905060006112a8876108e6565b9050600a60149054906101000a900460ff1680156113145750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561136e5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156113e2577f000000000000000000000000000000000000000000000000000000000000000082826113a0919061207d565b11156113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d8906126cf565b60405180910390fd5b5b600f546007546113f2919061207d565b431015611452576001601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5061145c565b8490505b611467878783611acd565b61149487600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611acd565b6114c187600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611acd565b6114ee87600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611acd565b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156c90612761565b60405180910390fd5b858103600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508460016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508360016000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508260016000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060008311156117e657600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117dd9190611cde565b60405180910390a35b600084111561187757600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161186e9190611cde565b60405180910390a35b600085111561190857600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516118ff9190611cde565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119659190611cde565b60405180910390a361199a88600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611ad2565b6119c788600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611ad2565b6119f488600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687611ad2565b6119ff888884611ad2565b5050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b11578082015181840152602081019050611af6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b3982611ad7565b611b438185611ae2565b9350611b53818560208601611af3565b611b5c81611b1d565b840191505092915050565b60006020820190508181036000830152611b818184611b2e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bb982611b8e565b9050919050565b611bc981611bae565b8114611bd457600080fd5b50565b600081359050611be681611bc0565b92915050565b6000819050919050565b611bff81611bec565b8114611c0a57600080fd5b50565b600081359050611c1c81611bf6565b92915050565b60008060408385031215611c3957611c38611b89565b5b6000611c4785828601611bd7565b9250506020611c5885828601611c0d565b9150509250929050565b60008115159050919050565b611c7781611c62565b82525050565b6000602082019050611c926000830184611c6e565b92915050565b600060ff82169050919050565b611cae81611c98565b82525050565b6000602082019050611cc96000830184611ca5565b92915050565b611cd881611bec565b82525050565b6000602082019050611cf36000830184611ccf565b92915050565b600060208284031215611d0f57611d0e611b89565b5b6000611d1d84828501611bd7565b91505092915050565b600080600060608486031215611d3f57611d3e611b89565b5b6000611d4d86828701611bd7565b9350506020611d5e86828701611bd7565b9250506040611d6f86828701611c0d565b9150509250925092565b611d8281611c98565b8114611d8d57600080fd5b50565b600081359050611d9f81611d79565b92915050565b600060208284031215611dbb57611dba611b89565b5b6000611dc984828501611d90565b91505092915050565b611ddb81611c62565b8114611de657600080fd5b50565b600081359050611df881611dd2565b92915050565b600060208284031215611e1457611e13611b89565b5b6000611e2284828501611de9565b91505092915050565b611e3481611bae565b82525050565b6000602082019050611e4f6000830184611e2b565b92915050565b60008060408385031215611e6c57611e6b611b89565b5b6000611e7a85828601611bd7565b9250506020611e8b85828601611bd7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611edc57607f821691505b602082108103611eef57611eee611e95565b5b50919050565b7f416e7469536e6970653a2061646472657373206973206e6f74206f6e2074686560008201527f2064656e79206c69737400000000000000000000000000000000000000000000602082015250565b6000611f51602a83611ae2565b9150611f5c82611ef5565b604082019050919050565b60006020820190508181036000830152611f8081611f44565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fc182611c98565b9150611fcc83611c98565b9250828201905060ff811115611fe557611fe4611f87565b5b92915050565b7f494249543a20746f74616c207461782063616e6e6f7420657863656564206d6160008201527f7820746178000000000000000000000000000000000000000000000000000000602082015250565b6000612047602583611ae2565b915061205282611feb565b604082019050919050565b600060208201905081810360008301526120768161203a565b9050919050565b600061208882611bec565b915061209383611bec565b92508282019050808211156120ab576120aa611f87565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061210d602583611ae2565b9150612118826120b1565b604082019050919050565b6000602082019050818103600083015261213c81612100565b9050919050565b7f4f776e61626c653a206e6577206f776e65722063616e6e6f742062652074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b600061219f602d83611ae2565b91506121aa82612143565b604082019050919050565b600060208201905081810360008301526121ce81612192565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612231602483611ae2565b915061223c826121d5565b604082019050919050565b6000602082019050818103600083015261226081612224565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006122c3602283611ae2565b91506122ce82612267565b604082019050919050565b600060208201905081810360008301526122f2816122b6565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061232f602083611ae2565b915061233a826122f9565b602082019050919050565b6000602082019050818103600083015261235e81612322565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061239b601d83611ae2565b91506123a682612365565b602082019050919050565b600060208201905081810360008301526123ca8161238e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061242d602583611ae2565b9150612438826123d1565b604082019050919050565b6000602082019050818103600083015261245c81612420565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124bf602383611ae2565b91506124ca82612463565b604082019050919050565b600060208201905081810360008301526124ee816124b2565b9050919050565b7f416e7469536e6970653a2066726f6d2061646472657373206973206f6e20646560008201527f6e796c6973740000000000000000000000000000000000000000000000000000602082015250565b6000612551602683611ae2565b915061255c826124f5565b604082019050919050565b6000602082019050818103600083015261258081612544565b9050919050565b600061259282611bec565b915061259d83611bec565b92508282026125ab81611bec565b915082820484148315176125c2576125c1611f87565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061260382611bec565b915061260e83611bec565b92508261261e5761261d6125c9565b5b828204905092915050565b600061263482611bec565b915061263f83611bec565b925082820390508181111561265757612656611f87565b5b92915050565b7f494249543a206d6178696d756d2077616c6c65742063616e6e6f74206265206560008201527f7863656564656400000000000000000000000000000000000000000000000000602082015250565b60006126b9602783611ae2565b91506126c48261265d565b604082019050919050565b600060208201905081810360008301526126e8816126ac565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061274b602683611ae2565b9150612756826126ef565b604082019050919050565b6000602082019050818103600083015261277a8161273e565b905091905056fea264697066735822122047eb7a286ac8db852d99c024159832d2917b13f5856d0846d35b9006d686da6164736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c80634f2fcbfc116100c3578063a2932c281161007c578063a2932c28146103a3578063a457c2d7146103d3578063a9059cbb14610403578063cfd10a1214610433578063dd62ed3e1461044f578063f2fde38b1461047f57610158565b80634f2fcbfc146102f357806370a082311461030f578063715018a61461033f5780638da5cb5b1461034957806395d89b41146103675780639f9aac7e1461038557610158565b8063313ce56711610115578063313ce567146102335780633386253314610251578063395093511461026d5780633c01439c1461029d57806340a55915146102b95780634a3273bf146102d757610158565b806306fdde031461015d578063095ea7b31461017b5780630c004ab8146101ab57806318160ddd146101c9578063215048cd146101e757806323b872dd14610203575b600080fd5b61016561049b565b6040516101729190611b67565b60405180910390f35b61019560048036038101906101909190611c22565b61052d565b6040516101a29190611c7d565b60405180910390f35b6101b3610550565b6040516101c09190611cb4565b60405180910390f35b6101d1610567565b6040516101de9190611cde565b60405180910390f35b61020160048036038101906101fc9190611cf9565b610571565b005b61021d60048036038101906102189190611d26565b610667565b60405161022a9190611c7d565b60405180910390f35b61023b610696565b6040516102489190611cb4565b60405180910390f35b61026b60048036038101906102669190611da5565b6106ad565b005b61028760048036038101906102829190611c22565b610770565b6040516102949190611c7d565b60405180910390f35b6102b760048036038101906102b29190611da5565b61079b565b005b6102c161085e565b6040516102ce9190611cb4565b60405180910390f35b6102f160048036038101906102ec9190611dfe565b610875565b005b61030d60048036038101906103089190611cf9565b61089a565b005b61032960048036038101906103249190611cf9565b6108e6565b6040516103369190611cde565b60405180910390f35b61034761092f565b005b610351610943565b60405161035e9190611e3a565b60405180910390f35b61036f61096c565b60405161037c9190611b67565b60405180910390f35b61038d6109fe565b60405161039a9190611cb4565b60405180910390f35b6103bd60048036038101906103b89190611cf9565b610a15565b6040516103ca9190611c7d565b60405180910390f35b6103ed60048036038101906103e89190611c22565b610a6b565b6040516103fa9190611c7d565b60405180910390f35b61041d60048036038101906104189190611c22565b610ad5565b60405161042a9190611c7d565b60405180910390f35b61044d60048036038101906104489190611da5565b610aec565b005b61046960048036038101906104649190611e55565b610baf565b6040516104769190611cde565b60405180910390f35b61049960048036038101906104949190611cf9565b610c36565b005b6060600480546104aa90611ec4565b80601f01602080910402602001604051908101604052809291908181526020018280546104d690611ec4565b80156105235780601f106104f857610100808354040283529160200191610523565b820191906000526020600020905b81548152906001019060200180831161050657829003601f168201915b5050505050905090565b600080610538610cb9565b9050610545818585610cc1565b600191505092915050565b6000600b60149054906101000a900460ff16905090565b6000600354905090565b610579610e8a565b60011515601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461060c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060390611f67565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600080610672610cb9565b905061067f858285610f08565b61068a858585610f94565b60019150509392505050565b6000600660009054906101000a900460ff16905090565b6106b5610e8a565b7f000000000000000000000000000000000000000000000000000000000000000560ff1681600b60149054906101000a900460ff16600c60149054906101000a900460ff166107049190611fb6565b61070e9190611fb6565b60ff161115610752576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107499061205d565b60405180910390fd5b80600d60146101000a81548160ff021916908360ff16021790555050565b60006107913384846107823388610baf565b61078c919061207d565b610cc1565b6001905092915050565b6107a3610e8a565b7f000000000000000000000000000000000000000000000000000000000000000560ff1681600d60149054906101000a900460ff16600c60149054906101000a900460ff166107f29190611fb6565b6107fc9190611fb6565b60ff161115610840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108379061205d565b60405180910390fd5b80600b60146101000a81548160ff021916908360ff16021790555050565b6000600c60149054906101000a900460ff16905090565b61087d610e8a565b80600a60146101000a81548160ff02191690831515021790555050565b6108a2610e8a565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610937610e8a565b6109416000611a09565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606005805461097b90611ec4565b80601f01602080910402602001604051908101604052809291908181526020018280546109a790611ec4565b80156109f45780601f106109c9576101008083540402835291602001916109f4565b820191906000526020600020905b8154815290600101906020018083116109d757829003601f168201915b5050505050905090565b6000600d60149054906101000a900460ff16905090565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080610a783385610baf565b905082811015610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab490612123565b60405180910390fd5b610aca3385858403610cc1565b600191505092915050565b6000610ae2338484610f94565b6001905092915050565b610af4610e8a565b7f000000000000000000000000000000000000000000000000000000000000000560ff1681600b60149054906101000a900460ff16600d60149054906101000a900460ff16610b439190611fb6565b610b4d9190611fb6565b60ff161115610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b889061205d565b60405180910390fd5b80600c60146101000a81548160ff021916908360ff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c3e610e8a565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca4906121b5565b60405180910390fd5b610cb681611a09565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2790612247565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d96906122d9565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e7d9190611cde565b60405180910390a3505050565b610e92610cb9565b73ffffffffffffffffffffffffffffffffffffffff16610eb0610943565b73ffffffffffffffffffffffffffffffffffffffff1614610f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efd90612345565b60405180910390fd5b565b6000610f148484610baf565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f8e5781811015610f80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f77906123b1565b60405180910390fd5b610f8d8484848403610cc1565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611003576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffa90612443565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611072576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611069906124d5565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f690612567565b60405180910390fd5b600080600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156111965750611166610943565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b80156111f05750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611458576064600d60149054906101000a900460ff1660ff16866112159190612587565b61121f91906125f8565b93506064600c60149054906101000a900460ff1660ff16866112419190612587565b61124b91906125f8565b92506064600b60149054906101000a900460ff1660ff168661126d9190612587565b61127791906125f8565b9150818385876112879190612629565b6112919190612629565b61129b9190612629565b905060006112a8876108e6565b9050600a60149054906101000a900460ff1680156113145750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b801561136e5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156113e2577f000000000000000000000000000000000000000000000000002c68af0bb1400082826113a0919061207d565b11156113e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d8906126cf565b60405180910390fd5b5b600f546007546113f2919061207d565b431015611452576001601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5061145c565b8490505b611467878783611acd565b61149487600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611acd565b6114c187600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611acd565b6114ee87600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611acd565b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156c90612761565b60405180910390fd5b858103600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508460016000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508360016000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508260016000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060008311156117e657600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516117dd9190611cde565b60405180910390a35b600084111561187757600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161186e9190611cde565b60405180910390a35b600085111561190857600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040516118ff9190611cde565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119659190611cde565b60405180910390a361199a88600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611ad2565b6119c788600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686611ad2565b6119f488600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687611ad2565b6119ff888884611ad2565b5050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b11578082015181840152602081019050611af6565b60008484015250505050565b6000601f19601f8301169050919050565b6000611b3982611ad7565b611b438185611ae2565b9350611b53818560208601611af3565b611b5c81611b1d565b840191505092915050565b60006020820190508181036000830152611b818184611b2e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bb982611b8e565b9050919050565b611bc981611bae565b8114611bd457600080fd5b50565b600081359050611be681611bc0565b92915050565b6000819050919050565b611bff81611bec565b8114611c0a57600080fd5b50565b600081359050611c1c81611bf6565b92915050565b60008060408385031215611c3957611c38611b89565b5b6000611c4785828601611bd7565b9250506020611c5885828601611c0d565b9150509250929050565b60008115159050919050565b611c7781611c62565b82525050565b6000602082019050611c926000830184611c6e565b92915050565b600060ff82169050919050565b611cae81611c98565b82525050565b6000602082019050611cc96000830184611ca5565b92915050565b611cd881611bec565b82525050565b6000602082019050611cf36000830184611ccf565b92915050565b600060208284031215611d0f57611d0e611b89565b5b6000611d1d84828501611bd7565b91505092915050565b600080600060608486031215611d3f57611d3e611b89565b5b6000611d4d86828701611bd7565b9350506020611d5e86828701611bd7565b9250506040611d6f86828701611c0d565b9150509250925092565b611d8281611c98565b8114611d8d57600080fd5b50565b600081359050611d9f81611d79565b92915050565b600060208284031215611dbb57611dba611b89565b5b6000611dc984828501611d90565b91505092915050565b611ddb81611c62565b8114611de657600080fd5b50565b600081359050611df881611dd2565b92915050565b600060208284031215611e1457611e13611b89565b5b6000611e2284828501611de9565b91505092915050565b611e3481611bae565b82525050565b6000602082019050611e4f6000830184611e2b565b92915050565b60008060408385031215611e6c57611e6b611b89565b5b6000611e7a85828601611bd7565b9250506020611e8b85828601611bd7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611edc57607f821691505b602082108103611eef57611eee611e95565b5b50919050565b7f416e7469536e6970653a2061646472657373206973206e6f74206f6e2074686560008201527f2064656e79206c69737400000000000000000000000000000000000000000000602082015250565b6000611f51602a83611ae2565b9150611f5c82611ef5565b604082019050919050565b60006020820190508181036000830152611f8081611f44565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611fc182611c98565b9150611fcc83611c98565b9250828201905060ff811115611fe557611fe4611f87565b5b92915050565b7f494249543a20746f74616c207461782063616e6e6f7420657863656564206d6160008201527f7820746178000000000000000000000000000000000000000000000000000000602082015250565b6000612047602583611ae2565b915061205282611feb565b604082019050919050565b600060208201905081810360008301526120768161203a565b9050919050565b600061208882611bec565b915061209383611bec565b92508282019050808211156120ab576120aa611f87565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061210d602583611ae2565b9150612118826120b1565b604082019050919050565b6000602082019050818103600083015261213c81612100565b9050919050565b7f4f776e61626c653a206e6577206f776e65722063616e6e6f742062652074686560008201527f207a65726f206164647265737300000000000000000000000000000000000000602082015250565b600061219f602d83611ae2565b91506121aa82612143565b604082019050919050565b600060208201905081810360008301526121ce81612192565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612231602483611ae2565b915061223c826121d5565b604082019050919050565b6000602082019050818103600083015261226081612224565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006122c3602283611ae2565b91506122ce82612267565b604082019050919050565b600060208201905081810360008301526122f2816122b6565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061232f602083611ae2565b915061233a826122f9565b602082019050919050565b6000602082019050818103600083015261235e81612322565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061239b601d83611ae2565b91506123a682612365565b602082019050919050565b600060208201905081810360008301526123ca8161238e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061242d602583611ae2565b9150612438826123d1565b604082019050919050565b6000602082019050818103600083015261245c81612420565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006124bf602383611ae2565b91506124ca82612463565b604082019050919050565b600060208201905081810360008301526124ee816124b2565b9050919050565b7f416e7469536e6970653a2066726f6d2061646472657373206973206f6e20646560008201527f6e796c6973740000000000000000000000000000000000000000000000000000602082015250565b6000612551602683611ae2565b915061255c826124f5565b604082019050919050565b6000602082019050818103600083015261258081612544565b9050919050565b600061259282611bec565b915061259d83611bec565b92508282026125ab81611bec565b915082820484148315176125c2576125c1611f87565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061260382611bec565b915061260e83611bec565b92508261261e5761261d6125c9565b5b828204905092915050565b600061263482611bec565b915061263f83611bec565b925082820390508181111561265757612656611f87565b5b92915050565b7f494249543a206d6178696d756d2077616c6c65742063616e6e6f74206265206560008201527f7863656564656400000000000000000000000000000000000000000000000000602082015250565b60006126b9602783611ae2565b91506126c48261265d565b604082019050919050565b600060208201905081810360008301526126e8816126ac565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061274b602683611ae2565b9150612756826126ef565b604082019050919050565b6000602082019050818103600083015261277a8161273e565b905091905056fea264697066735822122047eb7a286ac8db852d99c024159832d2917b13f5856d0846d35b9006d686da6164736f6c63430008110033

Deployed Bytecode Sourcemap

10862:11133:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13167:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14058:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17345:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13489:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18007:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14265:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13383:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17630:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14532:209;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17814:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17167:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18362:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18472:100;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13603:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1471:103;;;:::i;:::-;;1240:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13273:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17257:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18233:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14747:407;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13736:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17447:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13901:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1580:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13167:100;13221:13;13254:5;13247:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13167:100;:::o;14058:201::-;14141:4;14158:13;14174:12;:10;:12::i;:::-;14158:28;;14197:32;14206:5;14213:7;14222:6;14197:8;:32::i;:::-;14247:4;14240:11;;;14058:201;;;;:::o;17345:94::-;17393:5;17418:13;;;;;;;;;;;17411:20;;17345:94;:::o;13489:108::-;13550:7;13577:12;;13570:19;;13489:108;:::o;18007:218::-;1201:13;:11;:13::i;:::-;18120:4:::1;18089:35;;:17;:27;18107:8;18089:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;18081:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;18212:5;18182:17;:27;18200:8;18182:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18007:218:::0;:::o;14265:261::-;14362:4;14379:15;14397:12;:10;:12::i;:::-;14379:30;;14420:38;14436:4;14442:7;14451:6;14420:15;:38::i;:::-;14469:27;14479:4;14485:2;14489:6;14469:9;:27::i;:::-;14514:4;14507:11;;;14265:261;;;;;:::o;13383:100::-;13441:5;13466:9;;;;;;;;;;;13459:16;;13383:100;:::o;17630:176::-;1201:13;:11;:13::i;:::-;17726:7:::1;17695:38;;17718:3;17704:13;;;;;;;;;;;17696:7;;;;;;;;;;;:21;;;;:::i;:::-;:25;;;;:::i;:::-;17695:38;;;;17687:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;17795:3;17786:6;;:12;;;;;;;;;;;;;;;;;;17630:176:::0;:::o;14532:209::-;14620:4;14637:74;14646:10;14658:7;14700:10;14667:30;14677:10;14689:7;14667:9;:30::i;:::-;:43;;;;:::i;:::-;14637:8;:74::i;:::-;14729:4;14722:11;;14532:209;;;;:::o;17814:181::-;1201:13;:11;:13::i;:::-;17908:7:::1;17886:29;;17901:3;17894:6;;;;;;;;;;;17886:7;;;;;;;;;;;:14;;;;:::i;:::-;:18;;;;:::i;:::-;:29;;;;17878:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;17984:3;17968:13;;:19;;;;;;;;;;;;;;;;;;17814:181:::0;:::o;17167:82::-;17209:5;17234:7;;;;;;;;;;;17227:14;;17167:82;:::o;18362:102::-;1201:13;:11;:13::i;:::-;18449:7:::1;18429:17;;:27;;;;;;;;;;;;;;;;;;18362:102:::0;:::o;18472:100::-;1201:13;:11;:13::i;:::-;18562:2:::1;18538:21;;:26;;;;;;;;;;;;;;;;;;18472:100:::0;:::o;13603:127::-;13677:7;13704:9;:18;13714:7;13704:18;;;;;;;;;;;;;;;;13697:25;;13603:127;;;:::o;1471:103::-;1201:13;:11;:13::i;:::-;1536:30:::1;1563:1;1536:18;:30::i;:::-;1471:103::o:0;1240:87::-;1286:7;1313:6;;;;;;;;;;;1306:13;;1240:87;:::o;13273:104::-;13329:13;13362:7;13355:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13273:104;:::o;17257:80::-;17298:5;17323:6;;;;;;;;;;;17316:13;;17257:80;:::o;18233:121::-;18295:4;18319:17;:27;18337:8;18319:27;;;;;;;;;;;;;;;;;;;;;;;;;18312:34;;18233:121;;;:::o;14747:407::-;14840:4;14857:24;14884:30;14894:10;14906:7;14884:9;:30::i;:::-;14857:57;;14953:15;14933:16;:35;;14925:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15046:65;15055:10;15067:7;15095:15;15076:16;:34;15046:8;:65::i;:::-;15142:4;15135:11;;;14747:407;;;;:::o;13736:159::-;13815:4;13832:33;13842:10;13854:2;13858:6;13832:9;:33::i;:::-;13883:4;13876:11;;13736:159;;;;:::o;17447:175::-;1201:13;:11;:13::i;:::-;17541:7:::1;17513:35;;17534:3;17520:13;;;;;;;;;;;17513:6;;;;;;;;;;;:20;;;;:::i;:::-;:24;;;;:::i;:::-;:35;;;;17505:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17611:3;17601:7;;:13;;;;;;;;;;;;;;;;;;17447:175:::0;:::o;13901:151::-;13990:7;14017:11;:18;14029:5;14017:18;;;;;;;;;;;;;;;:27;14036:7;14017:27;;;;;;;;;;;;;;;;14010:34;;13901:151;;;;:::o;1580:208::-;1201:13;:11;:13::i;:::-;1689:1:::1;1669:22;;:8;:22;;::::0;1661:80:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1752:28;1771:8;1752:18;:28::i;:::-;1580:208:::0;:::o;723:98::-;776:7;803:10;796:17;;723:98;:::o;16395:342::-;16512:1;16496:18;;:4;:18;;;16488:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16593:1;16574:21;;:7;:21;;;16566:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16676:6;16647:11;:17;16659:4;16647:17;;;;;;;;;;;;;;;:26;16665:7;16647:26;;;;;;;;;;;;;;;:35;;;;16713:7;16698:31;;16707:4;16698:31;;;16722:6;16698:31;;;;;;:::i;:::-;;;;;;;;16395:342;;;:::o;1333:132::-;1408:12;:10;:12::i;:::-;1397:23;;:7;:5;:7::i;:::-;:23;;;1389:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1333:132::o;16743:416::-;16843:24;16870;16880:4;16886:7;16870:9;:24::i;:::-;16843:51;;16929:17;16909:16;:37;16905:247;;16991:6;16971:16;:26;;16963:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17075:50;17084:4;17090:7;17118:6;17099:16;:25;17075:8;:50::i;:::-;16905:247;16832:327;16743:416;;;:::o;18580:3211::-;18693:1;18677:18;;:4;:18;;;18669:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18770:1;18756:16;;:2;:16;;;18748:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18832:17;:23;18850:4;18832:23;;;;;;;;;;;;;;;;;;;;;;;;;18831:24;18823:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;18911:21;18947:22;18984:28;19027:23;19080:17;;;;;;;;;;;19066:31;;:10;:31;;;;:56;;;;;19115:7;:5;:7::i;:::-;19101:21;;:10;:21;;;;19066:56;:89;;;;;19132:23;;;;;;;;;;;19126:29;;:2;:29;;;;19066:89;19063:1334;;;19247:3;19239:6;;;;;;;;;;;19230:15;;:6;:15;;;;:::i;:::-;19229:21;;;;:::i;:::-;19213:37;;19301:3;19292:7;;;;;;;;;;;19283:16;;:6;:16;;;;:::i;:::-;19282:22;;;;:::i;:::-;19265:39;;19367:3;19352:13;;;;;;;;;;;19343:22;;:6;:22;;;;:::i;:::-;19342:28;;;;:::i;:::-;19319:51;;19495:20;19478:14;19462:13;19453:6;:22;;;;:::i;:::-;:39;;;;:::i;:::-;:62;;;;:::i;:::-;19435:80;;19571:19;19593:13;19603:2;19593:9;:13::i;:::-;19571:35;;19644:17;;;;;;;;;;;:65;;;;;19688:21;;;;;;;;;;;19682:27;;:2;:27;;;;19644:65;:115;;;;;19736:23;;;;;;;;;;;19730:29;;:2;:29;;;;19644:115;19623:297;;;19850:10;19830:15;19816:11;:29;;;;:::i;:::-;19815:45;;19807:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;19623:297;20229:4;;20215:13;;:18;;;;:::i;:::-;20200:12;:33;20197:114;;;20291:4;20267:17;:21;20285:2;20267:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20197:114;19166:1156;19063:1334;;;20379:6;20361:24;;19063:1334;20409:47;20430:4;20436:2;20440:15;20409:20;:47::i;:::-;20467:52;20488:4;20494:9;;;;;;;;;;;20505:13;20467:20;:52::i;:::-;20530:54;20551:4;20557:10;;;;;;;;;;;20569:14;20530:20;:54::i;:::-;20595:66;20616:4;20622:16;;;;;;;;;;;20640:20;20595;:66::i;:::-;20674:19;20696:9;:15;20706:4;20696:15;;;;;;;;;;;;;;;;20674:37;;20745:6;20730:11;:21;;20722:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;20862:6;20848:11;:20;20830:9;:15;20840:4;20830:15;;;;;;;;;;;;;;;:38;;;;20900:15;20883:9;:13;20893:2;20883:13;;;;;;;;;;;;;;;;:32;;;;;;;;;;;20954:13;20930:9;:20;20940:9;;;;;;;;;;;20930:20;;;;;;;;;;;;;;;;:37;;;;;;;;;;;21007:14;20982:9;:21;20992:10;;;;;;;;;;;20982:21;;;;;;;;;;;;;;;;:39;;;;;;;;;;;21067:20;21036:9;:27;21046:16;;;;;;;;;;;21036:27;;;;;;;;;;;;;;;;:51;;;;;;;;;;;21137:1;21114:20;:24;21111:124;;;21184:16;;;;;;;;;;;21169:54;;21178:4;21169:54;;;21202:20;21169:54;;;;;;:::i;:::-;;;;;;;;21111:124;21267:1;21250:14;:18;21247:106;;;21314:10;;;;;;;;;;;21299:42;;21308:4;21299:42;;;21326:14;21299:42;;;;;;:::i;:::-;;;;;;;;21247:106;21384:1;21368:13;:17;21365:103;;;21431:9;;;;;;;;;;;21416:40;;21425:4;21416:40;;;21442:13;21416:40;;;;;;:::i;:::-;;;;;;;;21365:103;21500:2;21485:35;;21494:4;21485:35;;;21504:15;21485:35;;;;;;:::i;:::-;;;;;;;;21533:65;21553:4;21559:16;;;;;;;;;;;21577:20;21533:19;:65::i;:::-;21609:53;21629:4;21635:10;;;;;;;;;;;21647:14;21609:19;:53::i;:::-;21673:51;21693:4;21699:9;;;;;;;;;;;21710:13;21673:19;:51::i;:::-;21735:46;21755:4;21761:2;21765:15;21735:19;:46::i;:::-;18658:3133;;;;;18580:3211;;;:::o;1794:191::-;1868:16;1887:6;;;;;;;;;;;1868:25;;1913:8;1904:6;;:17;;;;;;;;;;;;;;;;;;1968:8;1937:40;;1958:8;1937:40;;;;;;;;;;;;1857:128;1794:191;:::o;21805:91::-;;;;:::o;21902:90::-;;;;:::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:86::-;3481:7;3521:4;3514:5;3510:16;3499:27;;3446:86;;;:::o;3538:112::-;3621:22;3637:5;3621:22;:::i;:::-;3616:3;3609:35;3538:112;;:::o;3656:214::-;3745:4;3783:2;3772:9;3768:18;3760:26;;3796:67;3860:1;3849:9;3845:17;3836:6;3796:67;:::i;:::-;3656:214;;;;:::o;3876:118::-;3963:24;3981:5;3963:24;:::i;:::-;3958:3;3951:37;3876:118;;:::o;4000:222::-;4093:4;4131:2;4120:9;4116:18;4108:26;;4144:71;4212:1;4201:9;4197:17;4188:6;4144:71;:::i;:::-;4000:222;;;;:::o;4228:329::-;4287:6;4336:2;4324:9;4315:7;4311:23;4307:32;4304:119;;;4342:79;;:::i;:::-;4304:119;4462:1;4487:53;4532:7;4523:6;4512:9;4508:22;4487:53;:::i;:::-;4477:63;;4433:117;4228:329;;;;:::o;4563:619::-;4640:6;4648;4656;4705:2;4693:9;4684:7;4680:23;4676:32;4673:119;;;4711:79;;:::i;:::-;4673:119;4831:1;4856:53;4901:7;4892:6;4881:9;4877:22;4856:53;:::i;:::-;4846:63;;4802:117;4958:2;4984:53;5029:7;5020:6;5009:9;5005:22;4984:53;:::i;:::-;4974:63;;4929:118;5086:2;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5057:118;4563:619;;;;;:::o;5188:118::-;5259:22;5275:5;5259:22;:::i;:::-;5252:5;5249:33;5239:61;;5296:1;5293;5286:12;5239:61;5188:118;:::o;5312:135::-;5356:5;5394:6;5381:20;5372:29;;5410:31;5435:5;5410:31;:::i;:::-;5312:135;;;;:::o;5453:325::-;5510:6;5559:2;5547:9;5538:7;5534:23;5530:32;5527:119;;;5565:79;;:::i;:::-;5527:119;5685:1;5710:51;5753:7;5744:6;5733:9;5729:22;5710:51;:::i;:::-;5700:61;;5656:115;5453:325;;;;:::o;5784:116::-;5854:21;5869:5;5854:21;:::i;:::-;5847:5;5844:32;5834:60;;5890:1;5887;5880:12;5834:60;5784:116;:::o;5906:133::-;5949:5;5987:6;5974:20;5965:29;;6003:30;6027:5;6003:30;:::i;:::-;5906:133;;;;:::o;6045:323::-;6101:6;6150:2;6138:9;6129:7;6125:23;6121:32;6118:119;;;6156:79;;:::i;:::-;6118:119;6276:1;6301:50;6343:7;6334:6;6323:9;6319:22;6301:50;:::i;:::-;6291:60;;6247:114;6045:323;;;;:::o;6374:118::-;6461:24;6479:5;6461:24;:::i;:::-;6456:3;6449:37;6374:118;;:::o;6498:222::-;6591:4;6629:2;6618:9;6614:18;6606:26;;6642:71;6710:1;6699:9;6695:17;6686:6;6642:71;:::i;:::-;6498:222;;;;:::o;6726:474::-;6794:6;6802;6851:2;6839:9;6830:7;6826:23;6822:32;6819:119;;;6857:79;;:::i;:::-;6819:119;6977:1;7002:53;7047:7;7038:6;7027:9;7023:22;7002:53;:::i;:::-;6992:63;;6948:117;7104:2;7130:53;7175:7;7166:6;7155:9;7151:22;7130:53;:::i;:::-;7120:63;;7075:118;6726:474;;;;;:::o;7206:180::-;7254:77;7251:1;7244:88;7351:4;7348:1;7341:15;7375:4;7372:1;7365:15;7392:320;7436:6;7473:1;7467:4;7463:12;7453:22;;7520:1;7514:4;7510:12;7541:18;7531:81;;7597:4;7589:6;7585:17;7575:27;;7531:81;7659:2;7651:6;7648:14;7628:18;7625:38;7622:84;;7678:18;;:::i;:::-;7622:84;7443:269;7392:320;;;:::o;7718:229::-;7858:34;7854:1;7846:6;7842:14;7835:58;7927:12;7922:2;7914:6;7910:15;7903:37;7718:229;:::o;7953:366::-;8095:3;8116:67;8180:2;8175:3;8116:67;:::i;:::-;8109:74;;8192:93;8281:3;8192:93;:::i;:::-;8310:2;8305:3;8301:12;8294:19;;7953:366;;;:::o;8325:419::-;8491:4;8529:2;8518:9;8514:18;8506:26;;8578:9;8572:4;8568:20;8564:1;8553:9;8549:17;8542:47;8606:131;8732:4;8606:131;:::i;:::-;8598:139;;8325:419;;;:::o;8750:180::-;8798:77;8795:1;8788:88;8895:4;8892:1;8885:15;8919:4;8916:1;8909:15;8936:188;8974:3;8993:18;9009:1;8993:18;:::i;:::-;8988:23;;9025:18;9041:1;9025:18;:::i;:::-;9020:23;;9066:1;9063;9059:9;9052:16;;9089:4;9084:3;9081:13;9078:39;;;9097:18;;:::i;:::-;9078:39;8936:188;;;;:::o;9130:224::-;9270:34;9266:1;9258:6;9254:14;9247:58;9339:7;9334:2;9326:6;9322:15;9315:32;9130:224;:::o;9360:366::-;9502:3;9523:67;9587:2;9582:3;9523:67;:::i;:::-;9516:74;;9599:93;9688:3;9599:93;:::i;:::-;9717:2;9712:3;9708:12;9701:19;;9360:366;;;:::o;9732:419::-;9898:4;9936:2;9925:9;9921:18;9913:26;;9985:9;9979:4;9975:20;9971:1;9960:9;9956:17;9949:47;10013:131;10139:4;10013:131;:::i;:::-;10005:139;;9732:419;;;:::o;10157:191::-;10197:3;10216:20;10234:1;10216:20;:::i;:::-;10211:25;;10250:20;10268:1;10250:20;:::i;:::-;10245:25;;10293:1;10290;10286:9;10279:16;;10314:3;10311:1;10308:10;10305:36;;;10321:18;;:::i;:::-;10305:36;10157:191;;;;:::o;10354:224::-;10494:34;10490:1;10482:6;10478:14;10471:58;10563:7;10558:2;10550:6;10546:15;10539:32;10354:224;:::o;10584:366::-;10726:3;10747:67;10811:2;10806:3;10747:67;:::i;:::-;10740:74;;10823:93;10912:3;10823:93;:::i;:::-;10941:2;10936:3;10932:12;10925:19;;10584:366;;;:::o;10956:419::-;11122:4;11160:2;11149:9;11145:18;11137:26;;11209:9;11203:4;11199:20;11195:1;11184:9;11180:17;11173:47;11237:131;11363:4;11237:131;:::i;:::-;11229:139;;10956:419;;;:::o;11381:232::-;11521:34;11517:1;11509:6;11505:14;11498:58;11590:15;11585:2;11577:6;11573:15;11566:40;11381:232;:::o;11619:366::-;11761:3;11782:67;11846:2;11841:3;11782:67;:::i;:::-;11775:74;;11858:93;11947:3;11858:93;:::i;:::-;11976:2;11971:3;11967:12;11960:19;;11619:366;;;:::o;11991:419::-;12157:4;12195:2;12184:9;12180:18;12172:26;;12244:9;12238:4;12234:20;12230:1;12219:9;12215:17;12208:47;12272:131;12398:4;12272:131;:::i;:::-;12264:139;;11991:419;;;:::o;12416:223::-;12556:34;12552:1;12544:6;12540:14;12533:58;12625:6;12620:2;12612:6;12608:15;12601:31;12416:223;:::o;12645:366::-;12787:3;12808:67;12872:2;12867:3;12808:67;:::i;:::-;12801:74;;12884:93;12973:3;12884:93;:::i;:::-;13002:2;12997:3;12993:12;12986:19;;12645:366;;;:::o;13017:419::-;13183:4;13221:2;13210:9;13206:18;13198:26;;13270:9;13264:4;13260:20;13256:1;13245:9;13241:17;13234:47;13298:131;13424:4;13298:131;:::i;:::-;13290:139;;13017:419;;;:::o;13442:221::-;13582:34;13578:1;13570:6;13566:14;13559:58;13651:4;13646:2;13638:6;13634:15;13627:29;13442:221;:::o;13669:366::-;13811:3;13832:67;13896:2;13891:3;13832:67;:::i;:::-;13825:74;;13908:93;13997:3;13908:93;:::i;:::-;14026:2;14021:3;14017:12;14010:19;;13669:366;;;:::o;14041:419::-;14207:4;14245:2;14234:9;14230:18;14222:26;;14294:9;14288:4;14284:20;14280:1;14269:9;14265:17;14258:47;14322:131;14448:4;14322:131;:::i;:::-;14314:139;;14041:419;;;:::o;14466:182::-;14606:34;14602:1;14594:6;14590:14;14583:58;14466:182;:::o;14654:366::-;14796:3;14817:67;14881:2;14876:3;14817:67;:::i;:::-;14810:74;;14893:93;14982:3;14893:93;:::i;:::-;15011:2;15006:3;15002:12;14995:19;;14654:366;;;:::o;15026:419::-;15192:4;15230:2;15219:9;15215:18;15207:26;;15279:9;15273:4;15269:20;15265:1;15254:9;15250:17;15243:47;15307:131;15433:4;15307:131;:::i;:::-;15299:139;;15026:419;;;:::o;15451:179::-;15591:31;15587:1;15579:6;15575:14;15568:55;15451:179;:::o;15636:366::-;15778:3;15799:67;15863:2;15858:3;15799:67;:::i;:::-;15792:74;;15875:93;15964:3;15875:93;:::i;:::-;15993:2;15988:3;15984:12;15977:19;;15636:366;;;:::o;16008:419::-;16174:4;16212:2;16201:9;16197:18;16189:26;;16261:9;16255:4;16251:20;16247:1;16236:9;16232:17;16225:47;16289:131;16415:4;16289:131;:::i;:::-;16281:139;;16008:419;;;:::o;16433:224::-;16573:34;16569:1;16561:6;16557:14;16550:58;16642:7;16637:2;16629:6;16625:15;16618:32;16433:224;:::o;16663:366::-;16805:3;16826:67;16890:2;16885:3;16826:67;:::i;:::-;16819:74;;16902:93;16991:3;16902:93;:::i;:::-;17020:2;17015:3;17011:12;17004:19;;16663:366;;;:::o;17035:419::-;17201:4;17239:2;17228:9;17224:18;17216:26;;17288:9;17282:4;17278:20;17274:1;17263:9;17259:17;17252:47;17316:131;17442:4;17316:131;:::i;:::-;17308:139;;17035:419;;;:::o;17460:222::-;17600:34;17596:1;17588:6;17584:14;17577:58;17669:5;17664:2;17656:6;17652:15;17645:30;17460:222;:::o;17688:366::-;17830:3;17851:67;17915:2;17910:3;17851:67;:::i;:::-;17844:74;;17927:93;18016:3;17927:93;:::i;:::-;18045:2;18040:3;18036:12;18029:19;;17688:366;;;:::o;18060:419::-;18226:4;18264:2;18253:9;18249:18;18241:26;;18313:9;18307:4;18303:20;18299:1;18288:9;18284:17;18277:47;18341:131;18467:4;18341:131;:::i;:::-;18333:139;;18060:419;;;:::o;18485:225::-;18625:34;18621:1;18613:6;18609:14;18602:58;18694:8;18689:2;18681:6;18677:15;18670:33;18485:225;:::o;18716:366::-;18858:3;18879:67;18943:2;18938:3;18879:67;:::i;:::-;18872:74;;18955:93;19044:3;18955:93;:::i;:::-;19073:2;19068:3;19064:12;19057:19;;18716:366;;;:::o;19088:419::-;19254:4;19292:2;19281:9;19277:18;19269:26;;19341:9;19335:4;19331:20;19327:1;19316:9;19312:17;19305:47;19369:131;19495:4;19369:131;:::i;:::-;19361:139;;19088:419;;;:::o;19513:410::-;19553:7;19576:20;19594:1;19576:20;:::i;:::-;19571:25;;19610:20;19628:1;19610:20;:::i;:::-;19605:25;;19665:1;19662;19658:9;19687:30;19705:11;19687:30;:::i;:::-;19676:41;;19866:1;19857:7;19853:15;19850:1;19847:22;19827:1;19820:9;19800:83;19777:139;;19896:18;;:::i;:::-;19777:139;19561:362;19513:410;;;;:::o;19929:180::-;19977:77;19974:1;19967:88;20074:4;20071:1;20064:15;20098:4;20095:1;20088:15;20115:185;20155:1;20172:20;20190:1;20172:20;:::i;:::-;20167:25;;20206:20;20224:1;20206:20;:::i;:::-;20201:25;;20245:1;20235:35;;20250:18;;:::i;:::-;20235:35;20292:1;20289;20285:9;20280:14;;20115:185;;;;:::o;20306:194::-;20346:4;20366:20;20384:1;20366:20;:::i;:::-;20361:25;;20400:20;20418:1;20400:20;:::i;:::-;20395:25;;20444:1;20441;20437:9;20429:17;;20468:1;20462:4;20459:11;20456:37;;;20473:18;;:::i;:::-;20456:37;20306:194;;;;:::o;20506:226::-;20646:34;20642:1;20634:6;20630:14;20623:58;20715:9;20710:2;20702:6;20698:15;20691:34;20506:226;:::o;20738:366::-;20880:3;20901:67;20965:2;20960:3;20901:67;:::i;:::-;20894:74;;20977:93;21066:3;20977:93;:::i;:::-;21095:2;21090:3;21086:12;21079:19;;20738:366;;;:::o;21110:419::-;21276:4;21314:2;21303:9;21299:18;21291:26;;21363:9;21357:4;21353:20;21349:1;21338:9;21334:17;21327:47;21391:131;21517:4;21391:131;:::i;:::-;21383:139;;21110:419;;;:::o;21535:225::-;21675:34;21671:1;21663:6;21659:14;21652:58;21744:8;21739:2;21731:6;21727:15;21720:33;21535:225;:::o;21766:366::-;21908:3;21929:67;21993:2;21988:3;21929:67;:::i;:::-;21922:74;;22005:93;22094:3;22005:93;:::i;:::-;22123:2;22118:3;22114:12;22107:19;;21766:366;;;:::o;22138:419::-;22304:4;22342:2;22331:9;22327:18;22319:26;;22391:9;22385:4;22381:20;22377:1;22366:9;22362:17;22355:47;22419:131;22545:4;22419:131;:::i;:::-;22411:139;;22138:419;;;:::o

Swarm Source

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