Transaction Hash:
Block:
22693269 at Jun-13-2025 04:31:35 AM +UTC
Transaction Fee:
0.000060316 ETH
$0.15
Gas Used:
30,158 Gas / 2 Gwei
Emitted Events:
108 |
LQTYToken.Transfer( from=[Sender] 0x06fd4ba7973a0d39a91734bbc35bc2bcaa99e3b0, to=0x28C6c06298d514Db089934071355E5743bf21d60, value=11018300000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x06FD4bA7...Caa99E3B0 | (Binance Dep: 0x06FD4bA7973a0d39a91734bbc35bC2bCaa99E3B0) |
0.017169047762445375 Eth
Nonce: 123452
|
0.017108731762445375 Eth
Nonce: 123453
| 0.000060316 | |
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 5.043331994976893764 Eth | 5.04336245359687415 Eth | 0.000030458619980386 | |
0x6DEA81C8...2Ed88c54D |
Execution Trace
LQTYToken.transfer( recipient=0x28C6c06298d514Db089934071355E5743bf21d60, amount=11018300000000000000000 ) => ( True )
// SPDX-License-Identifier: MIT pragma solidity 0.6.11; import "../Dependencies/CheckContract.sol"; import "../Dependencies/SafeMath.sol"; import "../Interfaces/ILQTYToken.sol"; import "../Interfaces/ILockupContractFactory.sol"; import "../Dependencies/console.sol"; /* * Based upon OpenZeppelin's ERC20 contract: * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol * * and their EIP2612 (ERC20Permit / ERC712) functionality: * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/53516bc555a454862470e7860a9b5254db4d00f5/contracts/token/ERC20/ERC20Permit.sol * * * --- Functionality added specific to the LQTYToken --- * * 1) Transfer protection: blacklist of addresses that are invalid recipients (i.e. core Liquity contracts) in external * transfer() and transferFrom() calls. The purpose is to protect users from losing tokens by mistakenly sending LQTY directly to a Liquity * core contract, when they should rather call the right function. * * 2) sendToLQTYStaking(): callable only by Liquity core contracts, which move LQTY tokens from user -> LQTYStaking contract. * * 3) Supply hard-capped at 100 million * * 4) CommunityIssuance and LockupContractFactory addresses are set at deployment * * 5) The bug bounties / hackathons allocation of 2 million tokens is minted at deployment to an EOA * 6) 32 million tokens are minted at deployment to the CommunityIssuance contract * * 7) The LP rewards allocation of (1 + 1/3) million tokens is minted at deployent to a Staking contract * * 8) (64 + 2/3) million tokens are minted at deployment to the Liquity multisig * * 9) Until one year from deployment: * -Liquity multisig may only transfer() tokens to LockupContracts that have been deployed via & registered in the * LockupContractFactory * -approve(), increaseAllowance(), decreaseAllowance() revert when called by the multisig * -transferFrom() reverts when the multisig is the sender * -sendToLQTYStaking() reverts when the multisig is the sender, blocking the multisig from staking its LQTY. * * After one year has passed since deployment of the LQTYToken, the restrictions on multisig operations are lifted * and the multisig has the same rights as any other address. */ contract LQTYToken is CheckContract, ILQTYToken { using SafeMath for uint256; // --- ERC20 Data --- string constant internal _NAME = "LQTY"; string constant internal _SYMBOL = "LQTY"; string constant internal _VERSION = "1"; uint8 constant internal _DECIMALS = 18; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint private _totalSupply; // --- EIP 2612 Data --- // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); bytes32 private constant _PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; // keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"); bytes32 private constant _TYPE_HASH = 0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f; // Cache the domain separator as an immutable value, but also store the chain id that it corresponds to, in order to // invalidate the cached domain separator if the chain id changes. bytes32 private immutable _CACHED_DOMAIN_SEPARATOR; uint256 private immutable _CACHED_CHAIN_ID; bytes32 private immutable _HASHED_NAME; bytes32 private immutable _HASHED_VERSION; mapping (address => uint256) private _nonces; // --- LQTYToken specific data --- uint public constant ONE_YEAR_IN_SECONDS = 31536000; // 60 * 60 * 24 * 365 // uint for use with SafeMath uint internal _1_MILLION = 1e24; // 1e6 * 1e18 = 1e24 uint internal immutable deploymentStartTime; address public immutable multisigAddress; address public immutable communityIssuanceAddress; address public immutable lqtyStakingAddress; uint internal immutable lpRewardsEntitlement; ILockupContractFactory public immutable lockupContractFactory; // --- Events --- event CommunityIssuanceAddressSet(address _communityIssuanceAddress); event LQTYStakingAddressSet(address _lqtyStakingAddress); event LockupContractFactoryAddressSet(address _lockupContractFactoryAddress); // --- Functions --- constructor ( address _communityIssuanceAddress, address _lqtyStakingAddress, address _lockupFactoryAddress, address _bountyAddress, address _lpRewardsAddress, address _multisigAddress ) public { checkContract(_communityIssuanceAddress); checkContract(_lqtyStakingAddress); checkContract(_lockupFactoryAddress); multisigAddress = _multisigAddress; deploymentStartTime = block.timestamp; communityIssuanceAddress = _communityIssuanceAddress; lqtyStakingAddress = _lqtyStakingAddress; lockupContractFactory = ILockupContractFactory(_lockupFactoryAddress); bytes32 hashedName = keccak256(bytes(_NAME)); bytes32 hashedVersion = keccak256(bytes(_VERSION)); _HASHED_NAME = hashedName; _HASHED_VERSION = hashedVersion; _CACHED_CHAIN_ID = _chainID(); _CACHED_DOMAIN_SEPARATOR = _buildDomainSeparator(_TYPE_HASH, hashedName, hashedVersion); // --- Initial LQTY allocations --- uint bountyEntitlement = _1_MILLION.mul(2); // Allocate 2 million for bounties/hackathons _mint(_bountyAddress, bountyEntitlement); uint depositorsAndFrontEndsEntitlement = _1_MILLION.mul(32); // Allocate 32 million to the algorithmic issuance schedule _mint(_communityIssuanceAddress, depositorsAndFrontEndsEntitlement); uint _lpRewardsEntitlement = _1_MILLION.mul(4).div(3); // Allocate 1.33 million for LP rewards lpRewardsEntitlement = _lpRewardsEntitlement; _mint(_lpRewardsAddress, _lpRewardsEntitlement); // Allocate the remainder to the LQTY Multisig: (100 - 2 - 32 - 1.33) million = 64.66 million uint multisigEntitlement = _1_MILLION.mul(100) .sub(bountyEntitlement) .sub(depositorsAndFrontEndsEntitlement) .sub(_lpRewardsEntitlement); _mint(_multisigAddress, multisigEntitlement); } // --- External functions --- function totalSupply() external view override returns (uint256) { return _totalSupply; } function balanceOf(address account) external view override returns (uint256) { return _balances[account]; } function getDeploymentStartTime() external view override returns (uint256) { return deploymentStartTime; } function getLpRewardsEntitlement() external view override returns (uint256) { return lpRewardsEntitlement; } function transfer(address recipient, uint256 amount) external override returns (bool) { // Restrict the multisig's transfers in first year if (_callerIsMultisig() && _isFirstYear()) { _requireRecipientIsRegisteredLC(recipient); } _requireValidRecipient(recipient); // Otherwise, standard transfer functionality _transfer(msg.sender, recipient, amount); return true; } 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) { if (_isFirstYear()) { _requireCallerIsNotMultisig(); } _approve(msg.sender, spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if (_isFirstYear()) { _requireSenderIsNotMultisig(sender); } _requireValidRecipient(recipient); _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) external override returns (bool) { if (_isFirstYear()) { _requireCallerIsNotMultisig(); } _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) external override returns (bool) { if (_isFirstYear()) { _requireCallerIsNotMultisig(); } _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function sendToLQTYStaking(address _sender, uint256 _amount) external override { _requireCallerIsLQTYStaking(); if (_isFirstYear()) { _requireSenderIsNotMultisig(_sender); } // Prevent the multisig from staking LQTY _transfer(_sender, lqtyStakingAddress, _amount); } // --- EIP 2612 functionality --- function domainSeparator() public view override returns (bytes32) { if (_chainID() == _CACHED_CHAIN_ID) { return _CACHED_DOMAIN_SEPARATOR; } else { return _buildDomainSeparator(_TYPE_HASH, _HASHED_NAME, _HASHED_VERSION); } } function permit ( address owner, address spender, uint amount, uint deadline, uint8 v, bytes32 r, bytes32 s ) external override { require(deadline >= now, 'LQTY: expired deadline'); bytes32 digest = keccak256(abi.encodePacked('\\x19\\x01', domainSeparator(), keccak256(abi.encode( _PERMIT_TYPEHASH, owner, spender, amount, _nonces[owner]++, deadline)))); address recoveredAddress = ecrecover(digest, v, r, s); require(recoveredAddress == owner, 'LQTY: invalid signature'); _approve(owner, spender, amount); } function nonces(address owner) external view override returns (uint256) { // FOR EIP 2612 return _nonces[owner]; } // --- Internal operations --- function _chainID() private pure returns (uint256 chainID) { assembly { chainID := chainid() } } function _buildDomainSeparator(bytes32 typeHash, bytes32 name, bytes32 version) private view returns (bytes32) { return keccak256(abi.encode(typeHash, name, version, _chainID(), address(this))); } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } // --- Helper functions --- function _callerIsMultisig() internal view returns (bool) { return (msg.sender == multisigAddress); } function _isFirstYear() internal view returns (bool) { return (block.timestamp.sub(deploymentStartTime) < ONE_YEAR_IN_SECONDS); } // --- 'require' functions --- function _requireValidRecipient(address _recipient) internal view { require( _recipient != address(0) && _recipient != address(this), "LQTY: Cannot transfer tokens directly to the LQTY token contract or the zero address" ); require( _recipient != communityIssuanceAddress && _recipient != lqtyStakingAddress, "LQTY: Cannot transfer tokens directly to the community issuance or staking contract" ); } function _requireRecipientIsRegisteredLC(address _recipient) internal view { require(lockupContractFactory.isRegisteredLockup(_recipient), "LQTYToken: recipient must be a LockupContract registered in the Factory"); } function _requireSenderIsNotMultisig(address _sender) internal view { require(_sender != multisigAddress, "LQTYToken: sender must not be the multisig"); } function _requireCallerIsNotMultisig() internal view { require(!_callerIsMultisig(), "LQTYToken: caller must not be the multisig"); } function _requireCallerIsLQTYStaking() internal view { require(msg.sender == lqtyStakingAddress, "LQTYToken: caller must be the LQTYStaking contract"); } // --- Optional functions --- function name() external view override returns (string memory) { return _NAME; } function symbol() external view override returns (string memory) { return _SYMBOL; } function decimals() external view override returns (uint8) { return _DECIMALS; } function version() external view override returns (string memory) { return _VERSION; } function permitTypeHash() external view override returns (bytes32) { return _PERMIT_TYPEHASH; } } // SPDX-License-Identifier: MIT pragma solidity 0.6.11; contract CheckContract { /** * Check that the account is an already deployed non-destroyed contract. * See: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Address.sol#L12 */ function checkContract(address _account) internal view { require(_account != address(0), "Account cannot be zero address"); uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(_account) } require(size > 0, "Account code size cannot be zero"); } } // SPDX-License-Identifier: MIT pragma solidity 0.6.11; /** * Based on OpenZeppelin's SafeMath: * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/SafeMath.sol * * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // SPDX-License-Identifier: MIT pragma solidity 0.6.11; import "../Dependencies/IERC20.sol"; import "../Dependencies/IERC2612.sol"; interface ILQTYToken is IERC20, IERC2612 { // --- Events --- event CommunityIssuanceAddressSet(address _communityIssuanceAddress); event LQTYStakingAddressSet(address _lqtyStakingAddress); event LockupContractFactoryAddressSet(address _lockupContractFactoryAddress); // --- Functions --- function sendToLQTYStaking(address _sender, uint256 _amount) external; function getDeploymentStartTime() external view returns (uint256); function getLpRewardsEntitlement() external view returns (uint256); } // SPDX-License-Identifier: MIT pragma solidity 0.6.11; interface ILockupContractFactory { // --- Events --- event LQTYTokenAddressSet(address _lqtyTokenAddress); event LockupContractDeployedThroughFactory(address _lockupContractAddress, address _beneficiary, uint _unlockTime, address _deployer); // --- Functions --- function setLQTYTokenAddress(address _lqtyTokenAddress) external; function deployLockupContract(address _beneficiary, uint _unlockTime) external; function isRegisteredLockup(address _addr) external view returns (bool); } // SPDX-License-Identifier: MIT pragma solidity 0.6.11; // Buidler's helper contract for console logging library console { \taddress constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67); \tfunction log() internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log()")); \t\tignored; \t}\tfunction logInt(int p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(int)", p0)); \t\tignored; \t} \tfunction logUint(uint p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint)", p0)); \t\tignored; \t} \tfunction logString(string memory p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string)", p0)); \t\tignored; \t} \tfunction logBool(bool p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool)", p0)); \t\tignored; \t} \tfunction logAddress(address p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address)", p0)); \t\tignored; \t} \tfunction logBytes(bytes memory p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes)", p0)); \t\tignored; \t} \tfunction logByte(byte p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(byte)", p0)); \t\tignored; \t} \tfunction logBytes1(bytes1 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes1)", p0)); \t\tignored; \t} \tfunction logBytes2(bytes2 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes2)", p0)); \t\tignored; \t} \tfunction logBytes3(bytes3 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes3)", p0)); \t\tignored; \t} \tfunction logBytes4(bytes4 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes4)", p0)); \t\tignored; \t} \tfunction logBytes5(bytes5 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes5)", p0)); \t\tignored; \t} \tfunction logBytes6(bytes6 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes6)", p0)); \t\tignored; \t} \tfunction logBytes7(bytes7 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes7)", p0)); \t\tignored; \t} \tfunction logBytes8(bytes8 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes8)", p0)); \t\tignored; \t} \tfunction logBytes9(bytes9 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes9)", p0)); \t\tignored; \t} \tfunction logBytes10(bytes10 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes10)", p0)); \t\tignored; \t} \tfunction logBytes11(bytes11 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes11)", p0)); \t\tignored; \t} \tfunction logBytes12(bytes12 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes12)", p0)); \t\tignored; \t} \tfunction logBytes13(bytes13 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes13)", p0)); \t\tignored; \t} \tfunction logBytes14(bytes14 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes14)", p0)); \t\tignored; \t} \tfunction logBytes15(bytes15 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes15)", p0)); \t\tignored; \t} \tfunction logBytes16(bytes16 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes16)", p0)); \t\tignored; \t} \tfunction logBytes17(bytes17 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes17)", p0)); \t\tignored; \t} \tfunction logBytes18(bytes18 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes18)", p0)); \t\tignored; \t} \tfunction logBytes19(bytes19 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes19)", p0)); \t\tignored; \t} \tfunction logBytes20(bytes20 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes20)", p0)); \t\tignored; \t} \tfunction logBytes21(bytes21 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes21)", p0)); \t\tignored; \t} \tfunction logBytes22(bytes22 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes22)", p0)); \t\tignored; \t} \tfunction logBytes23(bytes23 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes23)", p0)); \t\tignored; \t} \tfunction logBytes24(bytes24 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes24)", p0)); \t\tignored; \t} \tfunction logBytes25(bytes25 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes25)", p0)); \t\tignored; \t} \tfunction logBytes26(bytes26 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes26)", p0)); \t\tignored; \t} \tfunction logBytes27(bytes27 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes27)", p0)); \t\tignored; \t} \tfunction logBytes28(bytes28 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes28)", p0)); \t\tignored; \t} \tfunction logBytes29(bytes29 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes29)", p0)); \t\tignored; \t} \tfunction logBytes30(bytes30 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes30)", p0)); \t\tignored; \t} \tfunction logBytes31(bytes31 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes31)", p0)); \t\tignored; \t} \tfunction logBytes32(bytes32 p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bytes32)", p0)); \t\tignored; \t} \tfunction log(uint p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint)", p0)); \t\tignored; \t} \tfunction log(string memory p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string)", p0)); \t\tignored; \t} \tfunction log(bool p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool)", p0)); \t\tignored; \t} \tfunction log(address p0) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address)", p0)); \t\tignored; \t} \tfunction log(uint p0, uint p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint)", p0, p1)); \t\tignored; \t} \tfunction log(uint p0, string memory p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string)", p0, p1)); \t\tignored; \t} \tfunction log(uint p0, bool p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool)", p0, p1)); \t\tignored; \t} \tfunction log(uint p0, address p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address)", p0, p1)); \t\tignored; \t} \tfunction log(string memory p0, uint p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint)", p0, p1)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string)", p0, p1)); \t\tignored; \t} \tfunction log(string memory p0, bool p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool)", p0, p1)); \t\tignored; \t} \tfunction log(string memory p0, address p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address)", p0, p1)); \t\tignored; \t} \tfunction log(bool p0, uint p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint)", p0, p1)); \t\tignored; \t} \tfunction log(bool p0, string memory p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string)", p0, p1)); \t\tignored; \t} \tfunction log(bool p0, bool p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool)", p0, p1)); \t\tignored; \t} \tfunction log(bool p0, address p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address)", p0, p1)); \t\tignored; \t} \tfunction log(address p0, uint p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint)", p0, p1)); \t\tignored; \t} \tfunction log(address p0, string memory p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string)", p0, p1)); \t\tignored; \t} \tfunction log(address p0, bool p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool)", p0, p1)); \t\tignored; \t} \tfunction log(address p0, address p1) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address)", p0, p1)); \t\tignored; \t} \tfunction log(uint p0, uint p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, uint p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, uint p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, uint p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, bool p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, bool p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, bool p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, bool p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, address p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, address p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, address p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, address p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, address p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, address p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, address p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(string memory p0, address p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, uint p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, uint p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, uint p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, uint p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, bool p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, bool p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, bool p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, bool p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, address p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, address p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, address p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(bool p0, address p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, uint p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, uint p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, uint p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, uint p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, string memory p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, string memory p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, string memory p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, string memory p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, bool p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, bool p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, bool p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, bool p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, address p1, uint p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, address p1, string memory p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, address p1, bool p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2)); \t\tignored; \t} \tfunction log(address p0, address p1, address p2) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2)); \t\tignored; \t} \tfunction log(uint p0, uint p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, uint p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, string memory p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, bool p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(uint p0, address p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, uint p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, string memory p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, bool p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(string memory p0, address p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, uint p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, string memory p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, bool p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(bool p0, address p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, uint p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, string memory p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, bool p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, uint p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, uint p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, uint p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, uint p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, string memory p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, string memory p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, string memory p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, string memory p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, bool p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, bool p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, bool p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, bool p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, address p2, uint p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, address p2, string memory p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, address p2, bool p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3)); \t\tignored; \t} \tfunction log(address p0, address p1, address p2, address p3) internal view { \t\t(bool ignored, ) = CONSOLE_ADDRESS.staticcall(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3)); \t\tignored; \t} } // SPDX-License-Identifier: MIT pragma solidity 0.6.11; /** * Based on the OpenZeppelin IER20 interface: * https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol * * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); function increaseAllowance(address spender, uint256 addedValue) external returns (bool); function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }// SPDX-License-Identifier: MIT pragma solidity 0.6.11; /** * @dev Interface of the ERC2612 standard as defined in the EIP. * * Adds the {permit} method, which can be used to change one's * {IERC20-allowance} without having to send a transaction, by signing a * message. This allows users to spend tokens without having to hold Ether. * * See https://eips.ethereum.org/EIPS/eip-2612. * * Code adapted from https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2237/ */ interface IERC2612 { /** * @dev Sets `amount` as the allowance of `spender` over `owner`'s tokens, * given `owner`'s signed approval. * * IMPORTANT: The same issues {IERC20-approve} has related to transaction * ordering also apply here. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. * - `deadline` must be a timestamp in the future. * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` * over the EIP712-formatted function arguments. * - the signature must use ``owner``'s current nonce (see {nonces}). * * For more information on the signature format, see the * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP * section]. */ function permit(address owner, address spender, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; /** * @dev Returns the current ERC2612 nonce for `owner`. This value must be * included whenever a signature is generated for {permit}. * * Every successful call to {permit} increases `owner`'s nonce by one. This * prevents a signature from being used multiple times. * * `owner` can limit the time a Permit is valid for by setting `deadline` to * a value in the near future. The deadline argument can be set to uint(-1) to * create Permits that effectively never expire. */ function nonces(address owner) external view returns (uint256); function version() external view returns (string memory); function permitTypeHash() external view returns (bytes32); function domainSeparator() external view returns (bytes32); }