Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save 0x4139/8ecb3bfae39a874a3952110b296a006b to your computer and use it in GitHub Desktop.
Save 0x4139/8ecb3bfae39a874a3952110b296a006b to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.10+commit.fc410830.js&optimize=false&runs=200&gist=
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @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 `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, 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);
/**
* @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 `from` to `to` 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 from,
address to,
uint256 amount
) external returns (bool);
/**
* @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
// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
import "../../../utils/Address.sol";
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using Address for address;
function safeTransfer(
IERC20 token,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(
IERC20 token,
address from,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
/**
* @dev Deprecated. This function has issues similar to the ones found in
* {IERC20-approve}, and its usage is discouraged.
*
* Whenever possible, use {safeIncreaseAllowance} and
* {safeDecreaseAllowance} instead.
*/
function safeApprove(
IERC20 token,
address spender,
uint256 value
) internal {
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
require(
(value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function safeIncreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
uint256 newAllowance = token.allowance(address(this), spender) + value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
function safeDecreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
unchecked {
uint256 oldAllowance = token.allowance(address(this), spender);
require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
uint256 newAllowance = oldAllowance - value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
}
/**
* @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
* on the return value: the return value is optional (but if data is returned, it must not be false).
* @param token The token targeted by the call.
* @param data The call data (encoded using abi.encode or one of its variants).
*/
function _callOptionalReturn(IERC20 token, bytes memory data) private {
// We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
// we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that
// the target address contains contract code and also asserts for success in the low-level call.
bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
if (returndata.length > 0) {
// Return data is optional
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
}
}
}
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
* like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
* constructor.
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize/address.code.length, which returns 0
// for contracts in construction, since the code is only stored at the end
// of the constructor execution.
return account.code.length > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads for the very first time or there are no files existing in the File Explorer.
It contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity.
SCRIPTS
The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract.
For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required).
Scripts have full access to the web3.js and ethers.js libraries.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_661": {
"entryPoint": null,
"id": 661,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507301be23585060835e02b77ef475b0cc51aa1e0709600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600381905550603c60048190555060026005819055506118788061010d6000396000f3fe6080604052600436106100ab5760003560e01c8063766718081161006457806376671808146101c3578063b3ab15fb146101ee578063b6b55f2514610217578063cf4fe73414610240578063d6e6c27e14610257578063f3fef3a314610280576100b2565b806313af4035146100b7578063151ba800146100e057806330024dfe1461010b5780634782f7791461013457806370a082311461015d57806375f890ab1461019a576100b2565b366100b257005b600080fd5b3480156100c357600080fd5b506100de60048036038101906100d99190610f20565b6102a9565b005b3480156100ec57600080fd5b506100f561037a565b6040516101029190610f66565b60405180910390f35b34801561011757600080fd5b50610132600480360381019061012d9190610fad565b61041d565b005b34801561014057600080fd5b5061015b60048036038101906101569190611018565b6104b5565b005b34801561016957600080fd5b50610184600480360381019061017f9190610f20565b61058e565b6040516101919190610f66565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611096565b6105d7565b005b3480156101cf57600080fd5b506101d86106a9565b6040516101e59190610f66565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190610f20565b6106cb565b005b34801561022357600080fd5b5061023e60048036038101906102399190610fad565b61079d565b005b34801561024c57600080fd5b506102556108dd565b005b34801561026357600080fd5b5061027e60048036038101906102799190610fad565b610974565b005b34801561028c57600080fd5b506102a760048036038101906102a291906110c3565b610a0c565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032e90611186565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016103d791906111b5565b602060405180830381865afa1580156103f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041891906111e5565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a290611284565b60405180910390fd5b8060048190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053a906112f0565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610589573d6000803e3d6000fd5b505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065c90611382565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600454600354426106bc91906113d1565b6106c69190611434565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610759576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610750906114b1565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016107fc939291906114d1565b6020604051808303816000875af115801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f9190611540565b50803373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60405160405180910390a380600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108d3919061156d565b9250508190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290611284565b60405180910390fd5b42600381905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99061160f565b60405180910390fd5b8060058190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ab35750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae9906116a1565b60405180910390fd5b600060045460035442610b0591906113d1565b610b0f9190611434565b90506000606460055483600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6391906116c1565b610b6d91906116c1565b610b779190611434565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc1919061156d565b905080831115610c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfd9061178d565b60405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c6391906111b5565b602060405180830381865afa158015610c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca491906111e5565b905080841115610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce0906117f9565b60405180910390fd5b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841115610d7a576000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dd1565b83600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dc991906113d1565b925050819055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff1660e01b8152600401610e2e929190611819565b6020604051808303816000875af1158015610e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e719190611540565b50838573ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60405160405180910390a35050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610eed82610ec2565b9050919050565b610efd81610ee2565b8114610f0857600080fd5b50565b600081359050610f1a81610ef4565b92915050565b600060208284031215610f3657610f35610ebd565b5b6000610f4484828501610f0b565b91505092915050565b6000819050919050565b610f6081610f4d565b82525050565b6000602082019050610f7b6000830184610f57565b92915050565b610f8a81610f4d565b8114610f9557600080fd5b50565b600081359050610fa781610f81565b92915050565b600060208284031215610fc357610fc2610ebd565b5b6000610fd184828501610f98565b91505092915050565b6000610fe582610ec2565b9050919050565b610ff581610fda565b811461100057600080fd5b50565b60008135905061101281610fec565b92915050565b6000806040838503121561102f5761102e610ebd565b5b600061103d85828601611003565b925050602061104e85828601610f98565b9150509250929050565b600061106382610ee2565b9050919050565b61107381611058565b811461107e57600080fd5b50565b6000813590506110908161106a565b92915050565b6000602082840312156110ac576110ab610ebd565b5b60006110ba84828501611081565b91505092915050565b600080604083850312156110da576110d9610ebd565b5b60006110e885828601610f0b565b92505060206110f985828601610f98565b9150509250929050565b600082825260208201905092915050565b7f4f6e6c79206f776e65722063616e207365742061206e6577206f70657261746f60008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000611170602183611103565b915061117b82611114565b604082019050919050565b6000602082019050818103600083015261119f81611163565b9050919050565b6111af81610ee2565b82525050565b60006020820190506111ca60008301846111a6565b92915050565b6000815190506111df81610f81565b92915050565b6000602082840312156111fb576111fa610ebd565b5b6000611209848285016111d0565b91505092915050565b7f4f6e6c79206f776e65722063616e20736574207468652065706f63682073746160008201527f7274000000000000000000000000000000000000000000000000000000000000602082015250565b600061126e602283611103565b915061127982611212565b604082019050919050565b6000602082019050818103600083015261129d81611261565b9050919050565b7f4f6e6c79206f776e65722063616e2073656e6420455448000000000000000000600082015250565b60006112da601783611103565b91506112e5826112a4565b602082019050919050565b60006020820190508181036000830152611309816112cd565b9050919050565b7f4f6e6c79206f776e65722063616e207365742061206e657720636f6e7472616360008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061136c602183611103565b915061137782611310565b604082019050919050565b6000602082019050818103600083015261139b8161135f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113dc82610f4d565b91506113e783610f4d565b9250828210156113fa576113f96113a2565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061143f82610f4d565b915061144a83610f4d565b92508261145a57611459611405565b5b828204905092915050565b7f4f6e6c79206f776e65722063616e207365742061206e6577206f776e65720000600082015250565b600061149b601e83611103565b91506114a682611465565b602082019050919050565b600060208201905081810360008301526114ca8161148e565b9050919050565b60006060820190506114e660008301866111a6565b6114f360208301856111a6565b6115006040830184610f57565b949350505050565b60008115159050919050565b61151d81611508565b811461152857600080fd5b50565b60008151905061153a81611514565b92915050565b60006020828403121561155657611555610ebd565b5b60006115648482850161152b565b91505092915050565b600061157882610f4d565b915061158383610f4d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156115b8576115b76113a2565b5b828201905092915050565b7f4f6e6c79206f776e65722063616e207365742061206e65772041504500000000600082015250565b60006115f9601c83611103565b9150611604826115c3565b602082019050919050565b60006020820190508181036000830152611628816115ec565b9050919050565b7f4f6e6c79206f776e6572206f72206f70657261746f722063616e20776974686460008201527f7261772066756e64730000000000000000000000000000000000000000000000602082015250565b600061168b602983611103565b91506116968261162f565b604082019050919050565b600060208201905081810360008301526116ba8161167e565b9050919050565b60006116cc82610f4d565b91506116d783610f4d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156117105761170f6113a2565b5b828202905092915050565b7f54686520616d6f756e7420646f6573206e6f74206d6174636820746865206d6160008201527f78207265776172642063616c63756c6174696f6e730000000000000000000000602082015250565b6000611777603583611103565b91506117828261171b565b604082019050919050565b600060208201905081810360008301526117a68161176a565b9050919050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b60006117e3601283611103565b91506117ee826117ad565b602082019050919050565b60006020820190508181036000830152611812816117d6565b9050919050565b600060408201905061182e60008301856111a6565b61183b6020830184610f57565b939250505056fea264697066735822122084ae35fc16e2dfdce2e56f02121c7f04dac664218d6bf30b7091345154dab58e64736f6c634300080a0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLER PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH20 0x1BE23585060835E02B77EF475B0CC51AA1E0709 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP TIMESTAMP PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x3C PUSH1 0x4 DUP2 SWAP1 SSTORE POP PUSH1 0x2 PUSH1 0x5 DUP2 SWAP1 SSTORE POP PUSH2 0x1878 DUP1 PUSH2 0x10D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76671808 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x76671808 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xB3AB15FB EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0xCF4FE734 EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0xD6E6C27E EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x280 JUMPI PUSH2 0xB2 JUMP JUMPDEST DUP1 PUSH4 0x13AF4035 EQ PUSH2 0xB7 JUMPI DUP1 PUSH4 0x151BA800 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x30024DFE EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x4782F779 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x75F890AB EQ PUSH2 0x19A JUMPI PUSH2 0xB2 JUMP JUMPDEST CALLDATASIZE PUSH2 0xB2 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD9 SWAP2 SWAP1 PUSH2 0xF20 JUMP JUMPDEST PUSH2 0x2A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF5 PUSH2 0x37A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0xFAD JUMP JUMPDEST PUSH2 0x41D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x156 SWAP2 SWAP1 PUSH2 0x1018 JUMP JUMPDEST PUSH2 0x4B5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x184 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17F SWAP2 SWAP1 PUSH2 0xF20 JUMP JUMPDEST PUSH2 0x58E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x191 SWAP2 SWAP1 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x5D7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH2 0x6A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x210 SWAP2 SWAP1 PUSH2 0xF20 JUMP JUMPDEST PUSH2 0x6CB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x239 SWAP2 SWAP1 PUSH2 0xFAD JUMP JUMPDEST PUSH2 0x79D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x255 PUSH2 0x8DD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x263 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x279 SWAP2 SWAP1 PUSH2 0xFAD JUMP JUMPDEST PUSH2 0x974 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x10C3 JUMP JUMPDEST PUSH2 0xA0C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x32E SWAP1 PUSH2 0x1186 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D7 SWAP2 SWAP1 PUSH2 0x11B5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x418 SWAP2 SWAP1 PUSH2 0x11E5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x4AB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4A2 SWAP1 PUSH2 0x1284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x543 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53A SWAP1 PUSH2 0x12F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x665 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x65C SWAP1 PUSH2 0x1382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x6BC SWAP2 SWAP1 PUSH2 0x13D1 JUMP JUMPDEST PUSH2 0x6C6 SWAP2 SWAP1 PUSH2 0x1434 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x759 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x750 SWAP1 PUSH2 0x14B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7FC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x14D1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x81B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x83F SWAP2 SWAP1 PUSH2 0x1540 JUMP JUMPDEST POP DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x6 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8D3 SWAP2 SWAP1 PUSH2 0x156D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x96B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x962 SWAP1 PUSH2 0x1284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP PUSH1 0x3 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F9 SWAP1 PUSH2 0x160F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xAB3 JUMPI POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0xAF2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAE9 SWAP1 PUSH2 0x16A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0xB05 SWAP2 SWAP1 PUSH2 0x13D1 JUMP JUMPDEST PUSH2 0xB0F SWAP2 SWAP1 PUSH2 0x1434 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x5 SLOAD DUP4 PUSH1 0x6 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB63 SWAP2 SWAP1 PUSH2 0x16C1 JUMP JUMPDEST PUSH2 0xB6D SWAP2 SWAP1 PUSH2 0x16C1 JUMP JUMPDEST PUSH2 0xB77 SWAP2 SWAP1 PUSH2 0x1434 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xBC1 SWAP2 SWAP1 PUSH2 0x156D JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT ISZERO PUSH2 0xC06 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBFD SWAP1 PUSH2 0x178D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC63 SWAP2 SWAP1 PUSH2 0x11B5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCA4 SWAP2 SWAP1 PUSH2 0x11E5 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0xCE9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE0 SWAP1 PUSH2 0x17F9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP5 GT ISZERO PUSH2 0xD7A JUMPI PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDD1 JUMP JUMPDEST DUP4 PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDC9 SWAP2 SWAP1 PUSH2 0x13D1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP7 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE2E SWAP3 SWAP2 SWAP1 PUSH2 0x1819 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE4D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE71 SWAP2 SWAP1 PUSH2 0x1540 JUMP JUMPDEST POP DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEED DUP3 PUSH2 0xEC2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEFD DUP2 PUSH2 0xEE2 JUMP JUMPDEST DUP2 EQ PUSH2 0xF08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF1A DUP2 PUSH2 0xEF4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF36 JUMPI PUSH2 0xF35 PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF44 DUP5 DUP3 DUP6 ADD PUSH2 0xF0B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF60 DUP2 PUSH2 0xF4D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF7B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF57 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF8A DUP2 PUSH2 0xF4D JUMP JUMPDEST DUP2 EQ PUSH2 0xF95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFA7 DUP2 PUSH2 0xF81 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFC3 JUMPI PUSH2 0xFC2 PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFD1 DUP5 DUP3 DUP6 ADD PUSH2 0xF98 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFE5 DUP3 PUSH2 0xEC2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFF5 DUP2 PUSH2 0xFDA JUMP JUMPDEST DUP2 EQ PUSH2 0x1000 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1012 DUP2 PUSH2 0xFEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x102F JUMPI PUSH2 0x102E PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x103D DUP6 DUP3 DUP7 ADD PUSH2 0x1003 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x104E DUP6 DUP3 DUP7 ADD PUSH2 0xF98 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1063 DUP3 PUSH2 0xEE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1073 DUP2 PUSH2 0x1058 JUMP JUMPDEST DUP2 EQ PUSH2 0x107E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1090 DUP2 PUSH2 0x106A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10AC JUMPI PUSH2 0x10AB PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BA DUP5 DUP3 DUP6 ADD PUSH2 0x1081 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10DA JUMPI PUSH2 0x10D9 PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10E8 DUP6 DUP3 DUP7 ADD PUSH2 0xF0B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x10F9 DUP6 DUP3 DUP7 ADD PUSH2 0xF98 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E207365742061206E6577206F70657261746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1170 PUSH1 0x21 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x117B DUP3 PUSH2 0x1114 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x119F DUP2 PUSH2 0x1163 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11AF DUP2 PUSH2 0xEE2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11CA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x11A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x11DF DUP2 PUSH2 0xF81 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11FB JUMPI PUSH2 0x11FA PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1209 DUP5 DUP3 DUP6 ADD PUSH2 0x11D0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E20736574207468652065706F636820737461 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7274000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126E PUSH1 0x22 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x1279 DUP3 PUSH2 0x1212 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x129D DUP2 PUSH2 0x1261 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E2073656E6420455448000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12DA PUSH1 0x17 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x12E5 DUP3 PUSH2 0x12A4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1309 DUP2 PUSH2 0x12CD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E207365742061206E657720636F6E74726163 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x136C PUSH1 0x21 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x1377 DUP3 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x139B DUP2 PUSH2 0x135F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x13DC DUP3 PUSH2 0xF4D JUMP JUMPDEST SWAP2 POP PUSH2 0x13E7 DUP4 PUSH2 0xF4D JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x13FA JUMPI PUSH2 0x13F9 PUSH2 0x13A2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x143F DUP3 PUSH2 0xF4D JUMP JUMPDEST SWAP2 POP PUSH2 0x144A DUP4 PUSH2 0xF4D JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x145A JUMPI PUSH2 0x1459 PUSH2 0x1405 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E207365742061206E6577206F776E65720000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x149B PUSH1 0x1E DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x14A6 DUP3 PUSH2 0x1465 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x14CA DUP2 PUSH2 0x148E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x14E6 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x14F3 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x1500 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF57 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x151D DUP2 PUSH2 0x1508 JUMP JUMPDEST DUP2 EQ PUSH2 0x1528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x153A DUP2 PUSH2 0x1514 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1556 JUMPI PUSH2 0x1555 PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1564 DUP5 DUP3 DUP6 ADD PUSH2 0x152B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1578 DUP3 PUSH2 0xF4D JUMP JUMPDEST SWAP2 POP PUSH2 0x1583 DUP4 PUSH2 0xF4D JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x15B8 JUMPI PUSH2 0x15B7 PUSH2 0x13A2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E207365742061206E65772041504500000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15F9 PUSH1 0x1C DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x1604 DUP3 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1628 DUP2 PUSH2 0x15EC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E6572206F72206F70657261746F722063616E207769746864 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7261772066756E64730000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168B PUSH1 0x29 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x1696 DUP3 PUSH2 0x162F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x16BA DUP2 PUSH2 0x167E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16CC DUP3 PUSH2 0xF4D JUMP JUMPDEST SWAP2 POP PUSH2 0x16D7 DUP4 PUSH2 0xF4D JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1710 JUMPI PUSH2 0x170F PUSH2 0x13A2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x54686520616D6F756E7420646F6573206E6F74206D6174636820746865206D61 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x78207265776172642063616C63756C6174696F6E730000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1777 PUSH1 0x35 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x1782 DUP3 PUSH2 0x171B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x17A6 DUP2 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E742066756E64730000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17E3 PUSH1 0x12 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x17EE DUP3 PUSH2 0x17AD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1812 DUP2 PUSH2 0x17D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x182E PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x183B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF57 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP5 0xAE CALLDATALOAD 0xFC AND 0xE2 0xDF 0xDC 0xE2 0xE5 PUSH16 0x2121C7F04DAC664218D6BF30B709134 MLOAD SLOAD 0xDA 0xB5 DUP15 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ",
"sourceMap": "137:3207:3:-:0;;;547:255;;;;;;;;;;577:10;570:6;;:17;;;;;;;;;;;;;;;;;;607:10;597:9;;:20;;;;;;;;;;;;;;;;;;645:42;628:9;;:60;;;;;;;;;;;;;;;;;;711:15;699:11;:27;;;;751:2;736:14;:17;;;;780:1;772:7;:9;;;;137:3207;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_665": {
"entryPoint": null,
"id": 665,
"parameterSlots": 0,
"returnSlots": 0
},
"@balanceOf_825": {
"entryPoint": 1422,
"id": 825,
"parameterSlots": 1,
"returnSlots": 1
},
"@collectorBalance_841": {
"entryPoint": 890,
"id": 841,
"parameterSlots": 0,
"returnSlots": 1
},
"@currentEpoch_716": {
"entryPoint": 1705,
"id": 716,
"parameterSlots": 0,
"returnSlots": 1
},
"@deposit_872": {
"entryPoint": 1949,
"id": 872,
"parameterSlots": 1,
"returnSlots": 0
},
"@setAPE_734": {
"entryPoint": 2420,
"id": 734,
"parameterSlots": 1,
"returnSlots": 0
},
"@setContract_811": {
"entryPoint": 1495,
"id": 811,
"parameterSlots": 1,
"returnSlots": 0
},
"@setEpochDuration_683": {
"entryPoint": 1053,
"id": 683,
"parameterSlots": 1,
"returnSlots": 0
},
"@setEpochStart_700": {
"entryPoint": 2269,
"id": 700,
"parameterSlots": 0,
"returnSlots": 0
},
"@setOperator_792": {
"entryPoint": 1739,
"id": 792,
"parameterSlots": 1,
"returnSlots": 0
},
"@setOwner_774": {
"entryPoint": 681,
"id": 774,
"parameterSlots": 1,
"returnSlots": 0
},
"@withdrawETH_756": {
"entryPoint": 1205,
"id": 756,
"parameterSlots": 2,
"returnSlots": 0
},
"@withdraw_976": {
"entryPoint": 2572,
"id": 976,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 3851,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_address_payable": {
"entryPoint": 4099,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool_fromMemory": {
"entryPoint": 5419,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_contract$_IERC20_$77": {
"entryPoint": 4225,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 3992,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 4560,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 3872,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address_payablet_uint256": {
"entryPoint": 4120,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 4291,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_bool_fromMemory": {
"entryPoint": 5440,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_contract$_IERC20_$77": {
"entryPoint": 4246,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 4013,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 4581,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 4518,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_stringliteral_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865_to_t_string_memory_ptr_fromStack": {
"entryPoint": 5612,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2_to_t_string_memory_ptr_fromStack": {
"entryPoint": 4959,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a_to_t_string_memory_ptr_fromStack": {
"entryPoint": 4451,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d_to_t_string_memory_ptr_fromStack": {
"entryPoint": 6102,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a_to_t_string_memory_ptr_fromStack": {
"entryPoint": 4705,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b_to_t_string_memory_ptr_fromStack": {
"entryPoint": 4813,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222_to_t_string_memory_ptr_fromStack": {
"entryPoint": 5758,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b_to_t_string_memory_ptr_fromStack": {
"entryPoint": 5994,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac_to_t_string_memory_ptr_fromStack": {
"entryPoint": 5262,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 3927,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 4533,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 5329,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 6169,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 5647,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 4994,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 4486,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6137,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 4740,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 4848,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 5793,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 6029,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 5297,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 3942,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 4355,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 5485,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 5172,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 5825,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 5073,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 3810,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_address_payable": {
"entryPoint": 4058,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 5384,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_contract$_IERC20_$77": {
"entryPoint": 4184,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 3778,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 3917,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 5026,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x12": {
"entryPoint": 5125,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 3773,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"store_literal_in_memory_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865": {
"entryPoint": 5571,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2": {
"entryPoint": 4880,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a": {
"entryPoint": 4372,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d": {
"entryPoint": 6061,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a": {
"entryPoint": 4626,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b": {
"entryPoint": 4772,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222": {
"entryPoint": 5679,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b": {
"entryPoint": 5915,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac": {
"entryPoint": 5221,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 3828,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address_payable": {
"entryPoint": 4076,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 5396,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_contract$_IERC20_$77": {
"entryPoint": 4202,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 3969,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:17419:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:4"
},
"nodeType": "YulFunctionCall",
"src": "67:9:4"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:4"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:4",
"type": ""
}
],
"src": "7:75:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:4"
},
"nodeType": "YulFunctionCall",
"src": "187:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:4"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:4"
},
"nodeType": "YulFunctionCall",
"src": "310:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:4"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:4"
},
"nodeType": "YulFunctionCall",
"src": "400:54:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:4"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:4",
"type": ""
}
],
"src": "334:126:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:4"
},
"nodeType": "YulFunctionCall",
"src": "532:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:4"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:4",
"type": ""
}
],
"src": "466:96:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:4"
},
"nodeType": "YulFunctionCall",
"src": "670:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:4"
},
"nodeType": "YulFunctionCall",
"src": "641:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:4"
},
"nodeType": "YulFunctionCall",
"src": "631:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:4"
},
"nodeType": "YulFunctionCall",
"src": "624:43:4"
},
"nodeType": "YulIf",
"src": "621:63:4"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:4",
"type": ""
}
],
"src": "568:122:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "748:87:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "758:29:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "780:6:4"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "767:12:4"
},
"nodeType": "YulFunctionCall",
"src": "767:20:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "758:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "823:5:4"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "796:26:4"
},
"nodeType": "YulFunctionCall",
"src": "796:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "796:33:4"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "726:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "734:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "742:5:4",
"type": ""
}
],
"src": "696:139:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "907:263:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "953:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "955:77:4"
},
"nodeType": "YulFunctionCall",
"src": "955:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "955:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "928:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "937:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "924:3:4"
},
"nodeType": "YulFunctionCall",
"src": "924:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "949:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "920:3:4"
},
"nodeType": "YulFunctionCall",
"src": "920:32:4"
},
"nodeType": "YulIf",
"src": "917:119:4"
},
{
"nodeType": "YulBlock",
"src": "1046:117:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1061:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1075:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1065:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1090:63:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1125:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1136:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1121:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1121:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1145:7:4"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1100:20:4"
},
"nodeType": "YulFunctionCall",
"src": "1100:53:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1090:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "877:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "888:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "900:6:4",
"type": ""
}
],
"src": "841:329:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1221:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1231:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1242:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1231:7:4"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1203:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1213:7:4",
"type": ""
}
],
"src": "1176:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1324:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1341:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1364:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1346:17:4"
},
"nodeType": "YulFunctionCall",
"src": "1346:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1334:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1334:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "1334:37:4"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1312:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1319:3:4",
"type": ""
}
],
"src": "1259:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1481:124:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1491:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1503:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1514:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1499:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1499:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1491:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1571:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1584:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1595:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1580:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1580:17:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1527:43:4"
},
"nodeType": "YulFunctionCall",
"src": "1527:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "1527:71:4"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1453:9:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1465:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1476:4:4",
"type": ""
}
],
"src": "1383:222:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1654:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1711:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1720:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1723:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1713:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1713:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "1713:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1677:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1702:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1684:17:4"
},
"nodeType": "YulFunctionCall",
"src": "1684:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1674:2:4"
},
"nodeType": "YulFunctionCall",
"src": "1674:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1667:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1667:43:4"
},
"nodeType": "YulIf",
"src": "1664:63:4"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1647:5:4",
"type": ""
}
],
"src": "1611:122:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1791:87:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1801:29:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1823:6:4"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1810:12:4"
},
"nodeType": "YulFunctionCall",
"src": "1810:20:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1801:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1866:5:4"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "1839:26:4"
},
"nodeType": "YulFunctionCall",
"src": "1839:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "1839:33:4"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1769:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1777:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1785:5:4",
"type": ""
}
],
"src": "1739:139:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1950:263:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1996:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1998:77:4"
},
"nodeType": "YulFunctionCall",
"src": "1998:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "1998:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1971:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1980:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1967:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1967:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1992:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1963:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1963:32:4"
},
"nodeType": "YulIf",
"src": "1960:119:4"
},
{
"nodeType": "YulBlock",
"src": "2089:117:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2104:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2118:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2108:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2133:63:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2168:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2179:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2164:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2164:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2188:7:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "2143:20:4"
},
"nodeType": "YulFunctionCall",
"src": "2143:53:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2133:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1920:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1931:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1943:6:4",
"type": ""
}
],
"src": "1884:329:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2272:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2282:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2311:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2293:17:4"
},
"nodeType": "YulFunctionCall",
"src": "2293:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2282:7:4"
}
]
}
]
},
"name": "cleanup_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2254:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2264:7:4",
"type": ""
}
],
"src": "2219:104:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2380:87:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2445:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2454:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2457:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2447:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2447:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "2447:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2403:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2436:5:4"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "2410:25:4"
},
"nodeType": "YulFunctionCall",
"src": "2410:32:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2400:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2400:43:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2393:6:4"
},
"nodeType": "YulFunctionCall",
"src": "2393:51:4"
},
"nodeType": "YulIf",
"src": "2390:71:4"
}
]
},
"name": "validator_revert_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2373:5:4",
"type": ""
}
],
"src": "2329:138:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2533:95:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2543:29:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2565:6:4"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2552:12:4"
},
"nodeType": "YulFunctionCall",
"src": "2552:20:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2543:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2616:5:4"
}
],
"functionName": {
"name": "validator_revert_t_address_payable",
"nodeType": "YulIdentifier",
"src": "2581:34:4"
},
"nodeType": "YulFunctionCall",
"src": "2581:41:4"
},
"nodeType": "YulExpressionStatement",
"src": "2581:41:4"
}
]
},
"name": "abi_decode_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2511:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2519:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2527:5:4",
"type": ""
}
],
"src": "2473:155:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2725:399:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2771:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2773:77:4"
},
"nodeType": "YulFunctionCall",
"src": "2773:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "2773:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2746:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2755:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2742:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2742:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2767:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2738:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2738:32:4"
},
"nodeType": "YulIf",
"src": "2735:119:4"
},
{
"nodeType": "YulBlock",
"src": "2864:125:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2879:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2893:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2883:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2908:71:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2951:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2962:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2947:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2947:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2971:7:4"
}
],
"functionName": {
"name": "abi_decode_t_address_payable",
"nodeType": "YulIdentifier",
"src": "2918:28:4"
},
"nodeType": "YulFunctionCall",
"src": "2918:61:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2908:6:4"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "2999:118:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3014:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3028:2:4",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3018:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3044:63:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3079:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3090:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3075:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3075:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3099:7:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "3054:20:4"
},
"nodeType": "YulFunctionCall",
"src": "3054:53:4"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3044:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address_payablet_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2687:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2698:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2710:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2718:6:4",
"type": ""
}
],
"src": "2634:490:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3188:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3198:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3227:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "3209:17:4"
},
"nodeType": "YulFunctionCall",
"src": "3209:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3198:7:4"
}
]
}
]
},
"name": "cleanup_t_contract$_IERC20_$77",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3170:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3180:7:4",
"type": ""
}
],
"src": "3130:109:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3301:92:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3371:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3380:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3383:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3373:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3373:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "3373:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3324:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3362:5:4"
}
],
"functionName": {
"name": "cleanup_t_contract$_IERC20_$77",
"nodeType": "YulIdentifier",
"src": "3331:30:4"
},
"nodeType": "YulFunctionCall",
"src": "3331:37:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3321:2:4"
},
"nodeType": "YulFunctionCall",
"src": "3321:48:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3314:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3314:56:4"
},
"nodeType": "YulIf",
"src": "3311:76:4"
}
]
},
"name": "validator_revert_t_contract$_IERC20_$77",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3294:5:4",
"type": ""
}
],
"src": "3245:148:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3464:100:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3474:29:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3496:6:4"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3483:12:4"
},
"nodeType": "YulFunctionCall",
"src": "3483:20:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3474:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3552:5:4"
}
],
"functionName": {
"name": "validator_revert_t_contract$_IERC20_$77",
"nodeType": "YulIdentifier",
"src": "3512:39:4"
},
"nodeType": "YulFunctionCall",
"src": "3512:46:4"
},
"nodeType": "YulExpressionStatement",
"src": "3512:46:4"
}
]
},
"name": "abi_decode_t_contract$_IERC20_$77",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3442:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3450:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3458:5:4",
"type": ""
}
],
"src": "3399:165:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3649:276:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3695:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3697:77:4"
},
"nodeType": "YulFunctionCall",
"src": "3697:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "3697:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3670:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3679:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3666:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3666:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3691:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3662:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3662:32:4"
},
"nodeType": "YulIf",
"src": "3659:119:4"
},
{
"nodeType": "YulBlock",
"src": "3788:130:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3803:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3817:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3807:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3832:76:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3880:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3891:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3876:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3876:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3900:7:4"
}
],
"functionName": {
"name": "abi_decode_t_contract$_IERC20_$77",
"nodeType": "YulIdentifier",
"src": "3842:33:4"
},
"nodeType": "YulFunctionCall",
"src": "3842:66:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3832:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_contract$_IERC20_$77",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3619:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3630:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3642:6:4",
"type": ""
}
],
"src": "3570:355:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4014:391:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4060:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "4062:77:4"
},
"nodeType": "YulFunctionCall",
"src": "4062:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "4062:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4035:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4044:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4031:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4031:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4056:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4027:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4027:32:4"
},
"nodeType": "YulIf",
"src": "4024:119:4"
},
{
"nodeType": "YulBlock",
"src": "4153:117:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4168:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4182:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4172:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4197:63:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4232:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4243:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4228:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4228:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4252:7:4"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "4207:20:4"
},
"nodeType": "YulFunctionCall",
"src": "4207:53:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4197:6:4"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4280:118:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4295:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4309:2:4",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4299:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4325:63:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4360:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4371:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4356:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4356:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4380:7:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "4335:20:4"
},
"nodeType": "YulFunctionCall",
"src": "4335:53:4"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4325:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3976:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3987:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3999:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4007:6:4",
"type": ""
}
],
"src": "3931:474:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4507:73:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4524:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4529:6:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4517:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4517:19:4"
},
"nodeType": "YulExpressionStatement",
"src": "4517:19:4"
},
{
"nodeType": "YulAssignment",
"src": "4545:29:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4564:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4569:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4560:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4560:14:4"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "4545:11:4"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4479:3:4",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4484:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "4495:11:4",
"type": ""
}
],
"src": "4411:169:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4692:114:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4714:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4722:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4710:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4710:14:4"
},
{
"hexValue": "4f6e6c79206f776e65722063616e207365742061206e6577206f70657261746f",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4726:34:4",
"type": "",
"value": "Only owner can set a new operato"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4703:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4703:58:4"
},
"nodeType": "YulExpressionStatement",
"src": "4703:58:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4782:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4790:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4778:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4778:15:4"
},
{
"hexValue": "72",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4795:3:4",
"type": "",
"value": "r"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4771:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4771:28:4"
},
"nodeType": "YulExpressionStatement",
"src": "4771:28:4"
}
]
},
"name": "store_literal_in_memory_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4684:6:4",
"type": ""
}
],
"src": "4586:220:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4958:220:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4968:74:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5034:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5039:2:4",
"type": "",
"value": "33"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4975:58:4"
},
"nodeType": "YulFunctionCall",
"src": "4975:67:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4968:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5140:3:4"
}
],
"functionName": {
"name": "store_literal_in_memory_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a",
"nodeType": "YulIdentifier",
"src": "5051:88:4"
},
"nodeType": "YulFunctionCall",
"src": "5051:93:4"
},
"nodeType": "YulExpressionStatement",
"src": "5051:93:4"
},
{
"nodeType": "YulAssignment",
"src": "5153:19:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5164:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5169:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5160:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5160:12:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5153:3:4"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4946:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4954:3:4",
"type": ""
}
],
"src": "4812:366:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5355:248:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5365:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5377:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5388:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5373:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5373:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5365:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5412:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5423:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5408:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5408:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5431:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5437:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5427:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5427:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5401:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5401:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "5401:47:4"
},
{
"nodeType": "YulAssignment",
"src": "5457:139:4",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5591:4:4"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5465:124:4"
},
"nodeType": "YulFunctionCall",
"src": "5465:131:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5457:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5335:9:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5350:4:4",
"type": ""
}
],
"src": "5184:419:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5674:53:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5691:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5714:5:4"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "5696:17:4"
},
"nodeType": "YulFunctionCall",
"src": "5696:24:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5684:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5684:37:4"
},
"nodeType": "YulExpressionStatement",
"src": "5684:37:4"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5662:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5669:3:4",
"type": ""
}
],
"src": "5609:118:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5831:124:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5841:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5853:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5864:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5849:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5849:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5841:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5921:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5934:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5945:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5930:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5930:17:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "5877:43:4"
},
"nodeType": "YulFunctionCall",
"src": "5877:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "5877:71:4"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5803:9:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5815:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5826:4:4",
"type": ""
}
],
"src": "5733:222:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6024:80:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6034:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6049:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "6043:5:4"
},
"nodeType": "YulFunctionCall",
"src": "6043:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6034:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6092:5:4"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "6065:26:4"
},
"nodeType": "YulFunctionCall",
"src": "6065:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "6065:33:4"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6002:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6010:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6018:5:4",
"type": ""
}
],
"src": "5961:143:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6187:274:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6233:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "6235:77:4"
},
"nodeType": "YulFunctionCall",
"src": "6235:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "6235:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6208:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6217:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6204:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6204:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6229:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "6200:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6200:32:4"
},
"nodeType": "YulIf",
"src": "6197:119:4"
},
{
"nodeType": "YulBlock",
"src": "6326:128:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6341:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6355:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6345:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6370:74:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6416:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6427:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6412:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6412:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6436:7:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "6380:31:4"
},
"nodeType": "YulFunctionCall",
"src": "6380:64:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6370:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6157:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "6168:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6180:6:4",
"type": ""
}
],
"src": "6110:351:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6573:115:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6595:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6603:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6591:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6591:14:4"
},
{
"hexValue": "4f6e6c79206f776e65722063616e20736574207468652065706f636820737461",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6607:34:4",
"type": "",
"value": "Only owner can set the epoch sta"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6584:6:4"
},
"nodeType": "YulFunctionCall",
"src": "6584:58:4"
},
"nodeType": "YulExpressionStatement",
"src": "6584:58:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6663:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6671:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6659:3:4"
},
"nodeType": "YulFunctionCall",
"src": "6659:15:4"
},
{
"hexValue": "7274",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6676:4:4",
"type": "",
"value": "rt"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6652:6:4"
},
"nodeType": "YulFunctionCall",
"src": "6652:29:4"
},
"nodeType": "YulExpressionStatement",
"src": "6652:29:4"
}
]
},
"name": "store_literal_in_memory_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "6565:6:4",
"type": ""
}
],
"src": "6467:221:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6840:220:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6850:74:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6916:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6921:2:4",
"type": "",
"value": "34"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6857:58:4"
},
"nodeType": "YulFunctionCall",
"src": "6857:67:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6850:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7022:3:4"
}
],
"functionName": {
"name": "store_literal_in_memory_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a",
"nodeType": "YulIdentifier",
"src": "6933:88:4"
},
"nodeType": "YulFunctionCall",
"src": "6933:93:4"
},
"nodeType": "YulExpressionStatement",
"src": "6933:93:4"
},
{
"nodeType": "YulAssignment",
"src": "7035:19:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7046:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7051:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7042:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7042:12:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7035:3:4"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6828:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6836:3:4",
"type": ""
}
],
"src": "6694:366:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7237:248:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7247:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7259:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7270:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7255:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7255:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7247:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7294:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7305:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7290:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7290:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7313:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7319:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7309:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7309:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7283:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7283:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "7283:47:4"
},
{
"nodeType": "YulAssignment",
"src": "7339:139:4",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7473:4:4"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7347:124:4"
},
"nodeType": "YulFunctionCall",
"src": "7347:131:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7339:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7217:9:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7232:4:4",
"type": ""
}
],
"src": "7066:419:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7597:67:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7619:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7627:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7615:3:4"
},
"nodeType": "YulFunctionCall",
"src": "7615:14:4"
},
{
"hexValue": "4f6e6c79206f776e65722063616e2073656e6420455448",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7631:25:4",
"type": "",
"value": "Only owner can send ETH"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7608:6:4"
},
"nodeType": "YulFunctionCall",
"src": "7608:49:4"
},
"nodeType": "YulExpressionStatement",
"src": "7608:49:4"
}
]
},
"name": "store_literal_in_memory_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7589:6:4",
"type": ""
}
],
"src": "7491:173:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7816:220:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7826:74:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7892:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7897:2:4",
"type": "",
"value": "23"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7833:58:4"
},
"nodeType": "YulFunctionCall",
"src": "7833:67:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7826:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7998:3:4"
}
],
"functionName": {
"name": "store_literal_in_memory_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b",
"nodeType": "YulIdentifier",
"src": "7909:88:4"
},
"nodeType": "YulFunctionCall",
"src": "7909:93:4"
},
"nodeType": "YulExpressionStatement",
"src": "7909:93:4"
},
{
"nodeType": "YulAssignment",
"src": "8011:19:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8022:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8027:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8018:3:4"
},
"nodeType": "YulFunctionCall",
"src": "8018:12:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8011:3:4"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7804:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7812:3:4",
"type": ""
}
],
"src": "7670:366:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8213:248:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8223:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8235:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8246:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8231:3:4"
},
"nodeType": "YulFunctionCall",
"src": "8231:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8223:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8270:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8281:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8266:3:4"
},
"nodeType": "YulFunctionCall",
"src": "8266:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8289:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8295:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8285:3:4"
},
"nodeType": "YulFunctionCall",
"src": "8285:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8259:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8259:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "8259:47:4"
},
{
"nodeType": "YulAssignment",
"src": "8315:139:4",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8449:4:4"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8323:124:4"
},
"nodeType": "YulFunctionCall",
"src": "8323:131:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8315:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8193:9:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8208:4:4",
"type": ""
}
],
"src": "8042:419:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8573:114:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "8595:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8603:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8591:3:4"
},
"nodeType": "YulFunctionCall",
"src": "8591:14:4"
},
{
"hexValue": "4f6e6c79206f776e65722063616e207365742061206e657720636f6e74726163",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8607:34:4",
"type": "",
"value": "Only owner can set a new contrac"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8584:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8584:58:4"
},
"nodeType": "YulExpressionStatement",
"src": "8584:58:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "8663:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8671:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8659:3:4"
},
"nodeType": "YulFunctionCall",
"src": "8659:15:4"
},
{
"hexValue": "74",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8676:3:4",
"type": "",
"value": "t"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8652:6:4"
},
"nodeType": "YulFunctionCall",
"src": "8652:28:4"
},
"nodeType": "YulExpressionStatement",
"src": "8652:28:4"
}
]
},
"name": "store_literal_in_memory_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "8565:6:4",
"type": ""
}
],
"src": "8467:220:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8839:220:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8849:74:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8915:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8920:2:4",
"type": "",
"value": "33"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8856:58:4"
},
"nodeType": "YulFunctionCall",
"src": "8856:67:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8849:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9021:3:4"
}
],
"functionName": {
"name": "store_literal_in_memory_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2",
"nodeType": "YulIdentifier",
"src": "8932:88:4"
},
"nodeType": "YulFunctionCall",
"src": "8932:93:4"
},
"nodeType": "YulExpressionStatement",
"src": "8932:93:4"
},
{
"nodeType": "YulAssignment",
"src": "9034:19:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9045:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9050:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9041:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9041:12:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "9034:3:4"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "8827:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "8835:3:4",
"type": ""
}
],
"src": "8693:366:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9236:248:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9246:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9258:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9269:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9254:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9254:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9246:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9293:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9304:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9289:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9289:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9312:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9318:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9308:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9308:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9282:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9282:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "9282:47:4"
},
{
"nodeType": "YulAssignment",
"src": "9338:139:4",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9472:4:4"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "9346:124:4"
},
"nodeType": "YulFunctionCall",
"src": "9346:131:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "9338:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9216:9:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "9231:4:4",
"type": ""
}
],
"src": "9065:419:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9518:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9535:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9538:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9528:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9528:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "9528:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9632:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9635:4:4",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9625:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9625:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "9625:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9656:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9659:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "9649:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9649:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "9649:15:4"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "9490:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9721:146:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9731:25:4",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "9754:1:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "9736:17:4"
},
"nodeType": "YulFunctionCall",
"src": "9736:20:4"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "9731:1:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "9765:25:4",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "9788:1:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "9770:17:4"
},
"nodeType": "YulFunctionCall",
"src": "9770:20:4"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "9765:1:4"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9812:22:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "9814:16:4"
},
"nodeType": "YulFunctionCall",
"src": "9814:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "9814:18:4"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "9806:1:4"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "9809:1:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "9803:2:4"
},
"nodeType": "YulFunctionCall",
"src": "9803:8:4"
},
"nodeType": "YulIf",
"src": "9800:34:4"
},
{
"nodeType": "YulAssignment",
"src": "9844:17:4",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "9856:1:4"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "9859:1:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9852:3:4"
},
"nodeType": "YulFunctionCall",
"src": "9852:9:4"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "9844:4:4"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "9707:1:4",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "9710:1:4",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "9716:4:4",
"type": ""
}
],
"src": "9676:191:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9901:152:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9918:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9921:77:4",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9911:6:4"
},
"nodeType": "YulFunctionCall",
"src": "9911:88:4"
},
"nodeType": "YulExpressionStatement",
"src": "9911:88:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10015:1:4",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10018:4:4",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10008:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10008:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "10008:15:4"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10039:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10042:4:4",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "10032:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10032:15:4"
},
"nodeType": "YulExpressionStatement",
"src": "10032:15:4"
}
]
},
"name": "panic_error_0x12",
"nodeType": "YulFunctionDefinition",
"src": "9873:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10101:143:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10111:25:4",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10134:1:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "10116:17:4"
},
"nodeType": "YulFunctionCall",
"src": "10116:20:4"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10111:1:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "10145:25:4",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "10168:1:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "10150:17:4"
},
"nodeType": "YulFunctionCall",
"src": "10150:20:4"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "10145:1:4"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "10192:22:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nodeType": "YulIdentifier",
"src": "10194:16:4"
},
"nodeType": "YulFunctionCall",
"src": "10194:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "10194:18:4"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "10189:1:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "10182:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10182:9:4"
},
"nodeType": "YulIf",
"src": "10179:35:4"
},
{
"nodeType": "YulAssignment",
"src": "10224:14:4",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "10233:1:4"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "10236:1:4"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "10229:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10229:9:4"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "10224:1:4"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "10090:1:4",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "10093:1:4",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "10099:1:4",
"type": ""
}
],
"src": "10059:185:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10356:74:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10378:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10386:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10374:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10374:14:4"
},
{
"hexValue": "4f6e6c79206f776e65722063616e207365742061206e6577206f776e6572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10390:32:4",
"type": "",
"value": "Only owner can set a new owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10367:6:4"
},
"nodeType": "YulFunctionCall",
"src": "10367:56:4"
},
"nodeType": "YulExpressionStatement",
"src": "10367:56:4"
}
]
},
"name": "store_literal_in_memory_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "10348:6:4",
"type": ""
}
],
"src": "10250:180:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10582:220:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10592:74:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10658:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10663:2:4",
"type": "",
"value": "30"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "10599:58:4"
},
"nodeType": "YulFunctionCall",
"src": "10599:67:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10592:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10764:3:4"
}
],
"functionName": {
"name": "store_literal_in_memory_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac",
"nodeType": "YulIdentifier",
"src": "10675:88:4"
},
"nodeType": "YulFunctionCall",
"src": "10675:93:4"
},
"nodeType": "YulExpressionStatement",
"src": "10675:93:4"
},
{
"nodeType": "YulAssignment",
"src": "10777:19:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "10788:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10793:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10784:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10784:12:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "10777:3:4"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "10570:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "10578:3:4",
"type": ""
}
],
"src": "10436:366:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10979:248:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10989:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11001:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11012:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10997:3:4"
},
"nodeType": "YulFunctionCall",
"src": "10997:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "10989:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11036:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11047:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11032:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11032:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11055:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11061:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11051:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11051:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11025:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11025:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "11025:47:4"
},
{
"nodeType": "YulAssignment",
"src": "11081:139:4",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11215:4:4"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "11089:124:4"
},
"nodeType": "YulFunctionCall",
"src": "11089:131:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11081:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10959:9:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "10974:4:4",
"type": ""
}
],
"src": "10808:419:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11387:288:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11397:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11409:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11420:2:4",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11405:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11405:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "11397:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11477:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11490:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11501:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11486:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11486:17:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "11433:43:4"
},
"nodeType": "YulFunctionCall",
"src": "11433:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "11433:71:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "11558:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11571:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11582:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11567:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11567:18:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "11514:43:4"
},
"nodeType": "YulFunctionCall",
"src": "11514:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "11514:72:4"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "11640:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11653:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11664:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11649:3:4"
},
"nodeType": "YulFunctionCall",
"src": "11649:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "11596:43:4"
},
"nodeType": "YulFunctionCall",
"src": "11596:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "11596:72:4"
}
]
},
"name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11343:9:4",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "11355:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "11363:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11371:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "11382:4:4",
"type": ""
}
],
"src": "11233:442:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11723:48:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11733:32:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11758:5:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "11751:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11751:13:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "11744:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11744:21:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "11733:7:4"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11705:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "11715:7:4",
"type": ""
}
],
"src": "11681:90:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11817:76:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11871:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11880:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11883:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "11873:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11873:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "11873:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11840:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11862:5:4"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "11847:14:4"
},
"nodeType": "YulFunctionCall",
"src": "11847:21:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "11837:2:4"
},
"nodeType": "YulFunctionCall",
"src": "11837:32:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "11830:6:4"
},
"nodeType": "YulFunctionCall",
"src": "11830:40:4"
},
"nodeType": "YulIf",
"src": "11827:60:4"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11810:5:4",
"type": ""
}
],
"src": "11777:116:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11959:77:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11969:22:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11984:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "11978:5:4"
},
"nodeType": "YulFunctionCall",
"src": "11978:13:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11969:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12024:5:4"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "12000:23:4"
},
"nodeType": "YulFunctionCall",
"src": "12000:30:4"
},
"nodeType": "YulExpressionStatement",
"src": "12000:30:4"
}
]
},
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11937:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "11945:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11953:5:4",
"type": ""
}
],
"src": "11899:137:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12116:271:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12162:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "12164:77:4"
},
"nodeType": "YulFunctionCall",
"src": "12164:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "12164:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "12137:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12146:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "12133:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12133:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12158:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "12129:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12129:32:4"
},
"nodeType": "YulIf",
"src": "12126:119:4"
},
{
"nodeType": "YulBlock",
"src": "12255:125:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12270:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12284:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12274:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "12299:71:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12342:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12353:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12338:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12338:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "12362:7:4"
}
],
"functionName": {
"name": "abi_decode_t_bool_fromMemory",
"nodeType": "YulIdentifier",
"src": "12309:28:4"
},
"nodeType": "YulFunctionCall",
"src": "12309:61:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "12299:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bool_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "12086:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "12097:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "12109:6:4",
"type": ""
}
],
"src": "12042:345:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12437:261:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12447:25:4",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12470:1:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "12452:17:4"
},
"nodeType": "YulFunctionCall",
"src": "12452:20:4"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12447:1:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "12481:25:4",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12504:1:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "12486:17:4"
},
"nodeType": "YulFunctionCall",
"src": "12486:20:4"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12481:1:4"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "12644:22:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "12646:16:4"
},
"nodeType": "YulFunctionCall",
"src": "12646:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "12646:18:4"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12565:1:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12572:66:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12640:1:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "12568:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12568:74:4"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "12562:2:4"
},
"nodeType": "YulFunctionCall",
"src": "12562:81:4"
},
"nodeType": "YulIf",
"src": "12559:107:4"
},
{
"nodeType": "YulAssignment",
"src": "12676:16:4",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "12687:1:4"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "12690:1:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12683:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12683:9:4"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "12676:3:4"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "12424:1:4",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "12427:1:4",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "12433:3:4",
"type": ""
}
],
"src": "12393:305:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12810:72:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "12832:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12840:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12828:3:4"
},
"nodeType": "YulFunctionCall",
"src": "12828:14:4"
},
{
"hexValue": "4f6e6c79206f776e65722063616e207365742061206e657720415045",
"kind": "string",
"nodeType": "YulLiteral",
"src": "12844:30:4",
"type": "",
"value": "Only owner can set a new APE"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12821:6:4"
},
"nodeType": "YulFunctionCall",
"src": "12821:54:4"
},
"nodeType": "YulExpressionStatement",
"src": "12821:54:4"
}
]
},
"name": "store_literal_in_memory_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "12802:6:4",
"type": ""
}
],
"src": "12704:178:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13034:220:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13044:74:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13110:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13115:2:4",
"type": "",
"value": "28"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "13051:58:4"
},
"nodeType": "YulFunctionCall",
"src": "13051:67:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13044:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13216:3:4"
}
],
"functionName": {
"name": "store_literal_in_memory_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865",
"nodeType": "YulIdentifier",
"src": "13127:88:4"
},
"nodeType": "YulFunctionCall",
"src": "13127:93:4"
},
"nodeType": "YulExpressionStatement",
"src": "13127:93:4"
},
{
"nodeType": "YulAssignment",
"src": "13229:19:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13240:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13245:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13236:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13236:12:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "13229:3:4"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "13022:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "13030:3:4",
"type": ""
}
],
"src": "12888:366:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13431:248:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13441:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13453:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13464:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13449:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13449:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13441:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13488:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13499:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13484:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13484:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13507:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "13513:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "13503:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13503:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13477:6:4"
},
"nodeType": "YulFunctionCall",
"src": "13477:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "13477:47:4"
},
{
"nodeType": "YulAssignment",
"src": "13533:139:4",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13667:4:4"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "13541:124:4"
},
"nodeType": "YulFunctionCall",
"src": "13541:131:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "13533:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "13411:9:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "13426:4:4",
"type": ""
}
],
"src": "13260:419:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13791:122:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "13813:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13821:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13809:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13809:14:4"
},
{
"hexValue": "4f6e6c79206f776e6572206f72206f70657261746f722063616e207769746864",
"kind": "string",
"nodeType": "YulLiteral",
"src": "13825:34:4",
"type": "",
"value": "Only owner or operator can withd"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13802:6:4"
},
"nodeType": "YulFunctionCall",
"src": "13802:58:4"
},
"nodeType": "YulExpressionStatement",
"src": "13802:58:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "13881:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13889:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13877:3:4"
},
"nodeType": "YulFunctionCall",
"src": "13877:15:4"
},
{
"hexValue": "7261772066756e6473",
"kind": "string",
"nodeType": "YulLiteral",
"src": "13894:11:4",
"type": "",
"value": "raw funds"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13870:6:4"
},
"nodeType": "YulFunctionCall",
"src": "13870:36:4"
},
"nodeType": "YulExpressionStatement",
"src": "13870:36:4"
}
]
},
"name": "store_literal_in_memory_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "13783:6:4",
"type": ""
}
],
"src": "13685:228:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14065:220:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14075:74:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14141:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14146:2:4",
"type": "",
"value": "41"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "14082:58:4"
},
"nodeType": "YulFunctionCall",
"src": "14082:67:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14075:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14247:3:4"
}
],
"functionName": {
"name": "store_literal_in_memory_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222",
"nodeType": "YulIdentifier",
"src": "14158:88:4"
},
"nodeType": "YulFunctionCall",
"src": "14158:93:4"
},
"nodeType": "YulExpressionStatement",
"src": "14158:93:4"
},
{
"nodeType": "YulAssignment",
"src": "14260:19:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14271:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14276:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14267:3:4"
},
"nodeType": "YulFunctionCall",
"src": "14267:12:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "14260:3:4"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "14053:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "14061:3:4",
"type": ""
}
],
"src": "13919:366:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14462:248:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14472:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14484:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14495:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14480:3:4"
},
"nodeType": "YulFunctionCall",
"src": "14480:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14472:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14519:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14530:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14515:3:4"
},
"nodeType": "YulFunctionCall",
"src": "14515:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14538:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "14544:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "14534:3:4"
},
"nodeType": "YulFunctionCall",
"src": "14534:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "14508:6:4"
},
"nodeType": "YulFunctionCall",
"src": "14508:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "14508:47:4"
},
{
"nodeType": "YulAssignment",
"src": "14564:139:4",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14698:4:4"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "14572:124:4"
},
"nodeType": "YulFunctionCall",
"src": "14572:131:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "14564:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "14442:9:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "14457:4:4",
"type": ""
}
],
"src": "14291:419:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14764:300:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14774:25:4",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14797:1:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "14779:17:4"
},
"nodeType": "YulFunctionCall",
"src": "14779:20:4"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14774:1:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "14808:25:4",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14831:1:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "14813:17:4"
},
"nodeType": "YulFunctionCall",
"src": "14813:20:4"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14808:1:4"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "15006:22:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "15008:16:4"
},
"nodeType": "YulFunctionCall",
"src": "15008:18:4"
},
"nodeType": "YulExpressionStatement",
"src": "15008:18:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "14918:1:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "14911:6:4"
},
"nodeType": "YulFunctionCall",
"src": "14911:9:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "14904:6:4"
},
"nodeType": "YulFunctionCall",
"src": "14904:17:4"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "14926:1:4"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14933:66:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "15001:1:4"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "14929:3:4"
},
"nodeType": "YulFunctionCall",
"src": "14929:74:4"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "14923:2:4"
},
"nodeType": "YulFunctionCall",
"src": "14923:81:4"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "14900:3:4"
},
"nodeType": "YulFunctionCall",
"src": "14900:105:4"
},
"nodeType": "YulIf",
"src": "14897:131:4"
},
{
"nodeType": "YulAssignment",
"src": "15038:20:4",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "15053:1:4"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "15056:1:4"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "15049:3:4"
},
"nodeType": "YulFunctionCall",
"src": "15049:9:4"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "15038:7:4"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "14747:1:4",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "14750:1:4",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "14756:7:4",
"type": ""
}
],
"src": "14716:348:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15176:134:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "15198:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15206:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15194:3:4"
},
"nodeType": "YulFunctionCall",
"src": "15194:14:4"
},
{
"hexValue": "54686520616d6f756e7420646f6573206e6f74206d6174636820746865206d61",
"kind": "string",
"nodeType": "YulLiteral",
"src": "15210:34:4",
"type": "",
"value": "The amount does not match the ma"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15187:6:4"
},
"nodeType": "YulFunctionCall",
"src": "15187:58:4"
},
"nodeType": "YulExpressionStatement",
"src": "15187:58:4"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "15266:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15274:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15262:3:4"
},
"nodeType": "YulFunctionCall",
"src": "15262:15:4"
},
{
"hexValue": "78207265776172642063616c63756c6174696f6e73",
"kind": "string",
"nodeType": "YulLiteral",
"src": "15279:23:4",
"type": "",
"value": "x reward calculations"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15255:6:4"
},
"nodeType": "YulFunctionCall",
"src": "15255:48:4"
},
"nodeType": "YulExpressionStatement",
"src": "15255:48:4"
}
]
},
"name": "store_literal_in_memory_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "15168:6:4",
"type": ""
}
],
"src": "15070:240:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15462:220:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15472:74:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15538:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15543:2:4",
"type": "",
"value": "53"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "15479:58:4"
},
"nodeType": "YulFunctionCall",
"src": "15479:67:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15472:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15644:3:4"
}
],
"functionName": {
"name": "store_literal_in_memory_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b",
"nodeType": "YulIdentifier",
"src": "15555:88:4"
},
"nodeType": "YulFunctionCall",
"src": "15555:93:4"
},
"nodeType": "YulExpressionStatement",
"src": "15555:93:4"
},
{
"nodeType": "YulAssignment",
"src": "15657:19:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15668:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15673:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15664:3:4"
},
"nodeType": "YulFunctionCall",
"src": "15664:12:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "15657:3:4"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "15450:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "15458:3:4",
"type": ""
}
],
"src": "15316:366:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15859:248:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "15869:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15881:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15892:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15877:3:4"
},
"nodeType": "YulFunctionCall",
"src": "15877:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15869:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15916:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15927:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15912:3:4"
},
"nodeType": "YulFunctionCall",
"src": "15912:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15935:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "15941:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "15931:3:4"
},
"nodeType": "YulFunctionCall",
"src": "15931:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15905:6:4"
},
"nodeType": "YulFunctionCall",
"src": "15905:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "15905:47:4"
},
{
"nodeType": "YulAssignment",
"src": "15961:139:4",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16095:4:4"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "15969:124:4"
},
"nodeType": "YulFunctionCall",
"src": "15969:131:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "15961:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "15839:9:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "15854:4:4",
"type": ""
}
],
"src": "15688:419:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16219:62:4",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "16241:6:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16249:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16237:3:4"
},
"nodeType": "YulFunctionCall",
"src": "16237:14:4"
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"kind": "string",
"nodeType": "YulLiteral",
"src": "16253:20:4",
"type": "",
"value": "Insufficient funds"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16230:6:4"
},
"nodeType": "YulFunctionCall",
"src": "16230:44:4"
},
"nodeType": "YulExpressionStatement",
"src": "16230:44:4"
}
]
},
"name": "store_literal_in_memory_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "16211:6:4",
"type": ""
}
],
"src": "16113:168:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16433:220:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16443:74:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16509:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16514:2:4",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "16450:58:4"
},
"nodeType": "YulFunctionCall",
"src": "16450:67:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16443:3:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16615:3:4"
}
],
"functionName": {
"name": "store_literal_in_memory_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"nodeType": "YulIdentifier",
"src": "16526:88:4"
},
"nodeType": "YulFunctionCall",
"src": "16526:93:4"
},
"nodeType": "YulExpressionStatement",
"src": "16526:93:4"
},
{
"nodeType": "YulAssignment",
"src": "16628:19:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16639:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16644:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16635:3:4"
},
"nodeType": "YulFunctionCall",
"src": "16635:12:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "16628:3:4"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "16421:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "16429:3:4",
"type": ""
}
],
"src": "16287:366:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16830:248:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16840:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16852:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16863:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16848:3:4"
},
"nodeType": "YulFunctionCall",
"src": "16848:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16840:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16887:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16898:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16883:3:4"
},
"nodeType": "YulFunctionCall",
"src": "16883:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16906:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "16912:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "16902:3:4"
},
"nodeType": "YulFunctionCall",
"src": "16902:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "16876:6:4"
},
"nodeType": "YulFunctionCall",
"src": "16876:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "16876:47:4"
},
{
"nodeType": "YulAssignment",
"src": "16932:139:4",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "17066:4:4"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "16940:124:4"
},
"nodeType": "YulFunctionCall",
"src": "16940:131:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "16932:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "16810:9:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "16825:4:4",
"type": ""
}
],
"src": "16659:419:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17210:206:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17220:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17232:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17243:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17228:3:4"
},
"nodeType": "YulFunctionCall",
"src": "17228:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "17220:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "17300:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17313:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17324:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17309:3:4"
},
"nodeType": "YulFunctionCall",
"src": "17309:17:4"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "17256:43:4"
},
"nodeType": "YulFunctionCall",
"src": "17256:71:4"
},
"nodeType": "YulExpressionStatement",
"src": "17256:71:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "17381:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "17394:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17405:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17390:3:4"
},
"nodeType": "YulFunctionCall",
"src": "17390:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "17337:43:4"
},
"nodeType": "YulFunctionCall",
"src": "17337:72:4"
},
"nodeType": "YulExpressionStatement",
"src": "17337:72:4"
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "17174:9:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "17186:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "17194:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "17205:4:4",
"type": ""
}
],
"src": "17084:332:4"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_tuple_t_address_payablet_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_contract$_IERC20_$77(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_IERC20_$77(value) {\n if iszero(eq(value, cleanup_t_contract$_IERC20_$77(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_IERC20_$77(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_contract$_IERC20_$77(value)\n }\n\n function abi_decode_tuple_t_contract$_IERC20_$77(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_IERC20_$77(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a(memPtr) {\n\n mstore(add(memPtr, 0), \"Only owner can set a new operato\")\n\n mstore(add(memPtr, 32), \"r\")\n\n }\n\n function abi_encode_t_stringliteral_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_33387188af1e283f16b85dc46d1f73861fa235844946eddd331107ad1271fc2a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a(memPtr) {\n\n mstore(add(memPtr, 0), \"Only owner can set the epoch sta\")\n\n mstore(add(memPtr, 32), \"rt\")\n\n }\n\n function abi_encode_t_stringliteral_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_73ddb56a7f79d67434e41d2efca9d6f49e6a809f3346bc921c0f25427c25030a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b(memPtr) {\n\n mstore(add(memPtr, 0), \"Only owner can send ETH\")\n\n }\n\n function abi_encode_t_stringliteral_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b8ac5143eb137313bf9e581fa380425e6886d0ee64438338c4129078749a384b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2(memPtr) {\n\n mstore(add(memPtr, 0), \"Only owner can set a new contrac\")\n\n mstore(add(memPtr, 32), \"t\")\n\n }\n\n function abi_encode_t_stringliteral_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1a41a0a2df4ce304e3ea5c6f39ccc9ef453b6e3e5f8104d5793aa050c52f82f2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac(memPtr) {\n\n mstore(add(memPtr, 0), \"Only owner can set a new owner\")\n\n }\n\n function abi_encode_t_stringliteral_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f005d1d952479e0645678429010aeab52c3fd2177849c56871fb8e10e104e9ac_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function store_literal_in_memory_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865(memPtr) {\n\n mstore(add(memPtr, 0), \"Only owner can set a new APE\")\n\n }\n\n function abi_encode_t_stringliteral_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 28)\n store_literal_in_memory_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_0284d4b35160e3b2b4b6a5b1624a77ac48806f76b24f7a009242bc03115a1865_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222(memPtr) {\n\n mstore(add(memPtr, 0), \"Only owner or operator can withd\")\n\n mstore(add(memPtr, 32), \"raw funds\")\n\n }\n\n function abi_encode_t_stringliteral_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c69b7d844401fd2a5cb4b808df0bb131c25bfda2b313f75b50d5adc70b0a1222_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function store_literal_in_memory_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b(memPtr) {\n\n mstore(add(memPtr, 0), \"The amount does not match the ma\")\n\n mstore(add(memPtr, 32), \"x reward calculations\")\n\n }\n\n function abi_encode_t_stringliteral_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 53)\n store_literal_in_memory_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_d22d067c57d842fcb8f811d093173d8f389514aacd6fdcdbd2bfe8f39978c86b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d(memPtr) {\n\n mstore(add(memPtr, 0), \"Insufficient funds\")\n\n }\n\n function abi_encode_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n",
"id": 4,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100ab5760003560e01c8063766718081161006457806376671808146101c3578063b3ab15fb146101ee578063b6b55f2514610217578063cf4fe73414610240578063d6e6c27e14610257578063f3fef3a314610280576100b2565b806313af4035146100b7578063151ba800146100e057806330024dfe1461010b5780634782f7791461013457806370a082311461015d57806375f890ab1461019a576100b2565b366100b257005b600080fd5b3480156100c357600080fd5b506100de60048036038101906100d99190610f20565b6102a9565b005b3480156100ec57600080fd5b506100f561037a565b6040516101029190610f66565b60405180910390f35b34801561011757600080fd5b50610132600480360381019061012d9190610fad565b61041d565b005b34801561014057600080fd5b5061015b60048036038101906101569190611018565b6104b5565b005b34801561016957600080fd5b50610184600480360381019061017f9190610f20565b61058e565b6040516101919190610f66565b60405180910390f35b3480156101a657600080fd5b506101c160048036038101906101bc9190611096565b6105d7565b005b3480156101cf57600080fd5b506101d86106a9565b6040516101e59190610f66565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190610f20565b6106cb565b005b34801561022357600080fd5b5061023e60048036038101906102399190610fad565b61079d565b005b34801561024c57600080fd5b506102556108dd565b005b34801561026357600080fd5b5061027e60048036038101906102799190610fad565b610974565b005b34801561028c57600080fd5b506102a760048036038101906102a291906110c3565b610a0c565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610337576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032e90611186565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016103d791906111b5565b602060405180830381865afa1580156103f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041891906111e5565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a290611284565b60405180910390fd5b8060048190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053a906112f0565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610589573d6000803e3d6000fd5b505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065c90611382565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600454600354426106bc91906113d1565b6106c69190611434565b905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610759576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610750906114b1565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016107fc939291906114d1565b6020604051808303816000875af115801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f9190611540565b50803373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60405160405180910390a380600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546108d3919061156d565b9250508190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290611284565b60405180910390fd5b42600381905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f99061160f565b60405180910390fd5b8060058190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610ab35750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae9906116a1565b60405180910390fd5b600060045460035442610b0591906113d1565b610b0f9190611434565b90506000606460055483600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6391906116c1565b610b6d91906116c1565b610b779190611434565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610bc1919061156d565b905080831115610c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfd9061178d565b60405180910390fd5b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c6391906111b5565b602060405180830381865afa158015610c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca491906111e5565b905080841115610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce0906117f9565b60405180910390fd5b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054841115610d7a576000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610dd1565b83600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dc991906113d1565b925050819055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff1660e01b8152600401610e2e929190611819565b6020604051808303816000875af1158015610e4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e719190611540565b50838573ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60405160405180910390a35050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610eed82610ec2565b9050919050565b610efd81610ee2565b8114610f0857600080fd5b50565b600081359050610f1a81610ef4565b92915050565b600060208284031215610f3657610f35610ebd565b5b6000610f4484828501610f0b565b91505092915050565b6000819050919050565b610f6081610f4d565b82525050565b6000602082019050610f7b6000830184610f57565b92915050565b610f8a81610f4d565b8114610f9557600080fd5b50565b600081359050610fa781610f81565b92915050565b600060208284031215610fc357610fc2610ebd565b5b6000610fd184828501610f98565b91505092915050565b6000610fe582610ec2565b9050919050565b610ff581610fda565b811461100057600080fd5b50565b60008135905061101281610fec565b92915050565b6000806040838503121561102f5761102e610ebd565b5b600061103d85828601611003565b925050602061104e85828601610f98565b9150509250929050565b600061106382610ee2565b9050919050565b61107381611058565b811461107e57600080fd5b50565b6000813590506110908161106a565b92915050565b6000602082840312156110ac576110ab610ebd565b5b60006110ba84828501611081565b91505092915050565b600080604083850312156110da576110d9610ebd565b5b60006110e885828601610f0b565b92505060206110f985828601610f98565b9150509250929050565b600082825260208201905092915050565b7f4f6e6c79206f776e65722063616e207365742061206e6577206f70657261746f60008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000611170602183611103565b915061117b82611114565b604082019050919050565b6000602082019050818103600083015261119f81611163565b9050919050565b6111af81610ee2565b82525050565b60006020820190506111ca60008301846111a6565b92915050565b6000815190506111df81610f81565b92915050565b6000602082840312156111fb576111fa610ebd565b5b6000611209848285016111d0565b91505092915050565b7f4f6e6c79206f776e65722063616e20736574207468652065706f63682073746160008201527f7274000000000000000000000000000000000000000000000000000000000000602082015250565b600061126e602283611103565b915061127982611212565b604082019050919050565b6000602082019050818103600083015261129d81611261565b9050919050565b7f4f6e6c79206f776e65722063616e2073656e6420455448000000000000000000600082015250565b60006112da601783611103565b91506112e5826112a4565b602082019050919050565b60006020820190508181036000830152611309816112cd565b9050919050565b7f4f6e6c79206f776e65722063616e207365742061206e657720636f6e7472616360008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b600061136c602183611103565b915061137782611310565b604082019050919050565b6000602082019050818103600083015261139b8161135f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113dc82610f4d565b91506113e783610f4d565b9250828210156113fa576113f96113a2565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061143f82610f4d565b915061144a83610f4d565b92508261145a57611459611405565b5b828204905092915050565b7f4f6e6c79206f776e65722063616e207365742061206e6577206f776e65720000600082015250565b600061149b601e83611103565b91506114a682611465565b602082019050919050565b600060208201905081810360008301526114ca8161148e565b9050919050565b60006060820190506114e660008301866111a6565b6114f360208301856111a6565b6115006040830184610f57565b949350505050565b60008115159050919050565b61151d81611508565b811461152857600080fd5b50565b60008151905061153a81611514565b92915050565b60006020828403121561155657611555610ebd565b5b60006115648482850161152b565b91505092915050565b600061157882610f4d565b915061158383610f4d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156115b8576115b76113a2565b5b828201905092915050565b7f4f6e6c79206f776e65722063616e207365742061206e65772041504500000000600082015250565b60006115f9601c83611103565b9150611604826115c3565b602082019050919050565b60006020820190508181036000830152611628816115ec565b9050919050565b7f4f6e6c79206f776e6572206f72206f70657261746f722063616e20776974686460008201527f7261772066756e64730000000000000000000000000000000000000000000000602082015250565b600061168b602983611103565b91506116968261162f565b604082019050919050565b600060208201905081810360008301526116ba8161167e565b9050919050565b60006116cc82610f4d565b91506116d783610f4d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156117105761170f6113a2565b5b828202905092915050565b7f54686520616d6f756e7420646f6573206e6f74206d6174636820746865206d6160008201527f78207265776172642063616c63756c6174696f6e730000000000000000000000602082015250565b6000611777603583611103565b91506117828261171b565b604082019050919050565b600060208201905081810360008301526117a68161176a565b9050919050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b60006117e3601283611103565b91506117ee826117ad565b602082019050919050565b60006020820190508181036000830152611812816117d6565b9050919050565b600060408201905061182e60008301856111a6565b61183b6020830184610f57565b939250505056fea264697066735822122084ae35fc16e2dfdce2e56f02121c7f04dac664218d6bf30b7091345154dab58e64736f6c634300080a0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xAB JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76671808 GT PUSH2 0x64 JUMPI DUP1 PUSH4 0x76671808 EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xB3AB15FB EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0xCF4FE734 EQ PUSH2 0x240 JUMPI DUP1 PUSH4 0xD6E6C27E EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x280 JUMPI PUSH2 0xB2 JUMP JUMPDEST DUP1 PUSH4 0x13AF4035 EQ PUSH2 0xB7 JUMPI DUP1 PUSH4 0x151BA800 EQ PUSH2 0xE0 JUMPI DUP1 PUSH4 0x30024DFE EQ PUSH2 0x10B JUMPI DUP1 PUSH4 0x4782F779 EQ PUSH2 0x134 JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x75F890AB EQ PUSH2 0x19A JUMPI PUSH2 0xB2 JUMP JUMPDEST CALLDATASIZE PUSH2 0xB2 JUMPI STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD9 SWAP2 SWAP1 PUSH2 0xF20 JUMP JUMPDEST PUSH2 0x2A9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF5 PUSH2 0x37A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x102 SWAP2 SWAP1 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x132 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x12D SWAP2 SWAP1 PUSH2 0xFAD JUMP JUMPDEST PUSH2 0x41D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x140 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x156 SWAP2 SWAP1 PUSH2 0x1018 JUMP JUMPDEST PUSH2 0x4B5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x169 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x184 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x17F SWAP2 SWAP1 PUSH2 0xF20 JUMP JUMPDEST PUSH2 0x58E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x191 SWAP2 SWAP1 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1BC SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x5D7 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1D8 PUSH2 0x6A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E5 SWAP2 SWAP1 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x215 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x210 SWAP2 SWAP1 PUSH2 0xF20 JUMP JUMPDEST PUSH2 0x6CB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x223 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x23E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x239 SWAP2 SWAP1 PUSH2 0xFAD JUMP JUMPDEST PUSH2 0x79D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x255 PUSH2 0x8DD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x263 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x279 SWAP2 SWAP1 PUSH2 0xFAD JUMP JUMPDEST PUSH2 0x974 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A2 SWAP2 SWAP1 PUSH2 0x10C3 JUMP JUMPDEST PUSH2 0xA0C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x337 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x32E SWAP1 PUSH2 0x1186 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D7 SWAP2 SWAP1 PUSH2 0x11B5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x3F4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x418 SWAP2 SWAP1 PUSH2 0x11E5 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x4AB JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4A2 SWAP1 PUSH2 0x1284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x543 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53A SWAP1 PUSH2 0x12F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x665 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x65C SWAP1 PUSH2 0x1382 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0x6BC SWAP2 SWAP1 PUSH2 0x13D1 JUMP JUMPDEST PUSH2 0x6C6 SWAP2 SWAP1 PUSH2 0x1434 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x759 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x750 SWAP1 PUSH2 0x14B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER ADDRESS DUP5 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7FC SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x14D1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x81B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x83F SWAP2 SWAP1 PUSH2 0x1540 JUMP JUMPDEST POP DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x6 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8D3 SWAP2 SWAP1 PUSH2 0x156D JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x96B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x962 SWAP1 PUSH2 0x1284 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST TIMESTAMP PUSH1 0x3 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xA02 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x9F9 SWAP1 PUSH2 0x160F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x5 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xAB3 JUMPI POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ JUMPDEST PUSH2 0xAF2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAE9 SWAP1 PUSH2 0x16A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD PUSH1 0x3 SLOAD TIMESTAMP PUSH2 0xB05 SWAP2 SWAP1 PUSH2 0x13D1 JUMP JUMPDEST PUSH2 0xB0F SWAP2 SWAP1 PUSH2 0x1434 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x64 PUSH1 0x5 SLOAD DUP4 PUSH1 0x6 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xB63 SWAP2 SWAP1 PUSH2 0x16C1 JUMP JUMPDEST PUSH2 0xB6D SWAP2 SWAP1 PUSH2 0x16C1 JUMP JUMPDEST PUSH2 0xB77 SWAP2 SWAP1 PUSH2 0x1434 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0xBC1 SWAP2 SWAP1 PUSH2 0x156D JUMP JUMPDEST SWAP1 POP DUP1 DUP4 GT ISZERO PUSH2 0xC06 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBFD SWAP1 PUSH2 0x178D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC63 SWAP2 SWAP1 PUSH2 0x11B5 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC80 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCA4 SWAP2 SWAP1 PUSH2 0x11E5 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 GT ISZERO PUSH2 0xCE9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE0 SWAP1 PUSH2 0x17F9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP5 GT ISZERO PUSH2 0xD7A JUMPI PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0xDD1 JUMP JUMPDEST DUP4 PUSH1 0x6 PUSH1 0x0 DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0xDC9 SWAP2 SWAP1 PUSH2 0x13D1 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP7 DUP7 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE2E SWAP3 SWAP2 SWAP1 PUSH2 0x1819 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE4D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE71 SWAP2 SWAP1 PUSH2 0x1540 JUMP JUMPDEST POP DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xE1FFFCC4923D04B559F4D29A8BFC6CDA04EB5B0D3C460751C2402C5C5CC9109C PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEED DUP3 PUSH2 0xEC2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xEFD DUP2 PUSH2 0xEE2 JUMP JUMPDEST DUP2 EQ PUSH2 0xF08 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF1A DUP2 PUSH2 0xEF4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF36 JUMPI PUSH2 0xF35 PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF44 DUP5 DUP3 DUP6 ADD PUSH2 0xF0B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF60 DUP2 PUSH2 0xF4D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xF7B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF57 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xF8A DUP2 PUSH2 0xF4D JUMP JUMPDEST DUP2 EQ PUSH2 0xF95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xFA7 DUP2 PUSH2 0xF81 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFC3 JUMPI PUSH2 0xFC2 PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFD1 DUP5 DUP3 DUP6 ADD PUSH2 0xF98 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFE5 DUP3 PUSH2 0xEC2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFF5 DUP2 PUSH2 0xFDA JUMP JUMPDEST DUP2 EQ PUSH2 0x1000 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1012 DUP2 PUSH2 0xFEC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x102F JUMPI PUSH2 0x102E PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x103D DUP6 DUP3 DUP7 ADD PUSH2 0x1003 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x104E DUP6 DUP3 DUP7 ADD PUSH2 0xF98 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1063 DUP3 PUSH2 0xEE2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1073 DUP2 PUSH2 0x1058 JUMP JUMPDEST DUP2 EQ PUSH2 0x107E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1090 DUP2 PUSH2 0x106A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x10AC JUMPI PUSH2 0x10AB PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BA DUP5 DUP3 DUP6 ADD PUSH2 0x1081 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x10DA JUMPI PUSH2 0x10D9 PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10E8 DUP6 DUP3 DUP7 ADD PUSH2 0xF0B JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x10F9 DUP6 DUP3 DUP7 ADD PUSH2 0xF98 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E207365742061206E6577206F70657261746F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7200000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1170 PUSH1 0x21 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x117B DUP3 PUSH2 0x1114 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x119F DUP2 PUSH2 0x1163 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11AF DUP2 PUSH2 0xEE2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11CA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x11A6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x11DF DUP2 PUSH2 0xF81 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11FB JUMPI PUSH2 0x11FA PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1209 DUP5 DUP3 DUP6 ADD PUSH2 0x11D0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E20736574207468652065706F636820737461 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7274000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126E PUSH1 0x22 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x1279 DUP3 PUSH2 0x1212 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x129D DUP2 PUSH2 0x1261 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E2073656E6420455448000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12DA PUSH1 0x17 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x12E5 DUP3 PUSH2 0x12A4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1309 DUP2 PUSH2 0x12CD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E207365742061206E657720636F6E74726163 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x136C PUSH1 0x21 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x1377 DUP3 PUSH2 0x1310 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x139B DUP2 PUSH2 0x135F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x13DC DUP3 PUSH2 0xF4D JUMP JUMPDEST SWAP2 POP PUSH2 0x13E7 DUP4 PUSH2 0xF4D JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x13FA JUMPI PUSH2 0x13F9 PUSH2 0x13A2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x143F DUP3 PUSH2 0xF4D JUMP JUMPDEST SWAP2 POP PUSH2 0x144A DUP4 PUSH2 0xF4D JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x145A JUMPI PUSH2 0x1459 PUSH2 0x1405 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E207365742061206E6577206F776E65720000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x149B PUSH1 0x1E DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x14A6 DUP3 PUSH2 0x1465 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x14CA DUP2 PUSH2 0x148E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x14E6 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x14F3 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x1500 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xF57 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x151D DUP2 PUSH2 0x1508 JUMP JUMPDEST DUP2 EQ PUSH2 0x1528 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x153A DUP2 PUSH2 0x1514 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1556 JUMPI PUSH2 0x1555 PUSH2 0xEBD JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1564 DUP5 DUP3 DUP6 ADD PUSH2 0x152B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1578 DUP3 PUSH2 0xF4D JUMP JUMPDEST SWAP2 POP PUSH2 0x1583 DUP4 PUSH2 0xF4D JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x15B8 JUMPI PUSH2 0x15B7 PUSH2 0x13A2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E65722063616E207365742061206E65772041504500000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15F9 PUSH1 0x1C DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x1604 DUP3 PUSH2 0x15C3 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1628 DUP2 PUSH2 0x15EC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F6E6C79206F776E6572206F72206F70657261746F722063616E207769746864 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7261772066756E64730000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168B PUSH1 0x29 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x1696 DUP3 PUSH2 0x162F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x16BA DUP2 PUSH2 0x167E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16CC DUP3 PUSH2 0xF4D JUMP JUMPDEST SWAP2 POP PUSH2 0x16D7 DUP4 PUSH2 0xF4D JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x1710 JUMPI PUSH2 0x170F PUSH2 0x13A2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x54686520616D6F756E7420646F6573206E6F74206D6174636820746865206D61 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x78207265776172642063616C63756C6174696F6E730000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1777 PUSH1 0x35 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x1782 DUP3 PUSH2 0x171B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x17A6 DUP2 PUSH2 0x176A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E742066756E64730000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17E3 PUSH1 0x12 DUP4 PUSH2 0x1103 JUMP JUMPDEST SWAP2 POP PUSH2 0x17EE DUP3 PUSH2 0x17AD JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1812 DUP2 PUSH2 0x17D6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x182E PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x183B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xF57 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP5 0xAE CALLDATALOAD 0xFC AND 0xE2 0xDF 0xDC 0xE2 0xE5 PUSH16 0x2121C7F04DAC664218D6BF30B709134 MLOAD SLOAD 0xDA 0xB5 DUP15 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ",
"sourceMap": "137:3207:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2255:126;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;847:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1460:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2138:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1954:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1178:126;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1788:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2388:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1020:152;;;;;;;;;;;;;:::i;:::-;;1310:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2587:755;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1631:151;1705:6;;;;;;;;;;1691:20;;:10;:20;;;1683:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;1767:8;1760:6;;:15;;;;;;;;;;;;;;;;;;1631:151;:::o;2255:126::-;2304:15;2340:9;;;;;;;;;;;:19;;;2368:4;2340:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2330:44;;2255:126;:::o;847:167::-;928:6;;;;;;;;;;914:20;;:10;:20;;;906:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;999:8;984:14;:23;;;;847:167;:::o;1460:165::-;1554:6;;;;;;;;;;1540:20;;:10;:20;;;1532:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1599:2;:11;;:19;1611:6;1599:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1460:165;;:::o;2138:111::-;2193:14;2226:9;:16;2236:5;2226:16;;;;;;;;;;;;;;;;2219:23;;2138:111;;;:::o;1954:170::-;2037:6;;;;;;;;;;2023:20;;:10;:20;;;2015:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2102:15;2092:9;;:25;;;;;;;;;;;;;;;;;;1954:170;:::o;1178:126::-;1223:13;1283:14;;1270:11;;1254:15;:27;;;;:::i;:::-;1253:44;;;;:::i;:::-;1247:50;;1178:126;:::o;1788:160::-;1868:6;;;;;;;;;;1854:20;;:10;:20;;;1846:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1930:11;1920:9;;:21;;;;;;;;;;;;;;;;;;1788:160;:::o;2388:191::-;2437:9;;;;;;;;;;;:22;;;2460:10;2479:4;2485:6;2437:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2526:6;2515:10;2507:26;;;;;;;;;;;;2566:6;2543:9;:21;2553:10;2543:21;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;2388:191;:::o;1020:152::-;1082:6;;;;;;;;;;1068:20;;:10;:20;;;1060:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1150:15;1138:11;:27;;;;1020:152::o;1310:140::-;1379:6;;;;;;;;;;1365:20;;:10;:20;;;1357:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;1437:6;1429:7;:14;;;;1310:140;:::o;2587:755::-;2671:6;;;;;;;;;;2657:20;;:10;:20;;;:46;;;;2694:9;;;;;;;;;;;2681:22;;:10;:22;;;2657:46;2649:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;2761:21;2813:14;;2800:11;;2784:15;:27;;;;:::i;:::-;2783:44;;;;:::i;:::-;2761:66;;2837:23;2913:3;2904:7;;2890:13;2876:9;:13;2886:2;2876:13;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;:35;;;;:::i;:::-;2875:41;;;;:::i;:::-;2861:9;:13;2871:2;2861:13;;;;;;;;;;;;;;;;:55;;;;:::i;:::-;2837:79;;2943:15;2935:6;:23;;2927:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;3026:15;3044:9;;;;;;;;;;;:19;;;3072:4;3044:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3026:52;;3106:7;3096:6;:17;;3088:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;3157:9;:13;3167:2;3157:13;;;;;;;;;;;;;;;;3150:6;:20;3147:114;;;3199:1;3185:9;:13;3195:2;3185:13;;;;;;;;;;;;;;;:15;;;;3147:114;;;3244:6;3229:9;:13;3239:2;3229:13;;;;;;;;;;;;;;;;:21;;;;;;;:::i;:::-;;;;;;;;3147:114;3271:9;;;;;;;;;;;:18;;;3290:2;3294:6;3271:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3327:6;3324:2;3316:18;;;;;;;;;;;;2639:703;;;2587:755;;:::o;88:117:4:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:104::-;2264:7;2293:24;2311:5;2293:24;:::i;:::-;2282:35;;2219:104;;;:::o;2329:138::-;2410:32;2436:5;2410:32;:::i;:::-;2403:5;2400:43;2390:71;;2457:1;2454;2447:12;2390:71;2329:138;:::o;2473:155::-;2527:5;2565:6;2552:20;2543:29;;2581:41;2616:5;2581:41;:::i;:::-;2473:155;;;;:::o;2634:490::-;2710:6;2718;2767:2;2755:9;2746:7;2742:23;2738:32;2735:119;;;2773:79;;:::i;:::-;2735:119;2893:1;2918:61;2971:7;2962:6;2951:9;2947:22;2918:61;:::i;:::-;2908:71;;2864:125;3028:2;3054:53;3099:7;3090:6;3079:9;3075:22;3054:53;:::i;:::-;3044:63;;2999:118;2634:490;;;;;:::o;3130:109::-;3180:7;3209:24;3227:5;3209:24;:::i;:::-;3198:35;;3130:109;;;:::o;3245:148::-;3331:37;3362:5;3331:37;:::i;:::-;3324:5;3321:48;3311:76;;3383:1;3380;3373:12;3311:76;3245:148;:::o;3399:165::-;3458:5;3496:6;3483:20;3474:29;;3512:46;3552:5;3512:46;:::i;:::-;3399:165;;;;:::o;3570:355::-;3642:6;3691:2;3679:9;3670:7;3666:23;3662:32;3659:119;;;3697:79;;:::i;:::-;3659:119;3817:1;3842:66;3900:7;3891:6;3880:9;3876:22;3842:66;:::i;:::-;3832:76;;3788:130;3570:355;;;;:::o;3931:474::-;3999:6;4007;4056:2;4044:9;4035:7;4031:23;4027:32;4024:119;;;4062:79;;:::i;:::-;4024:119;4182:1;4207:53;4252:7;4243:6;4232:9;4228:22;4207:53;:::i;:::-;4197:63;;4153:117;4309:2;4335:53;4380:7;4371:6;4360:9;4356:22;4335:53;:::i;:::-;4325:63;;4280:118;3931:474;;;;;:::o;4411:169::-;4495:11;4529:6;4524:3;4517:19;4569:4;4564:3;4560:14;4545:29;;4411:169;;;;:::o;4586:220::-;4726:34;4722:1;4714:6;4710:14;4703:58;4795:3;4790:2;4782:6;4778:15;4771:28;4586:220;:::o;4812:366::-;4954:3;4975:67;5039:2;5034:3;4975:67;:::i;:::-;4968:74;;5051:93;5140:3;5051:93;:::i;:::-;5169:2;5164:3;5160:12;5153:19;;4812:366;;;:::o;5184:419::-;5350:4;5388:2;5377:9;5373:18;5365:26;;5437:9;5431:4;5427:20;5423:1;5412:9;5408:17;5401:47;5465:131;5591:4;5465:131;:::i;:::-;5457:139;;5184:419;;;:::o;5609:118::-;5696:24;5714:5;5696:24;:::i;:::-;5691:3;5684:37;5609:118;;:::o;5733:222::-;5826:4;5864:2;5853:9;5849:18;5841:26;;5877:71;5945:1;5934:9;5930:17;5921:6;5877:71;:::i;:::-;5733:222;;;;:::o;5961:143::-;6018:5;6049:6;6043:13;6034:22;;6065:33;6092:5;6065:33;:::i;:::-;5961:143;;;;:::o;6110:351::-;6180:6;6229:2;6217:9;6208:7;6204:23;6200:32;6197:119;;;6235:79;;:::i;:::-;6197:119;6355:1;6380:64;6436:7;6427:6;6416:9;6412:22;6380:64;:::i;:::-;6370:74;;6326:128;6110:351;;;;:::o;6467:221::-;6607:34;6603:1;6595:6;6591:14;6584:58;6676:4;6671:2;6663:6;6659:15;6652:29;6467:221;:::o;6694:366::-;6836:3;6857:67;6921:2;6916:3;6857:67;:::i;:::-;6850:74;;6933:93;7022:3;6933:93;:::i;:::-;7051:2;7046:3;7042:12;7035:19;;6694:366;;;:::o;7066:419::-;7232:4;7270:2;7259:9;7255:18;7247:26;;7319:9;7313:4;7309:20;7305:1;7294:9;7290:17;7283:47;7347:131;7473:4;7347:131;:::i;:::-;7339:139;;7066:419;;;:::o;7491:173::-;7631:25;7627:1;7619:6;7615:14;7608:49;7491:173;:::o;7670:366::-;7812:3;7833:67;7897:2;7892:3;7833:67;:::i;:::-;7826:74;;7909:93;7998:3;7909:93;:::i;:::-;8027:2;8022:3;8018:12;8011:19;;7670:366;;;:::o;8042:419::-;8208:4;8246:2;8235:9;8231:18;8223:26;;8295:9;8289:4;8285:20;8281:1;8270:9;8266:17;8259:47;8323:131;8449:4;8323:131;:::i;:::-;8315:139;;8042:419;;;:::o;8467:220::-;8607:34;8603:1;8595:6;8591:14;8584:58;8676:3;8671:2;8663:6;8659:15;8652:28;8467:220;:::o;8693:366::-;8835:3;8856:67;8920:2;8915:3;8856:67;:::i;:::-;8849:74;;8932:93;9021:3;8932:93;:::i;:::-;9050:2;9045:3;9041:12;9034:19;;8693:366;;;:::o;9065:419::-;9231:4;9269:2;9258:9;9254:18;9246:26;;9318:9;9312:4;9308:20;9304:1;9293:9;9289:17;9282:47;9346:131;9472:4;9346:131;:::i;:::-;9338:139;;9065:419;;;:::o;9490:180::-;9538:77;9535:1;9528:88;9635:4;9632:1;9625:15;9659:4;9656:1;9649:15;9676:191;9716:4;9736:20;9754:1;9736:20;:::i;:::-;9731:25;;9770:20;9788:1;9770:20;:::i;:::-;9765:25;;9809:1;9806;9803:8;9800:34;;;9814:18;;:::i;:::-;9800:34;9859:1;9856;9852:9;9844:17;;9676:191;;;;:::o;9873:180::-;9921:77;9918:1;9911:88;10018:4;10015:1;10008:15;10042:4;10039:1;10032:15;10059:185;10099:1;10116:20;10134:1;10116:20;:::i;:::-;10111:25;;10150:20;10168:1;10150:20;:::i;:::-;10145:25;;10189:1;10179:35;;10194:18;;:::i;:::-;10179:35;10236:1;10233;10229:9;10224:14;;10059:185;;;;:::o;10250:180::-;10390:32;10386:1;10378:6;10374:14;10367:56;10250:180;:::o;10436:366::-;10578:3;10599:67;10663:2;10658:3;10599:67;:::i;:::-;10592:74;;10675:93;10764:3;10675:93;:::i;:::-;10793:2;10788:3;10784:12;10777:19;;10436:366;;;:::o;10808:419::-;10974:4;11012:2;11001:9;10997:18;10989:26;;11061:9;11055:4;11051:20;11047:1;11036:9;11032:17;11025:47;11089:131;11215:4;11089:131;:::i;:::-;11081:139;;10808:419;;;:::o;11233:442::-;11382:4;11420:2;11409:9;11405:18;11397:26;;11433:71;11501:1;11490:9;11486:17;11477:6;11433:71;:::i;:::-;11514:72;11582:2;11571:9;11567:18;11558:6;11514:72;:::i;:::-;11596;11664:2;11653:9;11649:18;11640:6;11596:72;:::i;:::-;11233:442;;;;;;:::o;11681:90::-;11715:7;11758:5;11751:13;11744:21;11733:32;;11681:90;;;:::o;11777:116::-;11847:21;11862:5;11847:21;:::i;:::-;11840:5;11837:32;11827:60;;11883:1;11880;11873:12;11827:60;11777:116;:::o;11899:137::-;11953:5;11984:6;11978:13;11969:22;;12000:30;12024:5;12000:30;:::i;:::-;11899:137;;;;:::o;12042:345::-;12109:6;12158:2;12146:9;12137:7;12133:23;12129:32;12126:119;;;12164:79;;:::i;:::-;12126:119;12284:1;12309:61;12362:7;12353:6;12342:9;12338:22;12309:61;:::i;:::-;12299:71;;12255:125;12042:345;;;;:::o;12393:305::-;12433:3;12452:20;12470:1;12452:20;:::i;:::-;12447:25;;12486:20;12504:1;12486:20;:::i;:::-;12481:25;;12640:1;12572:66;12568:74;12565:1;12562:81;12559:107;;;12646:18;;:::i;:::-;12559:107;12690:1;12687;12683:9;12676:16;;12393:305;;;;:::o;12704:178::-;12844:30;12840:1;12832:6;12828:14;12821:54;12704:178;:::o;12888:366::-;13030:3;13051:67;13115:2;13110:3;13051:67;:::i;:::-;13044:74;;13127:93;13216:3;13127:93;:::i;:::-;13245:2;13240:3;13236:12;13229:19;;12888:366;;;:::o;13260:419::-;13426:4;13464:2;13453:9;13449:18;13441:26;;13513:9;13507:4;13503:20;13499:1;13488:9;13484:17;13477:47;13541:131;13667:4;13541:131;:::i;:::-;13533:139;;13260:419;;;:::o;13685:228::-;13825:34;13821:1;13813:6;13809:14;13802:58;13894:11;13889:2;13881:6;13877:15;13870:36;13685:228;:::o;13919:366::-;14061:3;14082:67;14146:2;14141:3;14082:67;:::i;:::-;14075:74;;14158:93;14247:3;14158:93;:::i;:::-;14276:2;14271:3;14267:12;14260:19;;13919:366;;;:::o;14291:419::-;14457:4;14495:2;14484:9;14480:18;14472:26;;14544:9;14538:4;14534:20;14530:1;14519:9;14515:17;14508:47;14572:131;14698:4;14572:131;:::i;:::-;14564:139;;14291:419;;;:::o;14716:348::-;14756:7;14779:20;14797:1;14779:20;:::i;:::-;14774:25;;14813:20;14831:1;14813:20;:::i;:::-;14808:25;;15001:1;14933:66;14929:74;14926:1;14923:81;14918:1;14911:9;14904:17;14900:105;14897:131;;;15008:18;;:::i;:::-;14897:131;15056:1;15053;15049:9;15038:20;;14716:348;;;;:::o;15070:240::-;15210:34;15206:1;15198:6;15194:14;15187:58;15279:23;15274:2;15266:6;15262:15;15255:48;15070:240;:::o;15316:366::-;15458:3;15479:67;15543:2;15538:3;15479:67;:::i;:::-;15472:74;;15555:93;15644:3;15555:93;:::i;:::-;15673:2;15668:3;15664:12;15657:19;;15316:366;;;:::o;15688:419::-;15854:4;15892:2;15881:9;15877:18;15869:26;;15941:9;15935:4;15931:20;15927:1;15916:9;15912:17;15905:47;15969:131;16095:4;15969:131;:::i;:::-;15961:139;;15688:419;;;:::o;16113:168::-;16253:20;16249:1;16241:6;16237:14;16230:44;16113:168;:::o;16287:366::-;16429:3;16450:67;16514:2;16509:3;16450:67;:::i;:::-;16443:74;;16526:93;16615:3;16526:93;:::i;:::-;16644:2;16639:3;16635:12;16628:19;;16287:366;;;:::o;16659:419::-;16825:4;16863:2;16852:9;16848:18;16840:26;;16912:9;16906:4;16902:20;16898:1;16887:9;16883:17;16876:47;16940:131;17066:4;16940:131;:::i;:::-;16932:139;;16659:419;;;:::o;17084:332::-;17205:4;17243:2;17232:9;17228:18;17220:26;;17256:71;17324:1;17313:9;17309:17;17300:6;17256:71;:::i;:::-;17337:72;17405:2;17394:9;17390:18;17381:6;17337:72;:::i;:::-;17084:332;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "1252800",
"executionCost": "140442",
"totalCost": "1393242"
},
"external": {
"balanceOf(address)": "2930",
"collectorBalance()": "infinite",
"currentEpoch()": "infinite",
"deposit(uint256)": "infinite",
"setAPE(uint256)": "24775",
"setContract(address)": "27043",
"setEpochDuration(uint256)": "24732",
"setEpochStart()": "24490",
"setOperator(address)": "26911",
"setOwner(address)": "26890",
"withdraw(address,uint256)": "infinite",
"withdrawETH(address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"balanceOf(address)": "70a08231",
"collectorBalance()": "151ba800",
"currentEpoch()": "76671808",
"deposit(uint256)": "b6b55f25",
"setAPE(uint256)": "d6e6c27e",
"setContract(address)": "75f890ab",
"setEpochDuration(uint256)": "30024dfe",
"setEpochStart()": "cf4fe734",
"setOperator(address)": "b3ab15fb",
"setOwner(address)": "13af4035",
"withdraw(address,uint256)": "f3fef3a3",
"withdrawETH(address,uint256)": "4782f779"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "Deposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "Withdraw",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "collectorBalance",
"outputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "currentEpoch",
"outputs": [
{
"internalType": "uint256",
"name": "epoch",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newAPE",
"type": "uint256"
}
],
"name": "setAPE",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "contractAddress",
"type": "address"
}
],
"name": "setContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "setEpochDuration",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "setEpochStart",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOperator",
"type": "address"
}
],
"name": "setOperator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "setOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdrawETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
]
}
{
"compiler": {
"version": "0.8.10+commit.fc410830"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "Deposit",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "Withdraw",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "collectorBalance",
"outputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "currentEpoch",
"outputs": [
{
"internalType": "uint256",
"name": "epoch",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "newAPE",
"type": "uint256"
}
],
"name": "setAPE",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IERC20",
"name": "contractAddress",
"type": "address"
}
],
"name": "setContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "duration",
"type": "uint256"
}
],
"name": "setEpochDuration",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "setEpochStart",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOperator",
"type": "address"
}
],
"name": "setOperator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "setOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdrawETH",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/HeartCollector.sol": "HeartCollector"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
"keccak256": "0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2",
"license": "MIT",
"urls": [
"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824",
"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei"
]
},
"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
"keccak256": "0xc3d946432c0ddbb1f846a0d3985be71299df331b91d06732152117f62f0be2b5",
"license": "MIT",
"urls": [
"bzz-raw://4632c341a06ba5c079b51ca5a915efab4e6ab57735b37839b3e8365ff806a43e",
"dweb:/ipfs/QmTHT3xHYed2wajEoA5qu7ii2BxLpPhQZHwAhtLK5Z7ANK"
]
},
"@openzeppelin/contracts/utils/Address.sol": {
"keccak256": "0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87",
"license": "MIT",
"urls": [
"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58",
"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV"
]
},
"contracts/HeartCollector.sol": {
"keccak256": "0x5e443f30d9aee09b28910511573e88ac80dea384c3f60bc29413a4909ddf995f",
"license": "Humans Token AG",
"urls": [
"bzz-raw://29178ed947c44b80dacc5d21642cc602556f2b13c854206513baa552ef3e3a7f",
"dweb:/ipfs/Qmc56j7uRVTkFYEcxD1QSt2hdeKjm7LYBL5HvtGvn9WmCG"
]
}
},
"version": 1
}
// SPDX-License-Identifier: Humans Token AG
pragma solidity 0.8.10;
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
contract HeartCollector{
address private _owner;
address private _operator;
IERC20 private _contract;
uint256 private _epochStart;
uint256 private _epochDuration;
uint256 private _maxAPE;
mapping(address => uint) private _balances;
event Deposit(address indexed _from, uint256 indexed _amount);
event Withdraw(address indexed _to, uint256 indexed _amount);
constructor(){
_owner=msg.sender;
_operator=msg.sender;
_contract=IERC20(0x01BE23585060835E02B77ef475b0Cc51aA1e0709);
_epochStart=block.timestamp;
_epochDuration=60; //1 week
_maxAPE=2; //in percent
}
receive() payable external{
}
function setEpochDuration(uint256 duration)public{
require(msg.sender == _owner, "Only owner can set the epoch start");
_epochDuration=duration;
}
function setEpochStart()public{
require(msg.sender == _owner, "Only owner can set the epoch start");
_epochStart=block.timestamp;
}
function currentEpoch() public view returns (uint256 epoch){
epoch=(block.timestamp-_epochStart)/_epochDuration;
}
function setAPE(uint256 newAPE)public{
require(msg.sender == _owner, "Only owner can set a new APE");
_maxAPE=newAPE;
}
function withdrawETH(address payable to, uint256 amount)public{
require(msg.sender == _owner, "Only owner can send ETH");
to.transfer(amount);
}
function setOwner(address newOwner) public{
require(msg.sender == _owner, "Only owner can set a new operator");
_owner=newOwner;
}
function setOperator(address newOperator) public{
require(msg.sender == _owner, "Only owner can set a new owner");
_operator=newOperator;
}
function setContract(IERC20 contractAddress) public{
require(msg.sender == _owner, "Only owner can set a new contract");
_contract=contractAddress;
}
function balanceOf(address owner) public view returns (uint256 amount) {
amount=_balances[owner];
}
function collectorBalance() public view returns (uint256 balance){
balance = _contract.balanceOf(address(this));
}
function deposit(uint256 amount) public{
_contract.transferFrom(msg.sender,address(this),amount);
emit Deposit(msg.sender,amount);
_balances[msg.sender]+=amount;
}
function withdraw(address to, uint256 amount) public{
require(msg.sender == _owner || msg.sender ==_operator, "Only owner or operator can withdraw funds");
uint256 epochsElapsed=(block.timestamp-_epochStart)/_epochDuration;
uint256 maxWithdrawable=_balances[to]+(_balances[to]*epochsElapsed*_maxAPE)/100;
require(amount<=maxWithdrawable,"The amount does not match the max reward calculations");
uint256 balance = _contract.balanceOf(address(this));
require(amount <= balance, "Insufficient funds");
if(amount>_balances[to]){
_balances[to]=0;
}else{
_balances[to]-=amount;
}
_contract.transfer(to, amount);
emit Deposit(to,amount);
}
}
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithEthers script...')
const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner()
let abi = ["function approve(address _spender, uint256 _value) public returns (bool success)"]
let contract = new ethers.Contract("0x01BE23585060835E02B77ef475b0Cc51aA1e0709", abi, signer)
await contract.approve("0xb0Ad8f75704E90A8c95cF004b1EEDb9D8EbDA64b",1000000)
} catch (e) {
console.log(e.message)
}
})()
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithEthers script...')
const contractName = 'HeartCollector' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
// 'web3Provider' is a remix global variable object
const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner()
let factory = new ethers.ContractFactory(metadata.abi, metadata.data.bytecode.object, signer);
let contract = await factory.deploy(...constructorArgs);
console.log('Contract Address: ', contract.address);
// The contract is NOT deployed yet; we must wait until it is mined
await contract.deployed()
console.log('Deployment successful.')
} catch (e) {
console.log(e.message)
}
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment