ETH Price: $3,522.04 (+0.71%)
Gas: 2 Gwei

Token

STILTON MUSK (STILTON)
 

Overview

Max Total Supply

6,060,999,595,602 STILTON

Holders

1,113 (0.00%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

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

OVERVIEW

Stilton Musk is an ERC20 cryptocurrency memecoin. Created in tribute to the cheese 'Stilton' with an array of utility including staking and gaming.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
STILTON_MUSK

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-09
*/

/*
Web: https://www.stiltonmusk.com
Telegram: https://t.me/stiltonmusk
*/





// File: contracts/Withdrawable.sol

abstract contract Withdrawable {
    address internal _withdrawAddress;

    constructor(address withdrawAddress) {
        _withdrawAddress = withdrawAddress;
    }

    modifier onlyWithdrawer() {
        require(msg.sender == _withdrawAddress);
        _;
    }

    function withdraw() external onlyWithdrawer {
        _withdraw();
    }

    function _withdraw() internal {
        payable(_withdrawAddress).transfer(address(this).balance);
    }

    function setWithdrawAddress(address newWithdrawAddress)
        external
        onlyWithdrawer
    {
        _withdrawAddress = newWithdrawAddress;
    }
}

// File: hardhat/console.sol


pragma solidity >= 0.4.22 <0.9.0;

library console {
	address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);

	function _sendLogPayload(bytes memory payload) private view {
		uint256 payloadLength = payload.length;
		address consoleAddress = CONSOLE_ADDRESS;
		assembly {
			let payloadStart := add(payload, 32)
			let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)
		}
	}

	function log() internal view {
		_sendLogPayload(abi.encodeWithSignature("log()"));
	}

	function logInt(int p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(int)", p0));
	}

	function logUint(uint p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
	}

	function logString(string memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
	}

	function logBool(bool p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
	}

	function logAddress(address p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
	}

	function logBytes(bytes memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes)", p0));
	}

	function logBytes1(bytes1 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0));
	}

	function logBytes2(bytes2 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0));
	}

	function logBytes3(bytes3 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0));
	}

	function logBytes4(bytes4 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0));
	}

	function logBytes5(bytes5 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0));
	}

	function logBytes6(bytes6 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0));
	}

	function logBytes7(bytes7 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0));
	}

	function logBytes8(bytes8 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0));
	}

	function logBytes9(bytes9 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0));
	}

	function logBytes10(bytes10 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0));
	}

	function logBytes11(bytes11 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0));
	}

	function logBytes12(bytes12 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0));
	}

	function logBytes13(bytes13 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0));
	}

	function logBytes14(bytes14 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0));
	}

	function logBytes15(bytes15 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0));
	}

	function logBytes16(bytes16 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0));
	}

	function logBytes17(bytes17 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0));
	}

	function logBytes18(bytes18 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0));
	}

	function logBytes19(bytes19 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0));
	}

	function logBytes20(bytes20 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0));
	}

	function logBytes21(bytes21 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0));
	}

	function logBytes22(bytes22 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0));
	}

	function logBytes23(bytes23 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0));
	}

	function logBytes24(bytes24 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0));
	}

	function logBytes25(bytes25 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0));
	}

	function logBytes26(bytes26 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0));
	}

	function logBytes27(bytes27 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0));
	}

	function logBytes28(bytes28 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0));
	}

	function logBytes29(bytes29 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0));
	}

	function logBytes30(bytes30 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0));
	}

	function logBytes31(bytes31 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0));
	}

	function logBytes32(bytes32 p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0));
	}

	function log(uint p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint)", p0));
	}

	function log(string memory p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
	}

	function log(bool p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
	}

	function log(address p0) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
	}

	function log(uint p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1));
	}

	function log(uint p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1));
	}

	function log(uint p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1));
	}

	function log(uint p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1));
	}

	function log(string memory p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1));
	}

	function log(string memory p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1));
	}

	function log(string memory p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1));
	}

	function log(string memory p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1));
	}

	function log(bool p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1));
	}

	function log(bool p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1));
	}

	function log(bool p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1));
	}

	function log(bool p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1));
	}

	function log(address p0, uint p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1));
	}

	function log(address p0, string memory p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1));
	}

	function log(address p0, bool p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1));
	}

	function log(address p0, address p1) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1));
	}

	function log(uint p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2));
	}

	function log(uint p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2));
	}

	function log(uint p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2));
	}

	function log(uint p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2));
	}

	function log(uint p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2));
	}

	function log(uint p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2));
	}

	function log(uint p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2));
	}

	function log(uint p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2));
	}

	function log(uint p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2));
	}

	function log(uint p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2));
	}

	function log(uint p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2));
	}

	function log(uint p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2));
	}

	function log(uint p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2));
	}

	function log(string memory p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2));
	}

	function log(string memory p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2));
	}

	function log(string memory p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2));
	}

	function log(string memory p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2));
	}

	function log(string memory p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2));
	}

	function log(string memory p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2));
	}

	function log(string memory p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2));
	}

	function log(bool p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2));
	}

	function log(bool p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2));
	}

	function log(bool p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2));
	}

	function log(bool p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2));
	}

	function log(bool p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2));
	}

	function log(bool p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2));
	}

	function log(bool p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2));
	}

	function log(bool p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2));
	}

	function log(bool p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2));
	}

	function log(bool p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2));
	}

	function log(bool p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2));
	}

	function log(bool p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2));
	}

	function log(bool p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2));
	}

	function log(address p0, uint p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2));
	}

	function log(address p0, uint p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2));
	}

	function log(address p0, uint p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2));
	}

	function log(address p0, uint p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2));
	}

	function log(address p0, string memory p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2));
	}

	function log(address p0, string memory p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2));
	}

	function log(address p0, string memory p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2));
	}

	function log(address p0, string memory p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2));
	}

	function log(address p0, bool p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2));
	}

	function log(address p0, bool p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2));
	}

	function log(address p0, bool p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2));
	}

	function log(address p0, bool p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2));
	}

	function log(address p0, address p1, uint p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2));
	}

	function log(address p0, address p1, string memory p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2));
	}

	function log(address p0, address p1, bool p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2));
	}

	function log(address p0, address p1, address p2) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2));
	}

	function log(uint p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3));
	}

	function log(uint p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3));
	}

	function log(string memory p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3));
	}

	function log(bool p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, uint p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, string memory p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, bool p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, uint p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, string memory p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, bool p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, uint p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, string memory p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, bool p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3));
	}

	function log(address p0, address p1, address p2, address p3) internal view {
		_sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3));
	}

}

// File: contracts/Ownable.sol

pragma solidity ^0.8.7;

abstract contract Ownable {
    address _owner;

    modifier onlyOwner() {
        require(msg.sender == _owner);
        _;
    }

    constructor() {
        _owner = msg.sender;
    }

    function transferOwnership(address newOwner) external onlyOwner {
        _owner = newOwner;
    }
}

// File: contracts/IUniswapV2Factory.sol

pragma solidity ^0.8.7;

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

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);
}

// File: contracts/IUniswapV2Router02.sol

pragma solidity ^0.8.7;

interface IUniswapV2Router02 {
    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

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

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

// File: contracts/DoubleSwapped.sol

pragma solidity ^0.8.7;



contract DoubleSwapped {
    bool internal _inSwap;

    modifier lockTheSwap() {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    function _swapTokensForEth(
        uint256 tokenAmount,
        IUniswapV2Router02 _uniswapV2Router
    ) internal lockTheSwap {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        // make the swap
        console.log("doubleSwap ", tokenAmount);
        _uniswapV2Router.swapExactTokensForETH(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
    }

    function _swapTokensForEthOnTransfer(
        uint256 transferAmount,
        uint256 swapCount,
        IUniswapV2Router02 _uniswapV2Router
    ) internal {
        if (swapCount == 0) return;
        uint256 maxSwapCount = 2 * transferAmount;
        if (swapCount > maxSwapCount) swapCount = maxSwapCount;
        _swapTokensForEth(swapCount, _uniswapV2Router);
    }
}

// File: contracts/IERC20.sol

pragma solidity ^0.8.7;

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

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

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

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

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

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

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
// File: contracts/ERC20.sol

pragma solidity ^0.8.7;


abstract contract ERC20 is IERC20 {
    uint256 internal _totalSupply = 1e13;
    string _name;
    string _symbol;
    uint8 constant _decimals = 0;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal constant INFINITY_ALLOWANCE = 2**256 - 1;

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

    function name() external view returns (string memory) {
        return _name;
    }

    function symbol() external view returns (string memory) {
        return _symbol;
    }

    function decimals() external pure returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount);
        unchecked {
            _balances[from] = senderBalance - amount;
        }
        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

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

    function approve(address spender, uint256 amount)
        external
        override
        returns (bool)
    {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount);
        if (currentAllowance == INFINITY_ALLOWANCE) return true;
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0));

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount);
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

// File: contracts/MaxWalletDynamic.sol

pragma solidity ^0.8.7;


abstract contract MaxWalletDynamic {
    uint256 startMaxWallet;
    uint256 startTime; // last increment time
    uint256 constant startMaxBuyPercentil = 5; // maximum buy on start 1000=100%
    uint256 constant maxBuyIncrementMinutesTimer = 2; // increment maxbuy minutes
    uint256 constant maxBuyIncrementPercentil = 3; // increment maxbyu percentil 1000=100%
    uint256 constant maxIncrements = 1000; // maximum time incrementations
    uint256 maxBuyIncrementValue; // value for increment maxBuy

    function startMaxWalletDynamic(uint256 totalSupply) internal {
        startTime = block.timestamp;
        startMaxWallet = (totalSupply * startMaxBuyPercentil) / 1000;
        maxBuyIncrementValue = (totalSupply * maxBuyIncrementPercentil) / 1000;
    }

    function checkMaxWallet(uint256 walletSize) internal view {
        require(walletSize <= getMaxWallet(), "max wallet limit");
    }

    function getMaxWallet() public view returns (uint256) {
        uint256 incrementCount = (block.timestamp - startTime) /
            (maxBuyIncrementMinutesTimer * 1 minutes);
        if (incrementCount >= maxIncrements) incrementCount = maxIncrements;
        return startMaxWallet + maxBuyIncrementValue * incrementCount;
    }

    function _setStartMaxWallet(uint256 startMaxWallet_) internal {
        startMaxWallet = startMaxWallet_;
    }
}

// File: contracts/TradableErc20.sol

pragma solidity ^0.8.7;







abstract contract TradableErc20 is
    ERC20,
    DoubleSwapped,
    Ownable,
    MaxWalletDynamic
{
    IUniswapV2Router02 internal constant _uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapPair;
    bool tradingEnable = true;
    mapping(address => bool) _isExcludedFromFee;
    address public constant ADDR_BURN =
        0x000000000000000000000000000000000000dEaD;

    constructor(string memory name_, string memory symbol_)
        ERC20(name_, symbol_)
    {
        _isExcludedFromFee[address(0)] = true;
        _isExcludedFromFee[ADDR_BURN] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[msg.sender] = true;
    }

    receive() external payable {}

    function createLiquidity() public onlyOwner {
        require(uniswapPair == address(0));
        address pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );
        uint256 initialLiquidity = getSupplyForMakeLiquidity();
        _balances[address(this)] = initialLiquidity;
        emit Transfer(address(0), address(this), initialLiquidity);
        _allowances[address(this)][
            address(_uniswapV2Router)
        ] = INFINITY_ALLOWANCE;
        _isExcludedFromFee[pair] = true;
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            initialLiquidity,
            0,
            0,
            msg.sender,
            block.timestamp
        );

        uniswapPair = pair;
        startMaxWalletDynamic(initialLiquidity);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(_balances[from] >= amount, "not enough token for transfer");
        require(to != address(0), "incorrect address");

        // buy
        if (from == uniswapPair && !_isExcludedFromFee[to]) {
            require(tradingEnable, "trading disabled");
            // get taxes
            amount = _getFeeBuy(from, to, amount);
            // check max wallet
            checkMaxWallet(_balances[to] + amount);
        }
        // sell
        else if (
            !_inSwap &&
            uniswapPair != address(0) &&
            to == uniswapPair &&
            !_isExcludedFromFee[from]
        ) {
            require(tradingEnable, "trading disabled");
            // fee
            amount = _getFeeSell(from, amount);
            // swap tokens
            _swapTokensForEthOnTransfer(
                amount,
                _balances[address(this)],
                _uniswapV2Router
            );
        }
        // transfer from wallet to wallet
        else {
            if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                // get taxes
                amount = _getFeeTransfer(from, amount);
                // check max wallet
                checkMaxWallet(_balances[to] + amount);
            }
        }

        // transfer
        super._transfer(from, to, amount);
        if (to == address(ADDR_BURN)) _totalSupply -= amount;
    }

    function getFeeBuy(address account, uint256 amount)
        private
        pure
        returns (uint256)
    {
        return amount / 10; // 10%
    }

    function getFeeSell(address account, uint256 amount)
        private
        returns (uint256)
    {
        return amount / 10; // 10%
    }

    function getFeeTransfer(address account, uint256 amount)
        private
        returns (uint256)
    {
        return amount / 10; // 10%
    }

    function _getFeeBuy(
        address pair,
        address to,
        uint256 amount
    ) private returns (uint256) {
        return _arrangeFee(pair, amount, getFeeBuy(to, amount));
    }

    function _getFeeSell(address from, uint256 amount)
        private
        returns (uint256)
    {
        return _arrangeFee(from, amount, getFeeSell(from, amount));
    }

    function _getFeeTransfer(address from, uint256 amount)
        private
        returns (uint256)
    {
        return _arrangeFee(from, amount, getFeeTransfer(from, amount));
    }

    function _arrangeFee(
        address from,
        uint256 amount,
        uint256 fee
    ) private returns (uint256) {
        uint256 reward = fee / 2;
        uint256 burn = fee - reward;
        amount -= fee;
        _balances[from] -= fee;
        _balances[address(this)] += reward;
        _balances[ADDR_BURN] += burn;
        _totalSupply -= burn;
        emit Transfer(from, address(this), reward);
        emit Transfer(from, ADDR_BURN, burn);
        return amount;
    }

    function setExcludeFromFee(address[] memory accounts, bool value)
        external
        onlyOwner
    {
        for (uint256 i = 0; i < accounts.length; ++i) {
            _isExcludedFromFee[accounts[i]] = value;
        }
    }

    function setEnableTrading(bool value) external onlyOwner {
        tradingEnable = value;
    }

    function getEnableTrading() external view returns (bool) {
        return tradingEnable;
    }

    function getSupplyForMakeLiquidity() internal virtual returns (uint256);
}

// File: contracts/STILTON_MUSK.sol

pragma solidity ^0.8.7;



contract STILTON_MUSK is TradableErc20, Withdrawable {
    constructor()
        TradableErc20("STILTON MUSK", "STILTON")
        Withdrawable(0xd9f309bd83E00164CBDf4B7BCD0755a237fD6970)
    {}

    function getSupplyForMakeLiquidity()
        internal
        view
        override
        returns (uint256)
    {
        return _totalSupply;
    }

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

    function setMaxWalletOnStart(uint256 startMaxWallet) external onlyOwner {
        _setStartMaxWallet(startMaxWallet);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"ADDR_BURN","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getEnableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"startMaxWallet","type":"uint256"}],"name":"setMaxWalletOnStart","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWithdrawAddress","type":"address"}],"name":"setWithdrawAddress","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":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526509184e72a0006000556009805460ff60a01b1916600160a01b1790553480156200002e57600080fd5b50604080518082018252600c81526b5354494c544f4e204d55534b60a01b60208083019182528351808501909452600784526629aa24a62a27a760c91b90840152815173d9f309bd83e00164cbdf4b7bcd0755a237fd69709391839183916200009b91600191906200017a565b508051620000b19060029060208401906200017a565b505060058054610100600160a81b03191633610100810291909117909155600a6020527f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e3805460ff1990811660019081179092557f20677881080440a9b3c87e826370bb5d9c2f74efd4dede686d52d77a6a09f8bb8054821683179055306000908152604080822080548416851790559381529290922080549092161790555050600b80546001600160a01b0319166001600160a01b039390931692909217909155506200025d565b828054620001889062000220565b90600052602060002090601f016020900481019282620001ac5760008555620001f7565b82601f10620001c757805160ff1916838001178555620001f7565b82800160010185558215620001f7579182015b82811115620001f7578251825591602001919060010190620001da565b506200020592915062000209565b5090565b5b808211156200020557600081556001016200020a565b600181811c908216806200023557607f821691505b602082108114156200025757634e487b7160e01b600052602260045260246000fd5b50919050565b611761806200026d6000396000f3fe6080604052600436106101235760003560e01c80636c90b57f116100a0578063c7af2a9c11610064578063c7af2a9c1461032e578063c816841b14610343578063cf991d0514610363578063dd62ed3e14610382578063f2fde38b146103c857600080fd5b80636c90b57f1461028357806370a08231146102a357806395d89b41146102d9578063a9059cbb146102ee578063b92ebd5f1461030e57600080fd5b806323b872dd116100e757806323b872dd146101e45780632ccb932114610204578063313ce567146102325780633ab1a4941461024e5780633ccfd60b1461026e57600080fd5b8063019ce79b1461012f57806306fdde0314610151578063095ea7b31461017c5780630fa604e4146101ac57806318160ddd146101cf57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5061014f61014a3660046114b4565b6103e8565b005b34801561015d57600080fd5b50610166610410565b6040516101739190611548565b60405180910390f35b34801561018857600080fd5b5061019c61019736600461138f565b6104a2565b6040519015158152602001610173565b3480156101b857600080fd5b506101c16104b8565b604051908152602001610173565b3480156101db57600080fd5b506000546101c1565b3480156101f057600080fd5b5061019c6101ff36600461134e565b61050f565b34801561021057600080fd5b5061021a61dead81565b6040516001600160a01b039091168152602001610173565b34801561023e57600080fd5b5060405160008152602001610173565b34801561025a57600080fd5b5061014f6102693660046112db565b61057b565b34801561027a57600080fd5b5061014f6105b4565b34801561028f57600080fd5b5061014f61029e3660046113bb565b6105d5565b3480156102af57600080fd5b506101c16102be3660046112db565b6001600160a01b031660009081526003602052604090205490565b3480156102e557600080fd5b5061016661065b565b3480156102fa57600080fd5b5061019c61030936600461138f565b61066a565b34801561031a57600080fd5b5061014f610329366004611499565b610677565b34801561033a57600080fd5b5061014f6106b1565b34801561034f57600080fd5b5060095461021a906001600160a01b031681565b34801561036f57600080fd5b50600954600160a01b900460ff1661019c565b34801561038e57600080fd5b506101c161039d366004611315565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103d457600080fd5b5061014f6103e33660046112db565b6109d9565b60055461010090046001600160a01b0316331461040457600080fd5b61040d81600655565b50565b60606001805461041f9061165e565b80601f016020809104026020016040519081016040528092919081815260200182805461044b9061165e565b80156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b5050505050905090565b60006104af338484610a1d565b50600192915050565b6000806104c76002603c611628565b6007546104d49042611647565b6104de9190611606565b90506103e881106104ee57506103e85b806008546104fc9190611628565b60065461050991906115ee565b91505090565b600061051c848484610a7e565b6001600160a01b03841660009081526004602090815260408083203384529091529020548281101561054d57600080fd5b600019811415610561576001915050610574565b61056e8533858403610a1d565b60019150505b9392505050565b600b546001600160a01b0316331461059257600080fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b031633146105cb57600080fd5b6105d3610d9a565b565b60055461010090046001600160a01b031633146105f157600080fd5b60005b82518110156106565781600a6000858481518110610614576106146116ca565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561064f81611699565b90506105f4565b505050565b60606002805461041f9061165e565b60006104af338484610a7e565b60055461010090046001600160a01b0316331461069357600080fd5b60098054911515600160a01b0260ff60a01b19909216919091179055565b60055461010090046001600160a01b031633146106cd57600080fd5b6009546001600160a01b0316156106e357600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561073257600080fd5b505afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906112f8565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe91906112f8565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561084657600080fd5b505af115801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e91906112f8565b9050600061088b60005490565b3060008181526003602052604080822084905551929350909160008051602061170c833981519152906108c19085815260200190565b60405180910390a3306000818152600460208181526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d80865290835281852060001990556001600160a01b0388168552600a909252808420805460ff191660011790555163f305d71960e01b815291820193909352602481018490526044810182905260648101919091523360848201524260a482015263f305d71990479060c4016060604051808303818588803b15801561097557600080fd5b505af1158015610989573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109ae91906114cd565b5050600980546001600160a01b0319166001600160a01b038516179055506109d581610dd3565b5050565b60055461010090046001600160a01b031633146109f557600080fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316600090815260036020526040902054811115610aeb5760405162461bcd60e51b815260206004820152601d60248201527f6e6f7420656e6f75676820746f6b656e20666f72207472616e7366657200000060448201526064015b60405180910390fd5b6001600160a01b038216610b355760405162461bcd60e51b8152602060048201526011602482015270696e636f7272656374206164647265737360781b6044820152606401610ae2565b6009546001600160a01b038481169116148015610b6b57506001600160a01b0382166000908152600a602052604090205460ff16155b15610bfc57600954600160a01b900460ff16610bbc5760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610ae2565b610bc7838383610e10565b6001600160a01b038316600090815260036020526040902054909150610bf790610bf29083906115ee565b610e2e565b610d61565b60055460ff16158015610c1957506009546001600160a01b031615155b8015610c3257506009546001600160a01b038381169116145b8015610c5757506001600160a01b0383166000908152600a602052604090205460ff16155b15610ce557600954600160a01b900460ff16610ca85760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610ae2565b610cb28382610e78565b30600090815260036020526040902054909150610bf7908290737a250d5630b4cf539739df2c5dacb4c659f2488d610e89565b6001600160a01b0383166000908152600a602052604090205460ff16158015610d2757506001600160a01b0382166000908152600a602052604090205460ff16155b15610d6157610d368382610e78565b6001600160a01b038316600090815260036020526040902054909150610d6190610bf29083906115ee565b610d6c838383610ebe565b6001600160a01b03821661dead14156106565780600080828254610d909190611647565b9091555050505050565b600b546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561040d573d6000803e3d6000fd5b426007556103e8610de5600583611628565b610def9190611606565b6006556103e8610e00600383611628565b610e0a9190611606565b60085550565b6000610e268483610e218686610f63565b610f70565b949350505050565b610e366104b8565b81111561040d5760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b6044820152606401610ae2565b60006105748383610e218686610f63565b81610e9357505050565b6000610ea0846002611628565b905080831115610eae578092505b610eb883836110b1565b50505050565b6001600160a01b03831660009081526003602052604090205481811015610ee457600080fd5b6001600160a01b03808516600090815260036020526040808220858503905591851681529081208054849290610f1b9084906115ee565b92505081905550826001600160a01b0316846001600160a01b031660008051602061170c83398151915284604051610f5591815260200190565b60405180910390a350505050565b6000610574600a83611606565b600080610f7e600284611606565b90506000610f8c8285611647565b9050610f988486611647565b6001600160a01b038716600090815260036020526040812080549297508692909190610fc5908490611647565b90915550503060009081526003602052604081208054849290610fe99084906115ee565b909155505061dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c805483929061102c9084906115ee565b92505081905550806000808282546110449190611647565b909155505060405182815230906001600160a01b0388169060008051602061170c8339815191529060200160405180910390a360405181815261dead906001600160a01b0388169060008051602061170c8339815191529060200160405180910390a35092949350505050565b6005805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110f3576110f36116ca565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561114c57600080fd5b505afa158015611160573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118491906112f8565b81600181518110611197576111976116ca565b60200260200101906001600160a01b031690816001600160a01b0316815250506111e46040518060400160405280600b81526020016a03237bab13632a9bbb0b8160ad1b8152508461125a565b6040516318cbafe560e01b81526001600160a01b038316906318cbafe59061121990869060009086903090429060040161157d565b600060405180830381600087803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b50506005805460ff191690555050505050565b6109d5828260405160240161127092919061155b565b60408051601f198184030181529190526020810180516001600160e01b03166309710a9d60e41b17905280516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b80356112c6816116f6565b919050565b803580151581146112c657600080fd5b6000602082840312156112ed57600080fd5b8135610574816116f6565b60006020828403121561130a57600080fd5b8151610574816116f6565b6000806040838503121561132857600080fd5b8235611333816116f6565b91506020830135611343816116f6565b809150509250929050565b60008060006060848603121561136357600080fd5b833561136e816116f6565b9250602084013561137e816116f6565b929592945050506040919091013590565b600080604083850312156113a257600080fd5b82356113ad816116f6565b946020939093013593505050565b600080604083850312156113ce57600080fd5b823567ffffffffffffffff808211156113e657600080fd5b818501915085601f8301126113fa57600080fd5b813560208282111561140e5761140e6116e0565b8160051b604051601f19603f83011681018181108682111715611433576114336116e0565b604052838152828101945085830182870184018b101561145257600080fd5b600096505b8487101561147c57611468816112bb565b865260019690960195948301948301611457565b50965061148c90508782016112cb565b9450505050509250929050565b6000602082840312156114ab57600080fd5b610574826112cb565b6000602082840312156114c657600080fd5b5035919050565b6000806000606084860312156114e257600080fd5b8351925060208401519150604084015190509250925092565b6000815180845260005b8181101561152157602081850181015186830182015201611505565b81811115611533576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061057460208301846114fb565b60408152600061156e60408301856114fb565b90508260208301529392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115cd5784516001600160a01b0316835293830193918301916001016115a8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611601576116016116b4565b500190565b60008261162357634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611642576116426116b4565b500290565b600082821015611659576116596116b4565b500390565b600181811c9082168061167257607f821691505b6020821081141561169357634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156116ad576116ad6116b4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040d57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206f1f1190dcc6f1bceccd8ee1f81ac56e9153ce7ee96926a47a0c02f6df26d0af64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80636c90b57f116100a0578063c7af2a9c11610064578063c7af2a9c1461032e578063c816841b14610343578063cf991d0514610363578063dd62ed3e14610382578063f2fde38b146103c857600080fd5b80636c90b57f1461028357806370a08231146102a357806395d89b41146102d9578063a9059cbb146102ee578063b92ebd5f1461030e57600080fd5b806323b872dd116100e757806323b872dd146101e45780632ccb932114610204578063313ce567146102325780633ab1a4941461024e5780633ccfd60b1461026e57600080fd5b8063019ce79b1461012f57806306fdde0314610151578063095ea7b31461017c5780630fa604e4146101ac57806318160ddd146101cf57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5061014f61014a3660046114b4565b6103e8565b005b34801561015d57600080fd5b50610166610410565b6040516101739190611548565b60405180910390f35b34801561018857600080fd5b5061019c61019736600461138f565b6104a2565b6040519015158152602001610173565b3480156101b857600080fd5b506101c16104b8565b604051908152602001610173565b3480156101db57600080fd5b506000546101c1565b3480156101f057600080fd5b5061019c6101ff36600461134e565b61050f565b34801561021057600080fd5b5061021a61dead81565b6040516001600160a01b039091168152602001610173565b34801561023e57600080fd5b5060405160008152602001610173565b34801561025a57600080fd5b5061014f6102693660046112db565b61057b565b34801561027a57600080fd5b5061014f6105b4565b34801561028f57600080fd5b5061014f61029e3660046113bb565b6105d5565b3480156102af57600080fd5b506101c16102be3660046112db565b6001600160a01b031660009081526003602052604090205490565b3480156102e557600080fd5b5061016661065b565b3480156102fa57600080fd5b5061019c61030936600461138f565b61066a565b34801561031a57600080fd5b5061014f610329366004611499565b610677565b34801561033a57600080fd5b5061014f6106b1565b34801561034f57600080fd5b5060095461021a906001600160a01b031681565b34801561036f57600080fd5b50600954600160a01b900460ff1661019c565b34801561038e57600080fd5b506101c161039d366004611315565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b3480156103d457600080fd5b5061014f6103e33660046112db565b6109d9565b60055461010090046001600160a01b0316331461040457600080fd5b61040d81600655565b50565b60606001805461041f9061165e565b80601f016020809104026020016040519081016040528092919081815260200182805461044b9061165e565b80156104985780601f1061046d57610100808354040283529160200191610498565b820191906000526020600020905b81548152906001019060200180831161047b57829003601f168201915b5050505050905090565b60006104af338484610a1d565b50600192915050565b6000806104c76002603c611628565b6007546104d49042611647565b6104de9190611606565b90506103e881106104ee57506103e85b806008546104fc9190611628565b60065461050991906115ee565b91505090565b600061051c848484610a7e565b6001600160a01b03841660009081526004602090815260408083203384529091529020548281101561054d57600080fd5b600019811415610561576001915050610574565b61056e8533858403610a1d565b60019150505b9392505050565b600b546001600160a01b0316331461059257600080fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b031633146105cb57600080fd5b6105d3610d9a565b565b60055461010090046001600160a01b031633146105f157600080fd5b60005b82518110156106565781600a6000858481518110610614576106146116ca565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905561064f81611699565b90506105f4565b505050565b60606002805461041f9061165e565b60006104af338484610a7e565b60055461010090046001600160a01b0316331461069357600080fd5b60098054911515600160a01b0260ff60a01b19909216919091179055565b60055461010090046001600160a01b031633146106cd57600080fd5b6009546001600160a01b0316156106e357600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561073257600080fd5b505afa158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a91906112f8565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107c657600080fd5b505afa1580156107da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107fe91906112f8565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561084657600080fd5b505af115801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e91906112f8565b9050600061088b60005490565b3060008181526003602052604080822084905551929350909160008051602061170c833981519152906108c19085815260200190565b60405180910390a3306000818152600460208181526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d80865290835281852060001990556001600160a01b0388168552600a909252808420805460ff191660011790555163f305d71960e01b815291820193909352602481018490526044810182905260648101919091523360848201524260a482015263f305d71990479060c4016060604051808303818588803b15801561097557600080fd5b505af1158015610989573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109ae91906114cd565b5050600980546001600160a01b0319166001600160a01b038516179055506109d581610dd3565b5050565b60055461010090046001600160a01b031633146109f557600080fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316600090815260036020526040902054811115610aeb5760405162461bcd60e51b815260206004820152601d60248201527f6e6f7420656e6f75676820746f6b656e20666f72207472616e7366657200000060448201526064015b60405180910390fd5b6001600160a01b038216610b355760405162461bcd60e51b8152602060048201526011602482015270696e636f7272656374206164647265737360781b6044820152606401610ae2565b6009546001600160a01b038481169116148015610b6b57506001600160a01b0382166000908152600a602052604090205460ff16155b15610bfc57600954600160a01b900460ff16610bbc5760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610ae2565b610bc7838383610e10565b6001600160a01b038316600090815260036020526040902054909150610bf790610bf29083906115ee565b610e2e565b610d61565b60055460ff16158015610c1957506009546001600160a01b031615155b8015610c3257506009546001600160a01b038381169116145b8015610c5757506001600160a01b0383166000908152600a602052604090205460ff16155b15610ce557600954600160a01b900460ff16610ca85760405162461bcd60e51b815260206004820152601060248201526f1d1c98591a5b99c8191a5cd8589b195960821b6044820152606401610ae2565b610cb28382610e78565b30600090815260036020526040902054909150610bf7908290737a250d5630b4cf539739df2c5dacb4c659f2488d610e89565b6001600160a01b0383166000908152600a602052604090205460ff16158015610d2757506001600160a01b0382166000908152600a602052604090205460ff16155b15610d6157610d368382610e78565b6001600160a01b038316600090815260036020526040902054909150610d6190610bf29083906115ee565b610d6c838383610ebe565b6001600160a01b03821661dead14156106565780600080828254610d909190611647565b9091555050505050565b600b546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561040d573d6000803e3d6000fd5b426007556103e8610de5600583611628565b610def9190611606565b6006556103e8610e00600383611628565b610e0a9190611606565b60085550565b6000610e268483610e218686610f63565b610f70565b949350505050565b610e366104b8565b81111561040d5760405162461bcd60e51b815260206004820152601060248201526f1b585e081dd85b1b195d081b1a5b5a5d60821b6044820152606401610ae2565b60006105748383610e218686610f63565b81610e9357505050565b6000610ea0846002611628565b905080831115610eae578092505b610eb883836110b1565b50505050565b6001600160a01b03831660009081526003602052604090205481811015610ee457600080fd5b6001600160a01b03808516600090815260036020526040808220858503905591851681529081208054849290610f1b9084906115ee565b92505081905550826001600160a01b0316846001600160a01b031660008051602061170c83398151915284604051610f5591815260200190565b60405180910390a350505050565b6000610574600a83611606565b600080610f7e600284611606565b90506000610f8c8285611647565b9050610f988486611647565b6001600160a01b038716600090815260036020526040812080549297508692909190610fc5908490611647565b90915550503060009081526003602052604081208054849290610fe99084906115ee565b909155505061dead600090815260036020527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c805483929061102c9084906115ee565b92505081905550806000808282546110449190611647565b909155505060405182815230906001600160a01b0388169060008051602061170c8339815191529060200160405180910390a360405181815261dead906001600160a01b0388169060008051602061170c8339815191529060200160405180910390a35092949350505050565b6005805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110f3576110f36116ca565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561114c57600080fd5b505afa158015611160573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118491906112f8565b81600181518110611197576111976116ca565b60200260200101906001600160a01b031690816001600160a01b0316815250506111e46040518060400160405280600b81526020016a03237bab13632a9bbb0b8160ad1b8152508461125a565b6040516318cbafe560e01b81526001600160a01b038316906318cbafe59061121990869060009086903090429060040161157d565b600060405180830381600087803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b50506005805460ff191690555050505050565b6109d5828260405160240161127092919061155b565b60408051601f198184030181529190526020810180516001600160e01b03166309710a9d60e41b17905280516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b80356112c6816116f6565b919050565b803580151581146112c657600080fd5b6000602082840312156112ed57600080fd5b8135610574816116f6565b60006020828403121561130a57600080fd5b8151610574816116f6565b6000806040838503121561132857600080fd5b8235611333816116f6565b91506020830135611343816116f6565b809150509250929050565b60008060006060848603121561136357600080fd5b833561136e816116f6565b9250602084013561137e816116f6565b929592945050506040919091013590565b600080604083850312156113a257600080fd5b82356113ad816116f6565b946020939093013593505050565b600080604083850312156113ce57600080fd5b823567ffffffffffffffff808211156113e657600080fd5b818501915085601f8301126113fa57600080fd5b813560208282111561140e5761140e6116e0565b8160051b604051601f19603f83011681018181108682111715611433576114336116e0565b604052838152828101945085830182870184018b101561145257600080fd5b600096505b8487101561147c57611468816112bb565b865260019690960195948301948301611457565b50965061148c90508782016112cb565b9450505050509250929050565b6000602082840312156114ab57600080fd5b610574826112cb565b6000602082840312156114c657600080fd5b5035919050565b6000806000606084860312156114e257600080fd5b8351925060208401519150604084015190509250925092565b6000815180845260005b8181101561152157602081850181015186830182015201611505565b81811115611533576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061057460208301846114fb565b60408152600061156e60408301856114fb565b90508260208301529392505050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156115cd5784516001600160a01b0316835293830193918301916001016115a8565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611601576116016116b4565b500190565b60008261162357634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611642576116426116b4565b500290565b600082821015611659576116596116b4565b500390565b600181811c9082168061167257607f821691505b6020821081141561169357634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156116ad576116ad6116b4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461040d57600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206f1f1190dcc6f1bceccd8ee1f81ac56e9153ce7ee96926a47a0c02f6df26d0af64736f6c63430008070033

Deployed Bytecode Sourcemap

78536:668:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;79076:125;;;;;;;;;;-1:-1:-1;79076:125:0;;;;;:::i;:::-;;:::i;:::-;;68941:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;70212:193;;;;;;;;;;-1:-1:-1;70212:193:0;;;;;:::i;:::-;;:::i;:::-;;;5659:14:1;;5652:22;5634:41;;5622:2;5607:18;70212:193:0;5494:187:1;72552:334:0;;;;;;;;;;;;;:::i;:::-;;;7747:25:1;;;7735:2;7720:18;72552:334:0;7601:177:1;69224:102:0;;;;;;;;;;-1:-1:-1;69279:7:0;69306:12;69224:102;;70641:504;;;;;;;;;;-1:-1:-1;70641:504:0;;;;;:::i;:::-;;:::i;73453:87::-;;;;;;;;;;;;73498:42;73453:87;;;;;-1:-1:-1;;;;;4529:32:1;;;4511:51;;4499:2;4484:18;73453:87:0;4365:203:1;69131:85:0;;;;;;;;;;-1:-1:-1;69131:85:0;;69174:5;8910:36:1;;8898:2;8883:18;69131:85:0;8768:184:1;605:159:0;;;;;;;;;;-1:-1:-1;605:159:0;;;;;:::i;:::-;;:::i;409:74::-;;;;;;;;;;;;;:::i;77932:238::-;;;;;;;;;;-1:-1:-1;77932:238:0;;;;;:::i;:::-;;:::i;78906:162::-;;;;;;;;;;-1:-1:-1;78906:162:0;;;;;:::i;:::-;-1:-1:-1;;;;;79042:18:0;79010:7;79042:18;;;:9;:18;;;;;;;78906:162;69034:89;;;;;;;;;;;;;:::i;69427:199::-;;;;;;;;;;-1:-1:-1;69427:199:0;;;;;:::i;:::-;;:::i;78178:97::-;;;;;;;;;;-1:-1:-1;78178:97:0;;;;;:::i;:::-;;:::i;73888:906::-;;;;;;;;;;;;;:::i;73338:26::-;;;;;;;;;;-1:-1:-1;73338:26:0;;;;-1:-1:-1;;;;;73338:26:0;;;78283:96;;;;;;;;;;-1:-1:-1;78358:13:0;;-1:-1:-1;;;78358:13:0;;;;78283:96;;70018:186;;;;;;;;;;-1:-1:-1;70018:186:0;;;;;:::i;:::-;-1:-1:-1;;;;;70169:18:0;;;70137:7;70169:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;70018:186;64620:100;;;;;;;;;;-1:-1:-1;64620:100:0;;;;;:::i;:::-;;:::i;79076:125::-;64525:6;;;;;-1:-1:-1;;;;;64525:6:0;64511:10;:20;64503:29;;;;;;79159:34:::1;79178:14;72967::::0;:32;72894:113;79159:34:::1;79076:125:::0;:::o;68941:85::-;68980:13;69013:5;69006:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68941:85;:::o;70212:193::-;70316:4;70338:37;70347:10;70359:7;70368:6;70338:8;:37::i;:::-;-1:-1:-1;70393:4:0;70212:193;;;;:::o;72552:334::-;72597:7;;72688:39;71872:1;72718:9;72688:39;:::i;:::-;72661:9;;72643:27;;:15;:27;:::i;:::-;72642:86;;;;:::i;:::-;72617:111;;72033:4;72743:14;:31;72739:67;;-1:-1:-1;72033:4:0;72739:67;72864:14;72841:20;;:37;;;;:::i;:::-;72824:14;;:54;;;;:::i;:::-;72817:61;;;72552:334;:::o;70641:504::-;70775:4;70792:36;70802:6;70810:9;70821:6;70792:9;:36::i;:::-;-1:-1:-1;;;;;70868:19:0;;70841:24;70868:19;;;:11;:19;;;;;;;;70888:10;70868:31;;;;;;;;70918:26;;;;70910:35;;;;;;-1:-1:-1;;70960:16:0;:38;70956:55;;;71007:4;71000:11;;;;;70956:55;71047;71056:6;71064:10;71095:6;71076:16;:25;71047:8;:55::i;:::-;71133:4;71126:11;;;70641:504;;;;;;:::o;605:159::-;364:16;;-1:-1:-1;;;;;364:16:0;350:10;:30;342:39;;;;;;719:16:::1;:37:::0;;-1:-1:-1;;;;;;719:37:0::1;-1:-1:-1::0;;;;;719:37:0;;;::::1;::::0;;;::::1;::::0;;605:159::o;409:74::-;364:16;;-1:-1:-1;;;;;364:16:0;350:10;:30;342:39;;;;;;464:11:::1;:9;:11::i;:::-;409:74::o:0;77932:238::-;64525:6;;;;;-1:-1:-1;;;;;64525:6:0;64511:10;:20;64503:29;;;;;;78056:9:::1;78051:112;78075:8;:15;78071:1;:19;78051:112;;;78146:5;78112:18;:31;78131:8;78140:1;78131:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;78112:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;78112:31:0;:39;;-1:-1:-1;;78112:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;78092:3:::1;::::0;::::1;:::i;:::-;;;78051:112;;;;77932:238:::0;;:::o;69034:89::-;69075:13;69108:7;69101:14;;;;;:::i;69427:199::-;69534:4;69556:40;69566:10;69578:9;69589:6;69556:9;:40::i;78178:97::-;64525:6;;;;;-1:-1:-1;;;;;64525:6:0;64511:10;:20;64503:29;;;;;;78246:13:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;78246:21:0::1;-1:-1:-1::0;;;;78246:21:0;;::::1;::::0;;;::::1;::::0;;78178:97::o;73888:906::-;64525:6;;;;;-1:-1:-1;;;;;64525:6:0;64511:10;:20;64503:29;;;;;;73951:11:::1;::::0;-1:-1:-1;;;;;73951:11:0::1;:25:::0;73943:34:::1;;;::::0;::::1;;73988:12;73288:42;-1:-1:-1::0;;;;;74021:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;74003:56:0::1;;74082:4;73288:42;-1:-1:-1::0;;;;;74102:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;74003:133;::::0;-1:-1:-1;;;;;;74003:133:0::1;::::0;;;;;;-1:-1:-1;;;;;4803:15:1;;;74003:133:0::1;::::0;::::1;4785:34:1::0;4855:15;;4835:18;;;4828:43;4720:18;;74003:133:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;73988:148;;74147:24;74174:27;69279:7:::0;69306:12;;69224:102;74174:27:::1;74230:4;74212:24;::::0;;;:9:::1;:24;::::0;;;;;:43;;;74271:53;74147:54;;-1:-1:-1;74230:4:0;;-1:-1:-1;;;;;;;;;;;74271:53:0;::::1;::::0;74147:54;7747:25:1;;7735:2;7720:18;;7601:177;74271:53:0::1;;;;;;;;74355:4;74335:26;::::0;;;:11:::1;:26;::::0;;;;;;;73288:42:::1;74335:77:::0;;;;;;;;;-1:-1:-1;;74335:98:0;;-1:-1:-1;;;;;74444:24:0;::::1;::::0;;:18:::1;:24:::0;;;;;;:31;;-1:-1:-1;;74444:31:0::1;74471:4;74444:31;::::0;;74486:219;-1:-1:-1;;;74486:219:0;;;;::::1;5223:34:1::0;;;;5273:18;;;5266:34;;;5316:18;;;5309:34;;;5359:18;;;5352:34;;;;74654:10:0::1;5402:19:1::0;;;5395:44;74679:15:0::1;5455:19:1::0;;;5448:35;74486:32:0::1;::::0;74526:21:::1;::::0;5157:19:1;;74486:219:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;74718:11:0::1;:18:::0;;-1:-1:-1;;;;;;74718:18:0::1;-1:-1:-1::0;;;;;74718:18:0;::::1;;::::0;;-1:-1:-1;74747:39:0::1;74769:16:::0;74747:21:::1;:39::i;:::-;73932:862;;73888:906::o:0;64620:100::-;64525:6;;;;;-1:-1:-1;;;;;64525:6:0;64511:10;:20;64503:29;;;;;;64695:6:::1;:17:::0;;-1:-1:-1;;;;;64695:17:0;;::::1;;;-1:-1:-1::0;;;;;;64695:17:0;;::::1;::::0;;;::::1;::::0;;64620:100::o;70413:220::-;-1:-1:-1;;;;;70541:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;70593:32;;7747:25:1;;;70593:32:0;;7720:18:1;70593:32:0;;;;;;;70413:220;;;:::o;74802:1552::-;-1:-1:-1;;;;;74934:15:0;;;;;;:9;:15;;;;;;:25;-1:-1:-1;74934:25:0;74926:67;;;;-1:-1:-1;;;74926:67:0;;6409:2:1;74926:67:0;;;6391:21:1;6448:2;6428:18;;;6421:30;6487:31;6467:18;;;6460:59;6536:18;;74926:67:0;;;;;;;;;-1:-1:-1;;;;;75012:16:0;;75004:46;;;;-1:-1:-1;;;75004:46:0;;7112:2:1;75004:46:0;;;7094:21:1;7151:2;7131:18;;;7124:30;-1:-1:-1;;;7170:18:1;;;7163:47;7227:18;;75004:46:0;6910:341:1;75004:46:0;75091:11;;-1:-1:-1;;;;;75083:19:0;;;75091:11;;75083:19;:46;;;;-1:-1:-1;;;;;;75107:22:0;;;;;;:18;:22;;;;;;;;75106:23;75083:46;75079:1138;;;75154:13;;-1:-1:-1;;;75154:13:0;;;;75146:42;;;;-1:-1:-1;;;75146:42:0;;6767:2:1;75146:42:0;;;6749:21:1;6806:2;6786:18;;;6779:30;-1:-1:-1;;;6825:18:1;;;6818:46;6881:18;;75146:42:0;6565:340:1;75146:42:0;75238:28;75249:4;75255:2;75259:6;75238:10;:28::i;:::-;-1:-1:-1;;;;;75329:13:0;;;;;;:9;:13;;;;;;75229:37;;-1:-1:-1;75314:38:0;;75329:22;;75229:37;;75329:22;:::i;:::-;75314:14;:38::i;:::-;75079:1138;;;75415:7;;;;75414:8;:50;;;;-1:-1:-1;75439:11:0;;-1:-1:-1;;;;;75439:11:0;:25;;75414:50;:84;;;;-1:-1:-1;75487:11:0;;-1:-1:-1;;;;;75481:17:0;;;75487:11;;75481:17;75414:84;:126;;;;-1:-1:-1;;;;;;75516:24:0;;;;;;:18;:24;;;;;;;;75515:25;75414:126;75396:821;;;75575:13;;-1:-1:-1;;;75575:13:0;;;;75567:42;;;;-1:-1:-1;;;75567:42:0;;6767:2:1;75567:42:0;;;6749:21:1;6806:2;6786:18;;;6779:30;-1:-1:-1;;;6825:18:1;;;6818:46;6881:18;;75567:42:0;6565:340:1;75567:42:0;75653:25;75665:4;75671:6;75653:11;:25::i;:::-;75810:4;75792:24;;;;:9;:24;;;;;;75644:34;;-1:-1:-1;75721:145:0;;75644:34;;73288:42;75721:27;:145::i;75396:821::-;-1:-1:-1;;;;;75956:24:0;;;;;;:18;:24;;;;;;;;75955:25;:52;;;;-1:-1:-1;;;;;;75985:22:0;;;;;;:18;:22;;;;;;;;75984:23;75955:52;75951:255;;;76067:29;76083:4;76089:6;76067:15;:29::i;:::-;-1:-1:-1;;;;;76167:13:0;;;;;;:9;:13;;;;;;76058:38;;-1:-1:-1;76152:38:0;;76167:22;;76058:38;;76167:22;:::i;76152:38::-;76250:33;76266:4;76272:2;76276:6;76250:15;:33::i;:::-;-1:-1:-1;;;;;76298:24:0;;73498:42;76298:24;76294:52;;;76340:6;76324:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;74802:1552:0;;;:::o;491:106::-;540:16;;532:57;;-1:-1:-1;;;;;540:16:0;;;;567:21;532:57;;;;;540:16;532:57;540:16;532:57;567:21;540:16;532:57;;;;;;;;;;;;;;;;;;;72143:259;72227:15;72215:9;:27;72309:4;72271:34;71783:1;72271:11;:34;:::i;:::-;72270:43;;;;:::i;:::-;72253:14;:60;72390:4;72348:38;71952:1;72348:11;:38;:::i;:::-;72347:47;;;;:::i;:::-;72324:20;:70;-1:-1:-1;72143:259:0:o;76841:196::-;76954:7;76981:48;76993:4;76999:6;77007:21;77017:2;77021:6;77007:9;:21::i;:::-;76981:11;:48::i;:::-;76974:55;76841:196;-1:-1:-1;;;;76841:196:0:o;72410:134::-;72501:14;:12;:14::i;:::-;72487:10;:28;;72479:57;;;;-1:-1:-1;;;72479:57:0;;7458:2:1;72479:57:0;;;7440:21:1;7497:2;7477:18;;;7470:30;-1:-1:-1;;;7516:18:1;;;7509:46;7572:18;;72479:57:0;7256:340:1;77045:177:0;77131:7;77163:51;77175:4;77181:6;77189:24;77200:4;77206:6;77189:10;:24::i;67157:379::-;67332:14;67328:27;;67157:379;;;:::o;67328:27::-;67365:20;67388:18;67392:14;67388:1;:18;:::i;:::-;67365:41;;67433:12;67421:9;:24;67417:54;;;67459:12;67447:24;;67417:54;67482:46;67500:9;67511:16;67482:17;:46::i;:::-;67317:219;67157:379;;;:::o;69634:376::-;-1:-1:-1;;;;;69781:15:0;;69757:21;69781:15;;;:9;:15;;;;;;69815:23;;;;69807:32;;;;;;-1:-1:-1;;;;;69875:15:0;;;;;;;:9;:15;;;;;;69893:22;;;69875:40;;69937:13;;;;;;;;:23;;69909:6;;69875:15;69937:23;;69909:6;;69937:23;:::i;:::-;;;;;;;;69991:2;-1:-1:-1;;;;;69976:26:0;69985:4;-1:-1:-1;;;;;69976:26:0;-1:-1:-1;;;;;;;;;;;69995:6:0;69976:26;;;;7747:25:1;;7735:2;7720:18;;7601:177;69976:26:0;;;;;;;;69746:264;69634:376;;;:::o;76362:159::-;76463:7;76495:11;76504:2;76495:6;:11;:::i;77423:501::-;77538:7;;77575;77581:1;77575:3;:7;:::i;:::-;77558:24;-1:-1:-1;77593:12:0;77608;77558:24;77608:3;:12;:::i;:::-;77593:27;-1:-1:-1;77631:13:0;77641:3;77631:13;;:::i;:::-;-1:-1:-1;;;;;77655:15:0;;;;;;:9;:15;;;;;:22;;77631:13;;-1:-1:-1;77674:3:0;;77655:15;;;:22;;77674:3;;77655:22;:::i;:::-;;;;-1:-1:-1;;77706:4:0;77688:24;;;;:9;:24;;;;;:34;;77716:6;;77688:24;:34;;77716:6;;77688:34;:::i;:::-;;;;-1:-1:-1;;73498:42:0;77733:20;;;;:9;:20;;;:28;;77757:4;;77733:20;:28;;77757:4;;77733:28;:::i;:::-;;;;;;;;77788:4;77772:12;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;77808:37:0;;7747:25:1;;;77831:4:0;;-1:-1:-1;;;;;77808:37:0;;;-1:-1:-1;;;;;;;;;;;77808:37:0;7735:2:1;7720:18;77808:37:0;;;;;;;77861:31;;7747:25:1;;;73498:42:0;;-1:-1:-1;;;;;77861:31:0;;;-1:-1:-1;;;;;;;;;;;77861:31:0;7735:2:1;7720:18;77861:31:0;;;;;;;-1:-1:-1;77910:6:0;;77423:501;-1:-1:-1;;;;77423:501:0:o;66520:629::-;66452:7;:14;;-1:-1:-1;;66452:14:0;66462:4;66452:14;;;66746:16:::1;::::0;;66760:1:::1;66746:16:::0;;;;;::::1;::::0;;-1:-1:-1;;66746:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;66746:16:0::1;66722:40;;66791:4;66773;66778:1;66773:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;66773:23:0::1;;;-1:-1:-1::0;;;;;66773:23:0::1;;;::::0;::::1;66817:16;-1:-1:-1::0;;;;;66817:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;66807:4;66812:1;66807:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1::0;;;;;66807:33:0::1;;;-1:-1:-1::0;;;;;66807:33:0::1;;;::::0;::::1;66879:39;;;;;;;;;;;;;;-1:-1:-1::0;;;66879:39:0::1;;::::0;66906:11:::1;66879;:39::i;:::-;66929:212;::::0;-1:-1:-1;;;66929:212:0;;-1:-1:-1;;;;;66929:38:0;::::1;::::0;::::1;::::0;:212:::1;::::0;66982:11;;67008:1:::1;::::0;67052:4;;67079::::1;::::0;67115:15:::1;::::0;66929:212:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;66489:7:0;:15;;-1:-1:-1;;66489:15:0;;;-1:-1:-1;;;;;66520:629:0:o;6863:132::-;6922:68;6982:2;6986;6938:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6938:51:0;;;;;;;;;;;;;;-1:-1:-1;;;;;6938:51:0;-1:-1:-1;;;6938:51:0;;;1043:14;;905:42;1155:2;1142:16;;1019:21;;1043:14;1142:16;905:42;1183:5;1172:68;1163:77;;1116:129;;954:295;:::o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:160::-;218:20;;274:13;;267:21;257:32;;247:60;;303:1;300;293:12;318:247;377:6;430:2;418:9;409:7;405:23;401:32;398:52;;;446:1;443;436:12;398:52;485:9;472:23;504:31;529:5;504:31;:::i;570:251::-;640:6;693:2;681:9;672:7;668:23;664:32;661:52;;;709:1;706;699:12;661:52;741:9;735:16;760:31;785:5;760:31;:::i;826:388::-;894:6;902;955:2;943:9;934:7;930:23;926:32;923:52;;;971:1;968;961:12;923:52;1010:9;997:23;1029:31;1054:5;1029:31;:::i;:::-;1079:5;-1:-1:-1;1136:2:1;1121:18;;1108:32;1149:33;1108:32;1149:33;:::i;:::-;1201:7;1191:17;;;826:388;;;;;:::o;1219:456::-;1296:6;1304;1312;1365:2;1353:9;1344:7;1340:23;1336:32;1333:52;;;1381:1;1378;1371:12;1333:52;1420:9;1407:23;1439:31;1464:5;1439:31;:::i;:::-;1489:5;-1:-1:-1;1546:2:1;1531:18;;1518:32;1559:33;1518:32;1559:33;:::i;:::-;1219:456;;1611:7;;-1:-1:-1;;;1665:2:1;1650:18;;;;1637:32;;1219:456::o;1680:315::-;1748:6;1756;1809:2;1797:9;1788:7;1784:23;1780:32;1777:52;;;1825:1;1822;1815:12;1777:52;1864:9;1851:23;1883:31;1908:5;1883:31;:::i;:::-;1933:5;1985:2;1970:18;;;;1957:32;;-1:-1:-1;;;1680:315:1:o;2000:1202::-;2090:6;2098;2151:2;2139:9;2130:7;2126:23;2122:32;2119:52;;;2167:1;2164;2157:12;2119:52;2207:9;2194:23;2236:18;2277:2;2269:6;2266:14;2263:34;;;2293:1;2290;2283:12;2263:34;2331:6;2320:9;2316:22;2306:32;;2376:7;2369:4;2365:2;2361:13;2357:27;2347:55;;2398:1;2395;2388:12;2347:55;2434:2;2421:16;2456:4;2479:2;2475;2472:10;2469:36;;;2485:18;;:::i;:::-;2531:2;2528:1;2524:10;2563:2;2557:9;2626:2;2622:7;2617:2;2613;2609:11;2605:25;2597:6;2593:38;2681:6;2669:10;2666:22;2661:2;2649:10;2646:18;2643:46;2640:72;;;2692:18;;:::i;:::-;2728:2;2721:22;2778:18;;;2812:15;;;;-1:-1:-1;2847:11:1;;;2877;;;2873:20;;2870:33;-1:-1:-1;2867:53:1;;;2916:1;2913;2906:12;2867:53;2938:1;2929:10;;2948:169;2962:2;2959:1;2956:9;2948:169;;;3019:23;3038:3;3019:23;:::i;:::-;3007:36;;2980:1;2973:9;;;;;3063:12;;;;3095;;2948:169;;;-1:-1:-1;3136:6:1;-1:-1:-1;3161:35:1;;-1:-1:-1;3177:18:1;;;3161:35;:::i;:::-;3151:45;;;;;;2000:1202;;;;;:::o;3207:180::-;3263:6;3316:2;3304:9;3295:7;3291:23;3287:32;3284:52;;;3332:1;3329;3322:12;3284:52;3355:26;3371:9;3355:26;:::i;3392:180::-;3451:6;3504:2;3492:9;3483:7;3479:23;3475:32;3472:52;;;3520:1;3517;3510:12;3472:52;-1:-1:-1;3543:23:1;;3392:180;-1:-1:-1;3392:180:1:o;3577:306::-;3665:6;3673;3681;3734:2;3722:9;3713:7;3709:23;3705:32;3702:52;;;3750:1;3747;3740:12;3702:52;3779:9;3773:16;3763:26;;3829:2;3818:9;3814:18;3808:25;3798:35;;3873:2;3862:9;3858:18;3852:25;3842:35;;3577:306;;;;;:::o;3888:472::-;3930:3;3968:5;3962:12;3995:6;3990:3;3983:19;4020:1;4030:162;4044:6;4041:1;4038:13;4030:162;;;4106:4;4162:13;;;4158:22;;4152:29;4134:11;;;4130:20;;4123:59;4059:12;4030:162;;;4210:6;4207:1;4204:13;4201:87;;;4276:1;4269:4;4260:6;4255:3;4251:16;4247:27;4240:38;4201:87;-1:-1:-1;4342:2:1;4321:15;-1:-1:-1;;4317:29:1;4308:39;;;;4349:4;4304:50;;3888:472;-1:-1:-1;;3888:472:1:o;5686:220::-;5835:2;5824:9;5817:21;5798:4;5855:45;5896:2;5885:9;5881:18;5873:6;5855:45;:::i;5911:291::-;6088:2;6077:9;6070:21;6051:4;6108:45;6149:2;6138:9;6134:18;6126:6;6108:45;:::i;:::-;6100:53;;6189:6;6184:2;6173:9;6169:18;6162:34;5911:291;;;;;:::o;7783:980::-;8045:4;8093:3;8082:9;8078:19;8124:6;8113:9;8106:25;8150:2;8188:6;8183:2;8172:9;8168:18;8161:34;8231:3;8226:2;8215:9;8211:18;8204:31;8255:6;8290;8284:13;8321:6;8313;8306:22;8359:3;8348:9;8344:19;8337:26;;8398:2;8390:6;8386:15;8372:29;;8419:1;8429:195;8443:6;8440:1;8437:13;8429:195;;;8508:13;;-1:-1:-1;;;;;8504:39:1;8492:52;;8599:15;;;;8564:12;;;;8540:1;8458:9;8429:195;;;-1:-1:-1;;;;;;;8680:32:1;;;;8675:2;8660:18;;8653:60;-1:-1:-1;;;8744:3:1;8729:19;8722:35;8641:3;7783:980;-1:-1:-1;;;7783:980:1:o;8957:128::-;8997:3;9028:1;9024:6;9021:1;9018:13;9015:39;;;9034:18;;:::i;:::-;-1:-1:-1;9070:9:1;;8957:128::o;9090:217::-;9130:1;9156;9146:132;;9200:10;9195:3;9191:20;9188:1;9181:31;9235:4;9232:1;9225:15;9263:4;9260:1;9253:15;9146:132;-1:-1:-1;9292:9:1;;9090:217::o;9312:168::-;9352:7;9418:1;9414;9410:6;9406:14;9403:1;9400:21;9395:1;9388:9;9381:17;9377:45;9374:71;;;9425:18;;:::i;:::-;-1:-1:-1;9465:9:1;;9312:168::o;9485:125::-;9525:4;9553:1;9550;9547:8;9544:34;;;9558:18;;:::i;:::-;-1:-1:-1;9595:9:1;;9485:125::o;9615:380::-;9694:1;9690:12;;;;9737;;;9758:61;;9812:4;9804:6;9800:17;9790:27;;9758:61;9865:2;9857:6;9854:14;9834:18;9831:38;9828:161;;;9911:10;9906:3;9902:20;9899:1;9892:31;9946:4;9943:1;9936:15;9974:4;9971:1;9964:15;9828:161;;9615:380;;;:::o;10000:135::-;10039:3;-1:-1:-1;;10060:17:1;;10057:43;;;10080:18;;:::i;:::-;-1:-1:-1;10127:1:1;10116:13;;10000:135::o;10140:127::-;10201:10;10196:3;10192:20;10189:1;10182:31;10232:4;10229:1;10222:15;10256:4;10253:1;10246:15;10272:127;10333:10;10328:3;10324:20;10321:1;10314:31;10364:4;10361:1;10354:15;10388:4;10385:1;10378:15;10404:127;10465:10;10460:3;10456:20;10453:1;10446:31;10496:4;10493:1;10486:15;10520:4;10517:1;10510:15;10536:131;-1:-1:-1;;;;;10611:31:1;;10601:42;;10591:70;;10657:1;10654;10647:12

Swarm Source

ipfs://6f1f1190dcc6f1bceccd8ee1f81ac56e9153ce7ee96926a47a0c02f6df26d0af
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.