Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jahvi/bde890f66db54fabdb3a73e9a2b3b508 to your computer and use it in GitHub Desktop.
Save jahvi/bde890f66db54fabdb3a73e9a2b3b508 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.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
{
"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": {
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"owner()": "8da5cb5b",
"renounceOwnership()": "715018a6",
"transferOwnership(address)": "f2fde38b"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.",
"kind": "dev",
"methods": {
"constructor": {
"details": "Initializes the contract setting the deployer as the initial owner."
},
"owner()": {
"details": "Returns the address of the current owner."
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
".deps/github/OpenZeppelin/openzeppelin-contracts/contracts/access/Ownable.sol": "Ownable"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
".deps/github/OpenZeppelin/openzeppelin-contracts/contracts/access/Ownable.sol": {
"keccak256": "0x6bb804a310218875e89d12c053e94a13a4607cdf7cc2052f3e52bd32a0dc50a1",
"license": "MIT",
"urls": [
"bzz-raw://b2ebbbe6d0011175bd9e7268b83de3f9c2f9d8d4cbfbaef12aff977d7d727163",
"dweb:/ipfs/Qmd5c7Vxtis9wzkDNhxwc6A2QT5H9xn9kfjhx7qx44vpro"
]
},
".deps/github/OpenZeppelin/openzeppelin-contracts/contracts/utils/Context.sol": {
"keccak256": "0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f",
"license": "MIT",
"urls": [
"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c",
"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_setOwner(_msgSender());
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./IERC1155.sol";
import "./IERC1155Receiver.sol";
import "./extensions/IERC1155MetadataURI.sol";
import "../../utils/Address.sol";
import "../../utils/Context.sol";
import "../../utils/introspection/ERC165.sol";
/**
* @dev Implementation of the basic standard multi-token.
* See https://eips.ethereum.org/EIPS/eip-1155
* Originally based on code by Enjin: https://github.com/enjin/erc-1155
*
* _Available since v3.1._
*/
contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI {
using Address for address;
// Mapping from token ID to account balances
mapping(uint256 => mapping(address => uint256)) private _balances;
// Mapping from account to operator approvals
mapping(address => mapping(address => bool)) private _operatorApprovals;
// Used as the URI for all token types by relying on ID substitution, e.g. https://token-cdn-domain/{id}.json
string private _uri;
/**
* @dev See {_setURI}.
*/
constructor(string memory uri_) {
_setURI(uri_);
}
/**
* @dev See {IERC165-supportsInterface}.
*/
function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
return
interfaceId == type(IERC1155).interfaceId ||
interfaceId == type(IERC1155MetadataURI).interfaceId ||
super.supportsInterface(interfaceId);
}
/**
* @dev See {IERC1155MetadataURI-uri}.
*
* This implementation returns the same URI for *all* token types. It relies
* on the token type ID substitution mechanism
* https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
*
* Clients calling this function must replace the `\{id\}` substring with the
* actual token type ID.
*/
function uri(uint256) public view virtual override returns (string memory) {
return _uri;
}
/**
* @dev See {IERC1155-balanceOf}.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function balanceOf(address account, uint256 id) public view virtual override returns (uint256) {
require(account != address(0), "ERC1155: balance query for the zero address");
return _balances[id][account];
}
/**
* @dev See {IERC1155-balanceOfBatch}.
*
* Requirements:
*
* - `accounts` and `ids` must have the same length.
*/
function balanceOfBatch(address[] memory accounts, uint256[] memory ids)
public
view
virtual
override
returns (uint256[] memory)
{
require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch");
uint256[] memory batchBalances = new uint256[](accounts.length);
for (uint256 i = 0; i < accounts.length; ++i) {
batchBalances[i] = balanceOf(accounts[i], ids[i]);
}
return batchBalances;
}
/**
* @dev See {IERC1155-setApprovalForAll}.
*/
function setApprovalForAll(address operator, bool approved) public virtual override {
require(_msgSender() != operator, "ERC1155: setting approval status for self");
_operatorApprovals[_msgSender()][operator] = approved;
emit ApprovalForAll(_msgSender(), operator, approved);
}
/**
* @dev See {IERC1155-isApprovedForAll}.
*/
function isApprovedForAll(address account, address operator) public view virtual override returns (bool) {
return _operatorApprovals[account][operator];
}
/**
* @dev See {IERC1155-safeTransferFrom}.
*/
function safeTransferFrom(
address from,
address to,
uint256 id,
uint256 amount,
bytes memory data
) public virtual override {
require(
from == _msgSender() || isApprovedForAll(from, _msgSender()),
"ERC1155: caller is not owner nor approved"
);
_safeTransferFrom(from, to, id, amount, data);
}
/**
* @dev See {IERC1155-safeBatchTransferFrom}.
*/
function safeBatchTransferFrom(
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) public virtual override {
require(
from == _msgSender() || isApprovedForAll(from, _msgSender()),
"ERC1155: transfer caller is not owner nor approved"
);
_safeBatchTransferFrom(from, to, ids, amounts, data);
}
/**
* @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - `from` must have a balance of tokens of type `id` of at least `amount`.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function _safeTransferFrom(
address from,
address to,
uint256 id,
uint256 amount,
bytes memory data
) internal virtual {
require(to != address(0), "ERC1155: transfer to the zero address");
address operator = _msgSender();
_beforeTokenTransfer(operator, from, to, _asSingletonArray(id), _asSingletonArray(amount), data);
uint256 fromBalance = _balances[id][from];
require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
unchecked {
_balances[id][from] = fromBalance - amount;
}
_balances[id][to] += amount;
emit TransferSingle(operator, from, to, id, amount);
_doSafeTransferAcceptanceCheck(operator, from, to, id, amount, data);
}
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_safeTransferFrom}.
*
* Emits a {TransferBatch} event.
*
* Requirements:
*
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function _safeBatchTransferFrom(
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {
require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
require(to != address(0), "ERC1155: transfer to the zero address");
address operator = _msgSender();
_beforeTokenTransfer(operator, from, to, ids, amounts, data);
for (uint256 i = 0; i < ids.length; ++i) {
uint256 id = ids[i];
uint256 amount = amounts[i];
uint256 fromBalance = _balances[id][from];
require(fromBalance >= amount, "ERC1155: insufficient balance for transfer");
unchecked {
_balances[id][from] = fromBalance - amount;
}
_balances[id][to] += amount;
}
emit TransferBatch(operator, from, to, ids, amounts);
_doSafeBatchTransferAcceptanceCheck(operator, from, to, ids, amounts, data);
}
/**
* @dev Sets a new URI for all token types, by relying on the token type ID
* substitution mechanism
* https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP].
*
* By this mechanism, any occurrence of the `\{id\}` substring in either the
* URI or any of the amounts in the JSON file at said URI will be replaced by
* clients with the token type ID.
*
* For example, the `https://token-cdn-domain/\{id\}.json` URI would be
* interpreted by clients as
* `https://token-cdn-domain/000000000000000000000000000000000000000000000000000000000004cce0.json`
* for token type ID 0x4cce0.
*
* See {uri}.
*
* Because these URIs cannot be meaningfully represented by the {URI} event,
* this function emits no events.
*/
function _setURI(string memory newuri) internal virtual {
_uri = newuri;
}
/**
* @dev Creates `amount` tokens of token type `id`, and assigns them to `account`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - If `account` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function _mint(
address account,
uint256 id,
uint256 amount,
bytes memory data
) internal virtual {
require(account != address(0), "ERC1155: mint to the zero address");
address operator = _msgSender();
_beforeTokenTransfer(operator, address(0), account, _asSingletonArray(id), _asSingletonArray(amount), data);
_balances[id][account] += amount;
emit TransferSingle(operator, address(0), account, id, amount);
_doSafeTransferAcceptanceCheck(operator, address(0), account, id, amount, data);
}
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_mint}.
*
* Requirements:
*
* - `ids` and `amounts` must have the same length.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function _mintBatch(
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {
require(to != address(0), "ERC1155: mint to the zero address");
require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
address operator = _msgSender();
_beforeTokenTransfer(operator, address(0), to, ids, amounts, data);
for (uint256 i = 0; i < ids.length; i++) {
_balances[ids[i]][to] += amounts[i];
}
emit TransferBatch(operator, address(0), to, ids, amounts);
_doSafeBatchTransferAcceptanceCheck(operator, address(0), to, ids, amounts, data);
}
/**
* @dev Destroys `amount` tokens of token type `id` from `account`
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens of token type `id`.
*/
function _burn(
address account,
uint256 id,
uint256 amount
) internal virtual {
require(account != address(0), "ERC1155: burn from the zero address");
address operator = _msgSender();
_beforeTokenTransfer(operator, account, address(0), _asSingletonArray(id), _asSingletonArray(amount), "");
uint256 accountBalance = _balances[id][account];
require(accountBalance >= amount, "ERC1155: burn amount exceeds balance");
unchecked {
_balances[id][account] = accountBalance - amount;
}
emit TransferSingle(operator, account, address(0), id, amount);
}
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {_burn}.
*
* Requirements:
*
* - `ids` and `amounts` must have the same length.
*/
function _burnBatch(
address account,
uint256[] memory ids,
uint256[] memory amounts
) internal virtual {
require(account != address(0), "ERC1155: burn from the zero address");
require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch");
address operator = _msgSender();
_beforeTokenTransfer(operator, account, address(0), ids, amounts, "");
for (uint256 i = 0; i < ids.length; i++) {
uint256 id = ids[i];
uint256 amount = amounts[i];
uint256 accountBalance = _balances[id][account];
require(accountBalance >= amount, "ERC1155: burn amount exceeds balance");
unchecked {
_balances[id][account] = accountBalance - amount;
}
}
emit TransferBatch(operator, account, address(0), ids, amounts);
}
/**
* @dev Hook that is called before any token transfer. This includes minting
* and burning, as well as batched variants.
*
* The same hook is called on both single and batched variants. For single
* transfers, the length of the `id` and `amount` arrays will be 1.
*
* Calling conditions (for each `id` and `amount` pair):
*
* - When `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* of token type `id` will be transferred to `to`.
* - When `from` is zero, `amount` tokens of token type `id` will be minted
* for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens of token type `id`
* will be burned.
* - `from` and `to` are never both zero.
* - `ids` and `amounts` have the same, non-zero length.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address operator,
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual {}
function _doSafeTransferAcceptanceCheck(
address operator,
address from,
address to,
uint256 id,
uint256 amount,
bytes memory data
) private {
if (to.isContract()) {
try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) {
if (response != IERC1155Receiver.onERC1155Received.selector) {
revert("ERC1155: ERC1155Receiver rejected tokens");
}
} catch Error(string memory reason) {
revert(reason);
} catch {
revert("ERC1155: transfer to non ERC1155Receiver implementer");
}
}
}
function _doSafeBatchTransferAcceptanceCheck(
address operator,
address from,
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) private {
if (to.isContract()) {
try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns (
bytes4 response
) {
if (response != IERC1155Receiver.onERC1155BatchReceived.selector) {
revert("ERC1155: ERC1155Receiver rejected tokens");
}
} catch Error(string memory reason) {
revert(reason);
} catch {
revert("ERC1155: transfer to non ERC1155Receiver implementer");
}
}
}
function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) {
uint256[] memory array = new uint256[](1);
array[0] = element;
return array;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../ERC1155.sol";
/**
* @dev Extension of ERC1155 that adds tracking of total supply per id.
*
* Useful for scenarios where Fungible and Non-fungible tokens have to be
* clearly identified. Note: While a totalSupply of 1 might mean the
* corresponding is an NFT, there is no guarantees that no other token with the
* same id are not going to be minted.
*/
abstract contract ERC1155Supply is ERC1155 {
mapping(uint256 => uint256) private _totalSupply;
/**
* @dev Total amount of tokens in with a given id.
*/
function totalSupply(uint256 id) public view virtual returns (uint256) {
return _totalSupply[id];
}
/**
* @dev Indicates weither any token exist with a given id, or not.
*/
function exists(uint256 id) public view virtual returns (bool) {
return ERC1155Supply.totalSupply(id) > 0;
}
/**
* @dev See {ERC1155-_mint}.
*/
function _mint(
address account,
uint256 id,
uint256 amount,
bytes memory data
) internal virtual override {
super._mint(account, id, amount, data);
_totalSupply[id] += amount;
}
/**
* @dev See {ERC1155-_mintBatch}.
*/
function _mintBatch(
address to,
uint256[] memory ids,
uint256[] memory amounts,
bytes memory data
) internal virtual override {
super._mintBatch(to, ids, amounts, data);
for (uint256 i = 0; i < ids.length; ++i) {
_totalSupply[ids[i]] += amounts[i];
}
}
/**
* @dev See {ERC1155-_burn}.
*/
function _burn(
address account,
uint256 id,
uint256 amount
) internal virtual override {
super._burn(account, id, amount);
_totalSupply[id] -= amount;
}
/**
* @dev See {ERC1155-_burnBatch}.
*/
function _burnBatch(
address account,
uint256[] memory ids,
uint256[] memory amounts
) internal virtual override {
super._burnBatch(account, ids, amounts);
for (uint256 i = 0; i < ids.length; ++i) {
_totalSupply[ids[i]] -= amounts[i];
}
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../IERC1155.sol";
/**
* @dev Interface of the optional ERC1155MetadataExtension interface, as defined
* in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].
*
* _Available since v3.1._
*/
interface IERC1155MetadataURI is IERC1155 {
/**
* @dev Returns the URI for token type `id`.
*
* If the `\{id\}` substring is present in the URI, it must be replaced by
* clients with the actual token type ID.
*/
function uri(uint256 id) external view returns (string memory);
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../../utils/introspection/IERC165.sol";
/**
* @dev Required interface of an ERC1155 compliant contract, as defined in the
* https://eips.ethereum.org/EIPS/eip-1155[EIP].
*
* _Available since v3.1._
*/
interface IERC1155 is IERC165 {
/**
* @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.
*/
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);
/**
* @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
* transfers.
*/
event TransferBatch(
address indexed operator,
address indexed from,
address indexed to,
uint256[] ids,
uint256[] values
);
/**
* @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
* `approved`.
*/
event ApprovalForAll(address indexed account, address indexed operator, bool approved);
/**
* @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
*
* If an {URI} event was emitted for `id`, the standard
* https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
* returned by {IERC1155MetadataURI-uri}.
*/
event URI(string value, uint256 indexed id);
/**
* @dev Returns the amount of tokens of token type `id` owned by `account`.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function balanceOf(address account, uint256 id) external view returns (uint256);
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
*
* Requirements:
*
* - `accounts` and `ids` must have the same length.
*/
function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids)
external
view
returns (uint256[] memory);
/**
* @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
*
* Emits an {ApprovalForAll} event.
*
* Requirements:
*
* - `operator` cannot be the caller.
*/
function setApprovalForAll(address operator, bool approved) external;
/**
* @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
*
* See {setApprovalForAll}.
*/
function isApprovedForAll(address account, address operator) external view returns (bool);
/**
* @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
*
* Emits a {TransferSingle} event.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}.
* - `from` must have a balance of tokens of type `id` of at least `amount`.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
* acceptance magic value.
*/
function safeTransferFrom(
address from,
address to,
uint256 id,
uint256 amount,
bytes calldata data
) external;
/**
* @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
*
* Emits a {TransferBatch} event.
*
* Requirements:
*
* - `ids` and `amounts` must have the same length.
* - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
* acceptance magic value.
*/
function safeBatchTransferFrom(
address from,
address to,
uint256[] calldata ids,
uint256[] calldata amounts,
bytes calldata data
) external;
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../../utils/introspection/IERC165.sol";
/**
* @dev _Available since v3.1._
*/
interface IERC1155Receiver is IERC165 {
/**
@dev Handles the receipt of a single ERC1155 token type. This function is
called at the end of a `safeTransferFrom` after the balance has been updated.
To accept the transfer, this must return
`bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
(i.e. 0xf23a6e61, or its own function selector).
@param operator The address which initiated the transfer (i.e. msg.sender)
@param from The address which previously owned the token
@param id The ID of the token being transferred
@param value The amount of tokens being transferred
@param data Additional data with no specified format
@return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed
*/
function onERC1155Received(
address operator,
address from,
uint256 id,
uint256 value,
bytes calldata data
) external returns (bytes4);
/**
@dev Handles the receipt of a multiple ERC1155 token types. This function
is called at the end of a `safeBatchTransferFrom` after the balances have
been updated. To accept the transfer(s), this must return
`bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
(i.e. 0xbc197c81, or its own function selector).
@param operator The address which initiated the batch transfer (i.e. msg.sender)
@param from The address which previously owned the token
@param ids An array containing ids of each token being transferred (order and length must match values array)
@param values An array containing amounts of each token being transferred (order and length must match ids array)
@param data Additional data with no specified format
@return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed
*/
function onERC1155BatchReceived(
address operator,
address from,
uint256[] calldata ids,
uint256[] calldata values,
bytes calldata data
) external returns (bytes4);
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @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
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize, which returns 0 for contracts in
// construction, since the code is only stored at the end of the
// constructor execution.
uint256 size;
assembly {
size := extcodesize(account)
}
return size > 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);
}
}
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./IERC165.sol";
/**
* @dev Implementation of the {IERC165} interface.
*
* Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
* for the additional interface id that will be supported. For example:
*
* ```solidity
* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
* }
* ```
*
* Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
*/
abstract contract ERC165 is IERC165 {
/**
* @dev See {IERC165-supportsInterface}.
*/
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IERC165).interfaceId;
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* Implementers can declare support of contract interfaces, which can then be
* queried by others ({ERC165Checker}).
*
* For an implementation, see {ERC165}.
*/
interface IERC165 {
/**
* @dev Returns true if this contract implements the interface defined by
* `interfaceId`. See the corresponding
* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
* to learn more about how these ids are created.
*
* This function call must use less than 30 000 gas.
*/
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads 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": {},
"generatedSources": [],
"linkReferences": {},
"object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122005a6c616d741b7b19773378dc6398157cf9f4d2b5e212079523fc97bfd40828864736f6c63430008070033",
"opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV 0xA6 0xC6 AND 0xD7 COINBASE 0xB7 0xB1 SWAP8 PUSH20 0x378DC6398157CF9F4D2B5E212079523FC97BFD40 DUP3 DUP9 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "59:176:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122005a6c616d741b7b19773378dc6398157cf9f4d2b5e212079523fc97bfd40828864736f6c63430008070033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SDIV 0xA6 0xC6 AND 0xD7 COINBASE 0xB7 0xB1 SWAP8 PUSH20 0x378DC6398157CF9F4D2B5E212079523FC97BFD40 DUP3 DUP9 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "59:176:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "97",
"totalCost": "17297"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/@rarible/royalties/contracts/artifacts/LibRoyaltiesV2.sol": "LibRoyaltiesV2"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/@rarible/royalties/contracts/artifacts/LibRoyaltiesV2.sol": {
"keccak256": "0xa5c36e0d8e88b4512280a401de34d09146bc4544ac39d10fc8a4c1c19752f5e6",
"license": "MIT",
"urls": [
"bzz-raw://405ee2a49f07f99f014d20006136f2dd9e45414d5a6d897edaf6774485be8b2f",
"dweb:/ipfs/QmWyZZG1DUSrcmF3faDK7cny2m5rQ63Pqit8UFK2e5prrX"
]
}
},
"version": 1
}
{
"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": {},
"generatedSources": [],
"linkReferences": {},
"object": "60dc610052600b82828239805160001a607314610045577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806364d4c819146038575b600080fd5b603e6052565b604051604991906083565b60405180910390f35b7f397e04204c1e1a60ee8724b71f8244e10ab5f2e9009854d80f602bda21b59ebb81565b607d81609c565b82525050565b6000602082019050609660008301846076565b92915050565b600081905091905056fea2646970667358221220526ed7935ede5815fcdb75c4d719460e4b7e696a11bb6930fec825c7ae048dae64736f6c63430008070033",
"opcodes": "PUSH1 0xDC PUSH2 0x52 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x45 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x64D4C819 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3E PUSH1 0x52 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x49 SWAP2 SWAP1 PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0x397E04204C1E1A60EE8724B71F8244E10AB5F2E9009854D80F602BDA21B59EBB DUP2 JUMP JUMPDEST PUSH1 0x7D DUP2 PUSH1 0x9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x96 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x76 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE PUSH15 0xD7935EDE5815FCDB75C4D719460E4B PUSH31 0x696A11BB6930FEC825C7AE048DAE64736F6C63430008070033000000000000 ",
"sourceMap": "64:340:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@TYPE_HASH_6": {
"entryPoint": 82,
"id": 6,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack_library": {
"entryPoint": 118,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_library_reversed": {
"entryPoint": 131,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 156,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:463:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "80:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "97:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "120:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "102:17:1"
},
"nodeType": "YulFunctionCall",
"src": "102:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "90:6:1"
},
"nodeType": "YulFunctionCall",
"src": "90:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "90:37:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack_library",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "68:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "75:3:1",
"type": ""
}
],
"src": "7:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "245:132:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "255:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "267:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "278:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "263:3:1"
},
"nodeType": "YulFunctionCall",
"src": "263:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "255:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "343:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "356:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "367:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "352:3:1"
},
"nodeType": "YulFunctionCall",
"src": "352:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack_library",
"nodeType": "YulIdentifier",
"src": "291:51:1"
},
"nodeType": "YulFunctionCall",
"src": "291:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "291:79:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_library_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "217:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "229:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "240:4:1",
"type": ""
}
],
"src": "139:238:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "428:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "438:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "449:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "438:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "410:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "420:7:1",
"type": ""
}
],
"src": "383:77:1"
}
]
},
"contents": "{\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack_library(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_library_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack_library(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806364d4c819146038575b600080fd5b603e6052565b604051604991906083565b60405180910390f35b7f397e04204c1e1a60ee8724b71f8244e10ab5f2e9009854d80f602bda21b59ebb81565b607d81609c565b82525050565b6000602082019050609660008301846076565b92915050565b600081905091905056fea2646970667358221220526ed7935ede5815fcdb75c4d719460e4b7e696a11bb6930fec825c7ae048dae64736f6c63430008070033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x64D4C819 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3E PUSH1 0x52 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x49 SWAP2 SWAP1 PUSH1 0x83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0x397E04204C1E1A60EE8724B71F8244E10AB5F2E9009854D80F602BDA21B59EBB DUP2 JUMP JUMPDEST PUSH1 0x7D DUP2 PUSH1 0x9C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x96 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x76 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSTORE PUSH15 0xD7935EDE5815FCDB75C4D719460E4B PUSH31 0x696A11BB6930FEC825C7AE048DAE64736F6C63430008070033000000000000 ",
"sourceMap": "64:340:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;86:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;122:47;86:83;:::o;7:126:1:-;102:24;120:5;102:24;:::i;:::-;97:3;90:37;7:126;;:::o;139:238::-;240:4;278:2;267:9;263:18;255:26;;291:79;367:1;356:9;352:17;343:6;291:79;:::i;:::-;139:238;;;;:::o;383:77::-;420:7;449:5;438:16;;383:77;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "44000",
"executionCost": "121",
"totalCost": "44121"
},
"external": {
"TYPE_HASH()": "291"
},
"internal": {
"hash(struct LibPart.Part memory)": "infinite"
}
},
"methodIdentifiers": {
"TYPE_HASH()": "64d4c819"
}
},
"abi": [
{
"inputs": [],
"name": "TYPE_HASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "TYPE_HASH",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/@rarible/royalties/contracts/LibPart.sol": "LibPart"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/@rarible/royalties/contracts/LibPart.sol": {
"keccak256": "0x3b8a026906122edc0f6d8127a1a6b6ca3bc9f9d24757c6f1b141ec42cc115c9d",
"license": "MIT pragma",
"urls": [
"bzz-raw://29371804203c6d4533b7d6fd6fb2b8870c1a26f2aebd06014a6f3e55c65d2eb3",
"dweb:/ipfs/QmYij1hG1ZSrkJ57G199vfpUK5rtdYdDxTmKe4W3c5LgHE"
]
}
},
"version": 1
}
{
"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": {},
"generatedSources": [],
"linkReferences": {},
"object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209eb5fa2c0569ff4c30d2f6eee4b776efc996f9d3060bc4420bd12ee428fc004364736f6c63430008070033",
"opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 0xB5 STATICCALL 0x2C SDIV PUSH10 0xFF4C30D2F6EEE4B776EF 0xC9 SWAP7 0xF9 0xD3 MOD SIGNEXTEND 0xC4 TIMESTAMP SIGNEXTEND 0xD1 0x2E 0xE4 0x28 0xFC STOP NUMBER PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "59:176:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209eb5fa2c0569ff4c30d2f6eee4b776efc996f9d3060bc4420bd12ee428fc004364736f6c63430008070033",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP15 0xB5 STATICCALL 0x2C SDIV PUSH10 0xFF4C30D2F6EEE4B776EF 0xC9 SWAP7 0xF9 0xD3 MOD SIGNEXTEND 0xC4 TIMESTAMP SIGNEXTEND 0xD1 0x2E 0xE4 0x28 0xFC STOP NUMBER PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "59:176:0:-:0;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17200",
"executionCost": "97",
"totalCost": "17297"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/@rarible/royalties/contracts/LibRoyaltiesV2.sol": "LibRoyaltiesV2"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/@rarible/royalties/contracts/LibRoyaltiesV2.sol": {
"keccak256": "0xa5c36e0d8e88b4512280a401de34d09146bc4544ac39d10fc8a4c1c19752f5e6",
"license": "MIT",
"urls": [
"bzz-raw://405ee2a49f07f99f014d20006136f2dd9e45414d5a6d897edaf6774485be8b2f",
"dweb:/ipfs/QmWyZZG1DUSrcmF3faDK7cny2m5rQ63Pqit8UFK2e5prrX"
]
}
},
"version": 1
}
{
"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": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"getRaribleV2Royalties(uint256)": "cad96cca"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"components": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"indexed": false,
"internalType": "struct LibPart.Part[]",
"name": "royalties",
"type": "tuple[]"
}
],
"name": "RoyaltiesSet",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getRaribleV2Royalties",
"outputs": [
{
"components": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"internalType": "struct LibPart.Part[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"components": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"indexed": false,
"internalType": "struct LibPart.Part[]",
"name": "royalties",
"type": "tuple[]"
}
],
"name": "RoyaltiesSet",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getRaribleV2Royalties",
"outputs": [
{
"components": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"internalType": "struct LibPart.Part[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/@rarible/royalties/contracts/RoyaltiesV2.sol": "RoyaltiesV2"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/@rarible/royalties/contracts/LibPart.sol": {
"keccak256": "0x3b8a026906122edc0f6d8127a1a6b6ca3bc9f9d24757c6f1b141ec42cc115c9d",
"license": "MIT pragma",
"urls": [
"bzz-raw://29371804203c6d4533b7d6fd6fb2b8870c1a26f2aebd06014a6f3e55c65d2eb3",
"dweb:/ipfs/QmYij1hG1ZSrkJ57G199vfpUK5rtdYdDxTmKe4W3c5LgHE"
]
},
"contracts/@rarible/royalties/contracts/RoyaltiesV2.sol": {
"keccak256": "0x3bb78ba72f4c01e489245dc22519a9aac2abe03ce87dbfbdbbf3f0fc17011978",
"license": "MIT",
"urls": [
"bzz-raw://c2c00a7d54cea79f8f0019266bd1026a19475c53da4b0e296bfbe6dc2dd7cd0a",
"dweb:/ipfs/QmUneoLYmQSB7Ph4b6g5887kZPL9jVndrDFyKcurHakfPB"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../LibPart.sol";
abstract contract AbstractRoyalties {
mapping (uint256 => LibPart.Part[]) public royalties;
function _saveRoyalties(uint256 _id, LibPart.Part[] memory _royalties) internal {
for (uint i = 0; i < _royalties.length; i++) {
require(_royalties[i].account != address(0x0), "Recipient should be present");
require(_royalties[i].value != 0, "Royalty value should be positive");
royalties[_id].push(_royalties[i]);
}
_onRoyaltiesSet(_id, _royalties);
}
function _updateAccount(uint256 _id, address _from, address _to) internal {
uint length = royalties[_id].length;
for(uint i = 0; i < length; i++) {
if (royalties[_id][i].account == _from) {
royalties[_id][i].account = payable(address(uint160(_to)));
}
}
}
function _onRoyaltiesSet(uint256 _id, LibPart.Part[] memory _royalties) virtual internal;
}
{
"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": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"royalties(uint256,uint256)": "8924af74"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "royalties",
"outputs": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "royalties",
"outputs": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/@rarible/royalties/contracts/impl/AbstractRoyalties.sol": "AbstractRoyalties"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/@rarible/royalties/contracts/LibPart.sol": {
"keccak256": "0x3b8a026906122edc0f6d8127a1a6b6ca3bc9f9d24757c6f1b141ec42cc115c9d",
"license": "MIT pragma",
"urls": [
"bzz-raw://29371804203c6d4533b7d6fd6fb2b8870c1a26f2aebd06014a6f3e55c65d2eb3",
"dweb:/ipfs/QmYij1hG1ZSrkJ57G199vfpUK5rtdYdDxTmKe4W3c5LgHE"
]
},
"contracts/@rarible/royalties/contracts/impl/AbstractRoyalties.sol": {
"keccak256": "0x0a27f53c218393ec527c874d6f2c09672dde826d3d9add271da9c5e307c77b3c",
"license": "MIT",
"urls": [
"bzz-raw://ea5e4bb7371bfbb25e1f6741a986db2c53c1f7771226f657c4c0f83a458695b6",
"dweb:/ipfs/QmcpwQXzBm2DqVk1VGt5cof6zJaHcJFd43dRP86aNJBcxm"
]
}
},
"version": 1
}
{
"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": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061049f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80638924af741461003b578063cad96cca1461006c575b600080fd5b61005560048036038101906100509190610254565b61009c565b604051610063929190610375565b60405180910390f35b61008660048036038101906100819190610227565b610111565b604051610093919061039e565b60405180910390f35b600060205281600052604060002081815481106100b857600080fd5b90600052602060002001600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a90046bffffffffffffffffffffffff16905082565b6060600080838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610207578382906000526020600020016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505081526020019060010190610145565b505050509050919050565b60008135905061022181610452565b92915050565b60006020828403121561023d5761023c61044d565b5b600061024b84828501610212565b91505092915050565b6000806040838503121561026b5761026a61044d565b5b600061027985828601610212565b925050602061028a85828601610212565b9150509250929050565b60006102a08383610328565b60408301905092915050565b6102b5816103f9565b82525050565b6102c4816103f9565b82525050565b60006102d5826103d0565b6102df81856103e8565b93506102ea836103c0565b8060005b8381101561031b5781516103028882610294565b975061030d836103db565b9250506001810190506102ee565b5085935050505092915050565b60408201600082015161033e60008501826102ac565b5060208201516103516020850182610357565b50505050565b61036081610435565b82525050565b61036f81610435565b82525050565b600060408201905061038a60008301856102bb565b6103976020830184610366565b9392505050565b600060208201905081810360008301526103b881846102ca565b905092915050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b60006104048261040b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b600080fd5b61045b8161042b565b811461046657600080fd5b5056fea2646970667358221220657abac73a2f15ebfbe11ebfa579b3363b1ccf5e2dcc965e2aba45413b5f3ea064736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x49F DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8924AF74 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCAD96CCA EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x254 JUMP JUMPDEST PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x63 SWAP3 SWAP2 SWAP1 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x81 SWAP2 SWAP1 PUSH2 0x227 JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x0 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x207 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x145 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x221 DUP2 PUSH2 0x452 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23D JUMPI PUSH2 0x23C PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x24B DUP5 DUP3 DUP6 ADD PUSH2 0x212 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26B JUMPI PUSH2 0x26A PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x279 DUP6 DUP3 DUP7 ADD PUSH2 0x212 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28A DUP6 DUP3 DUP7 ADD PUSH2 0x212 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A0 DUP4 DUP4 PUSH2 0x328 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B5 DUP2 PUSH2 0x3F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2C4 DUP2 PUSH2 0x3F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D5 DUP3 PUSH2 0x3D0 JUMP JUMPDEST PUSH2 0x2DF DUP2 DUP6 PUSH2 0x3E8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2EA DUP4 PUSH2 0x3C0 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x31B JUMPI DUP2 MLOAD PUSH2 0x302 DUP9 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP8 POP PUSH2 0x30D DUP4 PUSH2 0x3DB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2EE JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x33E PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x2AC JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x351 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x357 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x360 DUP2 PUSH2 0x435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x36F DUP2 PUSH2 0x435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x38A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2BB JUMP JUMPDEST PUSH2 0x397 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x366 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3B8 DUP2 DUP5 PUSH2 0x2CA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x404 DUP3 PUSH2 0x40B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45B DUP2 PUSH2 0x42B JUMP JUMPDEST DUP2 EQ PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH6 0x7ABAC73A2F15 0xEB 0xFB 0xE1 0x1E 0xBF 0xA5 PUSH26 0xB3363B1CCF5E2DCC965E2ABA45413B5F3EA064736F6C63430008 SMOD STOP CALLER ",
"sourceMap": "121:360:3:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getRaribleV2Royalties_212": {
"entryPoint": 273,
"id": 212,
"parameterSlots": 1,
"returnSlots": 1
},
"@royalties_62": {
"entryPoint": 156,
"id": 62,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_t_uint256": {
"entryPoint": 530,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 551,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_uint256": {
"entryPoint": 596,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encodeUpdatedPos_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr": {
"entryPoint": 660,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_payable_to_t_address_payable": {
"entryPoint": 684,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_payable_to_t_address_payable_fromStack": {
"entryPoint": 699,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack": {
"entryPoint": 714,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr": {
"entryPoint": 808,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint96_to_t_uint96": {
"entryPoint": 855,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint96_to_t_uint96_fromStack": {
"entryPoint": 870,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address_payable_t_uint96__to_t_address_payable_t_uint96__fromStack_reversed": {
"entryPoint": 885,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 926,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_dataslot_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 960,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 976,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 987,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack": {
"entryPoint": 1000,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address_payable": {
"entryPoint": 1017,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1035,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1067,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint96": {
"entryPoint": 1077,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1101,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1106,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:5627:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:4",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:4"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:4"
},
"nodeType": "YulFunctionCall",
"src": "78:20:4"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:4"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "107:26:4"
},
"nodeType": "YulFunctionCall",
"src": "107:33:4"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:4"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:4",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:4",
"type": ""
}
],
"src": "7:139:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "218:263:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "264:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "266:77:4"
},
"nodeType": "YulFunctionCall",
"src": "266:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "266:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "239:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "248:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "235:3:4"
},
"nodeType": "YulFunctionCall",
"src": "235:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "260:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "231:3:4"
},
"nodeType": "YulFunctionCall",
"src": "231:32:4"
},
"nodeType": "YulIf",
"src": "228:119:4"
},
{
"nodeType": "YulBlock",
"src": "357:117:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "372:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "386:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "376:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "401:63:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "436:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "447:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "432:3:4"
},
"nodeType": "YulFunctionCall",
"src": "432:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "456:7:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "411:20:4"
},
"nodeType": "YulFunctionCall",
"src": "411:53:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "401:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "188:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "199:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "211:6:4",
"type": ""
}
],
"src": "152:329:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "570:391:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "616:83:4",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "618:77:4"
},
"nodeType": "YulFunctionCall",
"src": "618:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "618:79:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "591:7:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "600:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "587:3:4"
},
"nodeType": "YulFunctionCall",
"src": "587:23:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "612:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "583:3:4"
},
"nodeType": "YulFunctionCall",
"src": "583:32:4"
},
"nodeType": "YulIf",
"src": "580:119:4"
},
{
"nodeType": "YulBlock",
"src": "709:117:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "724:15:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "738:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "728:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "753:63:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "788:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "799:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "784:3:4"
},
"nodeType": "YulFunctionCall",
"src": "784:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "808:7:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "763:20:4"
},
"nodeType": "YulFunctionCall",
"src": "763:53:4"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "753:6:4"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "836:118:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "851:16:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "865:2:4",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "855:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "881:63:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "916:9:4"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "927:6:4"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "912:3:4"
},
"nodeType": "YulFunctionCall",
"src": "912:22:4"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "936:7:4"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "891:20:4"
},
"nodeType": "YulFunctionCall",
"src": "891:53:4"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "881:6:4"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "532:9:4",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "543:7:4",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "555:6:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "563:6:4",
"type": ""
}
],
"src": "487:474:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1087:139:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1171:6:4"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1179:3:4"
}
],
"functionName": {
"name": "abi_encode_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1097:73:4"
},
"nodeType": "YulFunctionCall",
"src": "1097:86:4"
},
"nodeType": "YulExpressionStatement",
"src": "1097:86:4"
},
{
"nodeType": "YulAssignment",
"src": "1192:28:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1210:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1215:4:4",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1206:3:4"
},
"nodeType": "YulFunctionCall",
"src": "1206:14:4"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "1192:10:4"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1060:6:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1068:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "1076:10:4",
"type": ""
}
],
"src": "967:259:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1303:61:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1320:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1351:5:4"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "1325:25:4"
},
"nodeType": "YulFunctionCall",
"src": "1325:32:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1313:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1313:45:4"
},
"nodeType": "YulExpressionStatement",
"src": "1313:45:4"
}
]
},
"name": "abi_encode_t_address_payable_to_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1291:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1298:3:4",
"type": ""
}
],
"src": "1232:132:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1451:61:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1468:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1499:5:4"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "1473:25:4"
},
"nodeType": "YulFunctionCall",
"src": "1473:32:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1461:6:4"
},
"nodeType": "YulFunctionCall",
"src": "1461:45:4"
},
"nodeType": "YulExpressionStatement",
"src": "1461:45:4"
}
]
},
"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1439:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1446:3:4",
"type": ""
}
],
"src": "1370:142:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1736:728:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1746:88:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1828:5:4"
}
],
"functionName": {
"name": "array_length_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1760:67:4"
},
"nodeType": "YulFunctionCall",
"src": "1760:74:4"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1750:6:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1843:113:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1944:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1949:6:4"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1850:93:4"
},
"nodeType": "YulFunctionCall",
"src": "1850:106:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1843:3:4"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1965:91:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2050:5:4"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1980:69:4"
},
"nodeType": "YulFunctionCall",
"src": "1980:76:4"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "1969:7:4",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2065:21:4",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "2079:7:4"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "2069:6:4",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2155:284:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2169:34:4",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "2196:6:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2190:5:4"
},
"nodeType": "YulFunctionCall",
"src": "2190:13:4"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "2173:13:4",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2216:110:4",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "2307:13:4"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2322:3:4"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2223:83:4"
},
"nodeType": "YulFunctionCall",
"src": "2223:103:4"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2216:3:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2339:90:4",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "2422:6:4"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2349:72:4"
},
"nodeType": "YulFunctionCall",
"src": "2349:80:4"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "2339:6:4"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2117:1:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2120:6:4"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2114:2:4"
},
"nodeType": "YulFunctionCall",
"src": "2114:13:4"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "2128:18:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2130:14:4",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2139:1:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2142:1:4",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2135:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2135:9:4"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2130:1:4"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "2099:14:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2101:10:4",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2110:1:4",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "2105:1:4",
"type": ""
}
]
}
]
},
"src": "2095:344:4"
},
{
"nodeType": "YulAssignment",
"src": "2448:10:4",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2455:3:4"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2448:3:4"
}
]
}
]
},
"name": "abi_encode_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1715:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1722:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1731:3:4",
"type": ""
}
],
"src": "1572:892:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2616:409:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2626:26:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2642:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2647:4:4",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2638:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2638:14:4"
},
"variables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2630:4:4",
"type": ""
}
]
},
{
"nodeType": "YulBlock",
"src": "2662:183:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2700:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2730:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2737:4:4",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2726:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2726:16:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2720:5:4"
},
"nodeType": "YulFunctionCall",
"src": "2720:23:4"
},
"variables": [
{
"name": "memberValue0",
"nodeType": "YulTypedName",
"src": "2704:12:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nodeType": "YulIdentifier",
"src": "2806:12:4"
},
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2824:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2829:4:4",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2820:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2820:14:4"
}
],
"functionName": {
"name": "abi_encode_t_address_payable_to_t_address_payable",
"nodeType": "YulIdentifier",
"src": "2756:49:4"
},
"nodeType": "YulFunctionCall",
"src": "2756:79:4"
},
"nodeType": "YulExpressionStatement",
"src": "2756:79:4"
}
]
},
{
"nodeType": "YulBlock",
"src": "2855:163:4",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2891:43:4",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2921:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2928:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2917:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2917:16:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2911:5:4"
},
"nodeType": "YulFunctionCall",
"src": "2911:23:4"
},
"variables": [
{
"name": "memberValue0",
"nodeType": "YulTypedName",
"src": "2895:12:4",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "memberValue0",
"nodeType": "YulIdentifier",
"src": "2979:12:4"
},
{
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2997:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3002:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2993:3:4"
},
"nodeType": "YulFunctionCall",
"src": "2993:14:4"
}
],
"functionName": {
"name": "abi_encode_t_uint96_to_t_uint96",
"nodeType": "YulIdentifier",
"src": "2947:31:4"
},
"nodeType": "YulFunctionCall",
"src": "2947:61:4"
},
"nodeType": "YulExpressionStatement",
"src": "2947:61:4"
}
]
}
]
},
"name": "abi_encode_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2603:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2610:3:4",
"type": ""
}
],
"src": "2520:505:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3084:52:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3101:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3123:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint96",
"nodeType": "YulIdentifier",
"src": "3106:16:4"
},
"nodeType": "YulFunctionCall",
"src": "3106:23:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3094:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3094:36:4"
},
"nodeType": "YulExpressionStatement",
"src": "3094:36:4"
}
]
},
"name": "abi_encode_t_uint96_to_t_uint96",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3072:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3079:3:4",
"type": ""
}
],
"src": "3031:105:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3205:52:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3222:3:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3244:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint96",
"nodeType": "YulIdentifier",
"src": "3227:16:4"
},
"nodeType": "YulFunctionCall",
"src": "3227:23:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3215:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3215:36:4"
},
"nodeType": "YulExpressionStatement",
"src": "3215:36:4"
}
]
},
"name": "abi_encode_t_uint96_to_t_uint96_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3193:5:4",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3200:3:4",
"type": ""
}
],
"src": "3142:115:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3403:220:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3413:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3425:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3436:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3421:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3421:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3413:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3509:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3522:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3533:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3518:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3518:17:4"
}
],
"functionName": {
"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
"nodeType": "YulIdentifier",
"src": "3449:59:4"
},
"nodeType": "YulFunctionCall",
"src": "3449:87:4"
},
"nodeType": "YulExpressionStatement",
"src": "3449:87:4"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3588:6:4"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3601:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3612:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3597:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3597:18:4"
}
],
"functionName": {
"name": "abi_encode_t_uint96_to_t_uint96_fromStack",
"nodeType": "YulIdentifier",
"src": "3546:41:4"
},
"nodeType": "YulFunctionCall",
"src": "3546:70:4"
},
"nodeType": "YulExpressionStatement",
"src": "3546:70:4"
}
]
},
"name": "abi_encode_tuple_t_address_payable_t_uint96__to_t_address_payable_t_uint96__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3367:9:4",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3379:6:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3387:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3398:4:4",
"type": ""
}
],
"src": "3263:360:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3817:265:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3827:26:4",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3839:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3850:2:4",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3835:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3835:18:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3827:4:4"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3874:9:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3885:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3870:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3870:17:4"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3893:4:4"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3899:9:4"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3889:3:4"
},
"nodeType": "YulFunctionCall",
"src": "3889:20:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3863:6:4"
},
"nodeType": "YulFunctionCall",
"src": "3863:47:4"
},
"nodeType": "YulExpressionStatement",
"src": "3863:47:4"
},
{
"nodeType": "YulAssignment",
"src": "3919:156:4",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4061:6:4"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4070:4:4"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3927:133:4"
},
"nodeType": "YulFunctionCall",
"src": "3927:148:4"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3919:4:4"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3789:9:4",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3801:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3812:4:4",
"type": ""
}
],
"src": "3629:453:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4128:35:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4138:19:4",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4154:2:4",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4148:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4148:9:4"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4138:6:4"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4121:6:4",
"type": ""
}
],
"src": "4088:75:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4261:60:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4271:11:4",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "4279:3:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4271:4:4"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4292:22:4",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "4304:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4309:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4300:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4300:14:4"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "4292:4:4"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "4248:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "4256:4:4",
"type": ""
}
],
"src": "4169:152:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4421:40:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4432:22:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4448:5:4"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4442:5:4"
},
"nodeType": "YulFunctionCall",
"src": "4442:12:4"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4432:6:4"
}
]
}
]
},
"name": "array_length_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4404:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4414:6:4",
"type": ""
}
],
"src": "4327:134:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4562:38:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4572:22:4",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "4584:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4589:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4580:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4580:14:4"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "4572:4:4"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "4549:3:4",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "4557:4:4",
"type": ""
}
],
"src": "4467:133:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4737:73:4",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4754:3:4"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4759:6:4"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4747:6:4"
},
"nodeType": "YulFunctionCall",
"src": "4747:19:4"
},
"nodeType": "YulExpressionStatement",
"src": "4747:19:4"
},
{
"nodeType": "YulAssignment",
"src": "4775:29:4",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4794:3:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4799:4:4",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4790:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4790:14:4"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "4775:11:4"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4709:3:4",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4714:6:4",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "4725:11:4",
"type": ""
}
],
"src": "4606:204:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4869:51:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4879:35:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4908:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "4890:17:4"
},
"nodeType": "YulFunctionCall",
"src": "4890:24:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4879:7:4"
}
]
}
]
},
"name": "cleanup_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4851:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4861:7:4",
"type": ""
}
],
"src": "4816:104:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4971:81:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4981:65:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4996:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5003:42:4",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4992:3:4"
},
"nodeType": "YulFunctionCall",
"src": "4992:54:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4981:7:4"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4953:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4963:7:4",
"type": ""
}
],
"src": "4926:126:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5103:32:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5113:16:4",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5124:5:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5113:7:4"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5085:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5095:7:4",
"type": ""
}
],
"src": "5058:77:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5185:65:4",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5195:49:4",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5210:5:4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5217:26:4",
"type": "",
"value": "0xffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5206:3:4"
},
"nodeType": "YulFunctionCall",
"src": "5206:38:4"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5195:7:4"
}
]
}
]
},
"name": "cleanup_t_uint96",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5167:5:4",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5177:7:4",
"type": ""
}
],
"src": "5141:109:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5345:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5362:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5365:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5355:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5355:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "5355:12:4"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "5256:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5468:28:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5485:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5488:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5478:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5478:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "5478:12:4"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "5379:117:4"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5545:79:4",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5602:16:4",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5611:1:4",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5614:1:4",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5604:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5604:12:4"
},
"nodeType": "YulExpressionStatement",
"src": "5604:12:4"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5568:5:4"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5593:5:4"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "5575:17:4"
},
"nodeType": "YulFunctionCall",
"src": "5575:24:4"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "5565:2:4"
},
"nodeType": "YulFunctionCall",
"src": "5565:35:4"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5558:6:4"
},
"nodeType": "YulFunctionCall",
"src": "5558:43:4"
},
"nodeType": "YulIf",
"src": "5555:63:4"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5538:5:4",
"type": ""
}
],
"src": "5502:122:4"
}
]
},
"contents": "{\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 abi_decode_tuple_t_uint256t_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_uint256(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 abi_encodeUpdatedPos_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr(value0, pos) -> updatedPos {\n abi_encode_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr(value0, pos)\n updatedPos := add(pos, 0x40)\n }\n\n function abi_encode_t_address_payable_to_t_address_payable(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n // struct LibPart.Part[] -> struct LibPart.Part[]\n function abi_encode_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n // struct LibPart.Part -> struct LibPart.Part\n function abi_encode_t_struct$_Part_$11_memory_ptr_to_t_struct$_Part_$11_memory_ptr(value, pos) {\n let tail := add(pos, 0x40)\n\n {\n // account\n\n let memberValue0 := mload(add(value, 0x00))\n abi_encode_t_address_payable_to_t_address_payable(memberValue0, add(pos, 0x00))\n }\n\n {\n // value\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint96_to_t_uint96(memberValue0, add(pos, 0x20))\n }\n\n }\n\n function abi_encode_t_uint96_to_t_uint96(value, pos) {\n mstore(pos, cleanup_t_uint96(value))\n }\n\n function abi_encode_t_uint96_to_t_uint96_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint96(value))\n }\n\n function abi_encode_tuple_t_address_payable_t_uint96__to_t_address_payable_t_uint96__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint96_to_t_uint96_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_dataslot_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_length_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_struct$_Part_$11_memory_ptr_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint96(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffff)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 4,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80638924af741461003b578063cad96cca1461006c575b600080fd5b61005560048036038101906100509190610254565b61009c565b604051610063929190610375565b60405180910390f35b61008660048036038101906100819190610227565b610111565b604051610093919061039e565b60405180910390f35b600060205281600052604060002081815481106100b857600080fd5b90600052602060002001600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a90046bffffffffffffffffffffffff16905082565b6060600080838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610207578382906000526020600020016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505081526020019060010190610145565b505050509050919050565b60008135905061022181610452565b92915050565b60006020828403121561023d5761023c61044d565b5b600061024b84828501610212565b91505092915050565b6000806040838503121561026b5761026a61044d565b5b600061027985828601610212565b925050602061028a85828601610212565b9150509250929050565b60006102a08383610328565b60408301905092915050565b6102b5816103f9565b82525050565b6102c4816103f9565b82525050565b60006102d5826103d0565b6102df81856103e8565b93506102ea836103c0565b8060005b8381101561031b5781516103028882610294565b975061030d836103db565b9250506001810190506102ee565b5085935050505092915050565b60408201600082015161033e60008501826102ac565b5060208201516103516020850182610357565b50505050565b61036081610435565b82525050565b61036f81610435565b82525050565b600060408201905061038a60008301856102bb565b6103976020830184610366565b9392505050565b600060208201905081810360008301526103b881846102ca565b905092915050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b60006104048261040b565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b600080fd5b61045b8161042b565b811461046657600080fd5b5056fea2646970667358221220657abac73a2f15ebfbe11ebfa579b3363b1ccf5e2dcc965e2aba45413b5f3ea064736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8924AF74 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xCAD96CCA EQ PUSH2 0x6C JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x254 JUMP JUMPDEST PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x63 SWAP3 SWAP2 SWAP1 PUSH2 0x375 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x86 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x81 SWAP2 SWAP1 PUSH2 0x227 JUMP JUMPDEST PUSH2 0x111 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x93 SWAP2 SWAP1 PUSH2 0x39E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x0 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x207 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x145 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x221 DUP2 PUSH2 0x452 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x23D JUMPI PUSH2 0x23C PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x24B DUP5 DUP3 DUP6 ADD PUSH2 0x212 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x26B JUMPI PUSH2 0x26A PUSH2 0x44D JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x279 DUP6 DUP3 DUP7 ADD PUSH2 0x212 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x28A DUP6 DUP3 DUP7 ADD PUSH2 0x212 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A0 DUP4 DUP4 PUSH2 0x328 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B5 DUP2 PUSH2 0x3F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2C4 DUP2 PUSH2 0x3F9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D5 DUP3 PUSH2 0x3D0 JUMP JUMPDEST PUSH2 0x2DF DUP2 DUP6 PUSH2 0x3E8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2EA DUP4 PUSH2 0x3C0 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x31B JUMPI DUP2 MLOAD PUSH2 0x302 DUP9 DUP3 PUSH2 0x294 JUMP JUMPDEST SWAP8 POP PUSH2 0x30D DUP4 PUSH2 0x3DB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2EE JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x33E PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x2AC JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x351 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x357 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x360 DUP2 PUSH2 0x435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x36F DUP2 PUSH2 0x435 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x38A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2BB JUMP JUMPDEST PUSH2 0x397 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x366 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3B8 DUP2 DUP5 PUSH2 0x2CA JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x404 DUP3 PUSH2 0x40B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x45B DUP2 PUSH2 0x42B JUMP JUMPDEST DUP2 EQ PUSH2 0x466 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH6 0x7ABAC73A2F15 0xEB 0xFB 0xE1 0x1E 0xBF 0xA5 PUSH26 0xB3363B1CCF5E2DCC965E2ABA45413B5F3EA064736F6C63430008 SMOD STOP CALLER ",
"sourceMap": "121:360:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;125:52:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;187:137:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;125:52:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;187:137:3:-;262:21;303:9;:13;313:2;303:13;;;;;;;;;;;296:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;187:137;;;:::o;7:139:4:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:119;;;266:79;;:::i;:::-;228:119;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;152:329;;;;:::o;487:474::-;555:6;563;612:2;600:9;591:7;587:23;583:32;580:119;;;618:79;;:::i;:::-;580:119;738:1;763:53;808:7;799:6;788:9;784:22;763:53;:::i;:::-;753:63;;709:117;865:2;891:53;936:7;927:6;916:9;912:22;891:53;:::i;:::-;881:63;;836:118;487:474;;;;;:::o;967:259::-;1076:10;1097:86;1179:3;1171:6;1097:86;:::i;:::-;1215:4;1210:3;1206:14;1192:28;;967:259;;;;:::o;1232:132::-;1325:32;1351:5;1325:32;:::i;:::-;1320:3;1313:45;1232:132;;:::o;1370:142::-;1473:32;1499:5;1473:32;:::i;:::-;1468:3;1461:45;1370:142;;:::o;1572:892::-;1731:3;1760:74;1828:5;1760:74;:::i;:::-;1850:106;1949:6;1944:3;1850:106;:::i;:::-;1843:113;;1980:76;2050:5;1980:76;:::i;:::-;2079:7;2110:1;2095:344;2120:6;2117:1;2114:13;2095:344;;;2196:6;2190:13;2223:103;2322:3;2307:13;2223:103;:::i;:::-;2216:110;;2349:80;2422:6;2349:80;:::i;:::-;2339:90;;2155:284;2142:1;2139;2135:9;2130:14;;2095:344;;;2099:14;2455:3;2448:10;;1736:728;;;1572:892;;;;:::o;2520:505::-;2647:4;2642:3;2638:14;2737:4;2730:5;2726:16;2720:23;2756:79;2829:4;2824:3;2820:14;2806:12;2756:79;:::i;:::-;2662:183;2928:4;2921:5;2917:16;2911:23;2947:61;3002:4;2997:3;2993:14;2979:12;2947:61;:::i;:::-;2855:163;2616:409;2520:505;;:::o;3031:105::-;3106:23;3123:5;3106:23;:::i;:::-;3101:3;3094:36;3031:105;;:::o;3142:115::-;3227:23;3244:5;3227:23;:::i;:::-;3222:3;3215:36;3142:115;;:::o;3263:360::-;3398:4;3436:2;3425:9;3421:18;3413:26;;3449:87;3533:1;3522:9;3518:17;3509:6;3449:87;:::i;:::-;3546:70;3612:2;3601:9;3597:18;3588:6;3546:70;:::i;:::-;3263:360;;;;;:::o;3629:453::-;3812:4;3850:2;3839:9;3835:18;3827:26;;3899:9;3893:4;3889:20;3885:1;3874:9;3870:17;3863:47;3927:148;4070:4;4061:6;3927:148;:::i;:::-;3919:156;;3629:453;;;;:::o;4169:152::-;4256:4;4279:3;4271:11;;4309:4;4304:3;4300:14;4292:22;;4169:152;;;:::o;4327:134::-;4414:6;4448:5;4442:12;4432:22;;4327:134;;;:::o;4467:133::-;4557:4;4589;4584:3;4580:14;4572:22;;4467:133;;;:::o;4606:204::-;4725:11;4759:6;4754:3;4747:19;4799:4;4794:3;4790:14;4775:29;;4606:204;;;;:::o;4816:104::-;4861:7;4890:24;4908:5;4890:24;:::i;:::-;4879:35;;4816:104;;;:::o;4926:126::-;4963:7;5003:42;4996:5;4992:54;4981:65;;4926:126;;;:::o;5058:77::-;5095:7;5124:5;5113:16;;5058:77;;;:::o;5141:109::-;5177:7;5217:26;5210:5;5206:38;5195:49;;5141:109;;;:::o;5379:117::-;5488:1;5485;5478:12;5502:122;5575:24;5593:5;5575:24;:::i;:::-;5568:5;5565:35;5555:63;;5614:1;5611;5604:12;5555:63;5502:122;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "236600",
"executionCost": "275",
"totalCost": "236875"
},
"external": {
"getRaribleV2Royalties(uint256)": "infinite",
"royalties(uint256,uint256)": "infinite"
},
"internal": {
"_onRoyaltiesSet(uint256,struct LibPart.Part memory[] memory)": "infinite"
}
},
"methodIdentifiers": {
"getRaribleV2Royalties(uint256)": "cad96cca",
"royalties(uint256,uint256)": "8924af74"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"components": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"indexed": false,
"internalType": "struct LibPart.Part[]",
"name": "royalties",
"type": "tuple[]"
}
],
"name": "RoyaltiesSet",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getRaribleV2Royalties",
"outputs": [
{
"components": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"internalType": "struct LibPart.Part[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "royalties",
"outputs": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"components": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"indexed": false,
"internalType": "struct LibPart.Part[]",
"name": "royalties",
"type": "tuple[]"
}
],
"name": "RoyaltiesSet",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getRaribleV2Royalties",
"outputs": [
{
"components": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"internalType": "struct LibPart.Part[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "royalties",
"outputs": [
{
"internalType": "address payable",
"name": "account",
"type": "address"
},
{
"internalType": "uint96",
"name": "value",
"type": "uint96"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/@rarible/royalties/contracts/impl/RoyaltiesV2Impl.sol": "RoyaltiesV2Impl"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/@rarible/royalties/contracts/LibPart.sol": {
"keccak256": "0x3b8a026906122edc0f6d8127a1a6b6ca3bc9f9d24757c6f1b141ec42cc115c9d",
"license": "MIT pragma",
"urls": [
"bzz-raw://29371804203c6d4533b7d6fd6fb2b8870c1a26f2aebd06014a6f3e55c65d2eb3",
"dweb:/ipfs/QmYij1hG1ZSrkJ57G199vfpUK5rtdYdDxTmKe4W3c5LgHE"
]
},
"contracts/@rarible/royalties/contracts/RoyaltiesV2.sol": {
"keccak256": "0x3bb78ba72f4c01e489245dc22519a9aac2abe03ce87dbfbdbbf3f0fc17011978",
"license": "MIT",
"urls": [
"bzz-raw://c2c00a7d54cea79f8f0019266bd1026a19475c53da4b0e296bfbe6dc2dd7cd0a",
"dweb:/ipfs/QmUneoLYmQSB7Ph4b6g5887kZPL9jVndrDFyKcurHakfPB"
]
},
"contracts/@rarible/royalties/contracts/impl/AbstractRoyalties.sol": {
"keccak256": "0x0a27f53c218393ec527c874d6f2c09672dde826d3d9add271da9c5e307c77b3c",
"license": "MIT",
"urls": [
"bzz-raw://ea5e4bb7371bfbb25e1f6741a986db2c53c1f7771226f657c4c0f83a458695b6",
"dweb:/ipfs/QmcpwQXzBm2DqVk1VGt5cof6zJaHcJFd43dRP86aNJBcxm"
]
},
"contracts/@rarible/royalties/contracts/impl/RoyaltiesV2Impl.sol": {
"keccak256": "0xd1dcc314f2b9607468aa73e5d65b41886cb28474f450f734c1bfa5a49ab21e1e",
"license": "MIT",
"urls": [
"bzz-raw://e440bbf7998bd98d50ccfc640f21871a39ecd408629a754e7923df94d7662cfa",
"dweb:/ipfs/QmfUCfxo9mmKKr7RDfWyNeGDAtF3xCxSqThNWztihL1e1S"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./AbstractRoyalties.sol";
import "../RoyaltiesV2.sol";
contract RoyaltiesV2Impl is AbstractRoyalties, RoyaltiesV2 {
function getRaribleV2Royalties(uint256 id) override external view returns (LibPart.Part[] memory) {
return royalties[id];
}
function _onRoyaltiesSet(uint256 _id, LibPart.Part[] memory _royalties) override internal {
emit RoyaltiesSet(_id, _royalties);
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./LibPart.sol";
interface IRoyaltiesProvider {
function getRoyalties(address token, uint tokenId) external returns (LibPart.Part[] memory);
}
// SPDX-License-Identifier: MIT pragma
pragma solidity ^0.8.0;
library LibPart {
bytes32 public constant TYPE_HASH = keccak256("Part(address account,uint96 value)");
struct Part {
address payable account;
uint96 value;
}
function hash(Part memory part) internal pure returns (bytes32) {
return keccak256(abi.encode(TYPE_HASH, part.account, part.value));
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
library LibRoyaltiesV2 {
/*
* bytes4(keccak256('getRoyalties(LibAsset.AssetType)')) == 0x44c74bcc
*/
bytes4 constant _INTERFACE_ID_ROYALTIES = 0x44c74bcc;
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "./LibPart.sol";
interface RoyaltiesV2 {
event RoyaltiesSet(uint256 tokenId, LibPart.Part[] royalties);
function getRaribleV2Royalties(uint256 id) external view returns (LibPart.Part[] memory);
}
{
"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": {
"@_235": {
"entryPoint": null,
"id": 235,
"parameterSlots": 0,
"returnSlots": 0
},
"@_27": {
"entryPoint": null,
"id": 27,
"parameterSlots": 0,
"returnSlots": 0
},
"@_msgSender_328": {
"entryPoint": 181,
"id": 328,
"parameterSlots": 0,
"returnSlots": 1
},
"@_transferOwnership_315": {
"entryPoint": 189,
"id": 315,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052600060035534801561001557600080fd5b506100326100276100b560201b60201c565b6100bd60201b60201c565b33600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610181565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611057806101906000396000f3fe60806040526004361061007b5760003560e01c80638da5cb5b1161004e5780638da5cb5b146100e1578063bb5d40eb1461010c578063dd6d3ca714610137578063f2fde38b146101625761007b565b80631f864d57146100805780633e25e83714610097578063421b2d8b146100ae578063715018a6146100ca575b600080fd5b34801561008c57600080fd5b5061009561018b565b005b3480156100a357600080fd5b506100ac610297565b005b6100c860048036038101906100c39190610a4e565b610443565b005b3480156100d657600080fd5b506100df6106a3565b005b3480156100ed57600080fd5b506100f661072b565b6040516101039190610b9d565b60405180910390f35b34801561011857600080fd5b50610121610754565b60405161012e9190610bb8565b60405180910390f35b34801561014357600080fd5b5061014c61082e565b6040516101599190610cb3565b60405180910390f35b34801561016e57600080fd5b5061018960048036038101906101849190610a4e565b610875565b005b61019361096d565b73ffffffffffffffffffffffffffffffffffffffff166101b161072b565b73ffffffffffffffffffffffffffffffffffffffff1614610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fe90610c53565b60405180910390fd5b6000600354476102179190610dc0565b905061022161072b565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050610294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028b90610bf3565b60405180910390fd5b50565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050662386f26fc10000811015610325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031c90610c13565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050610399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039090610bf3565b60405180910390fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103e49190610dc0565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008282546104399190610dc0565b9250508190555050565b80600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050990610c93565b60405180910390fd5b662386f26fc1000034101561055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390610c73565b60405180910390fd5b33600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006064600a346105eb9190610d66565b6105f59190610d35565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106429190610cdf565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008282546106979190610cdf565b92505081905550505050565b6106ab61096d565b73ffffffffffffffffffffffffffffffffffffffff166106c961072b565b73ffffffffffffffffffffffffffffffffffffffff161461071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071690610c53565b60405180910390fd5b6107296000610975565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081d90610c33565b60405180910390fd5b600191505090565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b61087d61096d565b73ffffffffffffffffffffffffffffffffffffffff1661089b61072b565b73ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890610c53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095890610bd3565b60405180910390fd5b61096a81610975565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081359050610a488161100a565b92915050565b600060208284031215610a6457610a63610e9a565b5b6000610a7284828501610a39565b91505092915050565b610a8481610df4565b82525050565b610a9381610e06565b82525050565b6000610aa6602683610cce565b9150610ab182610e9f565b604082019050919050565b6000610ac9601483610cce565b9150610ad482610eee565b602082019050919050565b6000610aec602f83610cce565b9150610af782610f17565b604082019050919050565b6000610b0f601883610cce565b9150610b1a82610f66565b602082019050919050565b6000610b32602083610cce565b9150610b3d82610f8f565b602082019050919050565b6000610b55601083610cce565b9150610b6082610fb8565b602082019050919050565b6000610b78601f83610cce565b9150610b8382610fe1565b602082019050919050565b610b9781610e32565b82525050565b6000602082019050610bb26000830184610a7b565b92915050565b6000602082019050610bcd6000830184610a8a565b92915050565b60006020820190508181036000830152610bec81610a99565b9050919050565b60006020820190508181036000830152610c0c81610abc565b9050919050565b60006020820190508181036000830152610c2c81610adf565b9050919050565b60006020820190508181036000830152610c4c81610b02565b9050919050565b60006020820190508181036000830152610c6c81610b25565b9050919050565b60006020820190508181036000830152610c8c81610b48565b9050919050565b60006020820190508181036000830152610cac81610b6b565b9050919050565b6000602082019050610cc86000830184610b8e565b92915050565b600082825260208201905092915050565b6000610cea82610e32565b9150610cf583610e32565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d2a57610d29610e3c565b5b828201905092915050565b6000610d4082610e32565b9150610d4b83610e32565b925082610d5b57610d5a610e6b565b5b828204905092915050565b6000610d7182610e32565b9150610d7c83610e32565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610db557610db4610e3c565b5b828202905092915050565b6000610dcb82610e32565b9150610dd683610e32565b925082821015610de957610de8610e3c565b5b828203905092915050565b6000610dff82610e12565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b7f4e65656473206d696e696d756d20302e30312045544820696e20636f6d69737360008201527f696f6e20746f2077697468647261770000000000000000000000000000000000602082015250565b7f4e6f7420612076616c6964207573657220616464726573730000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e6f7420656e6f75676820457468657200000000000000000000000000000000600082015250565b7f55736572206164647265737320616c7265616479207265676973746572656400600082015250565b61101381610df4565b811461101e57600080fd5b5056fea264697066735822122001ff92eecf650f30ee4809e3c823f3aeda2fdfb952d69bcab612e99d4d39bdde64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x3 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x15 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x32 PUSH2 0x27 PUSH2 0xB5 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0xBD PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST CALLER PUSH1 0x1 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 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x181 JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x1057 DUP1 PUSH2 0x190 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE1 JUMPI DUP1 PUSH4 0xBB5D40EB EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0xDD6D3CA7 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x162 JUMPI PUSH2 0x7B JUMP JUMPDEST DUP1 PUSH4 0x1F864D57 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x3E25E837 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x421B2D8B EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xCA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x95 PUSH2 0x18B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAC PUSH2 0x297 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xA4E JUMP JUMPDEST PUSH2 0x443 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDF PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF6 PUSH2 0x72B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0xB9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x118 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x121 PUSH2 0x754 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xBB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14C PUSH2 0x82E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x159 SWAP2 SWAP1 PUSH2 0xCB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x189 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x184 SWAP2 SWAP1 PUSH2 0xA4E JUMP JUMPDEST PUSH2 0x875 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B1 PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x207 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FE SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD SELFBALANCE PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST SWAP1 POP PUSH2 0x221 PUSH2 0x72B JUMP JUMPDEST 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 PUSH2 0x294 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28B SWAP1 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH7 0x2386F26FC10000 DUP2 LT ISZERO PUSH2 0x325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31C SWAP1 PUSH2 0xC13 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER 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 PUSH2 0x399 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x390 SWAP1 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x439 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x512 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x509 SWAP1 PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH7 0x2386F26FC10000 CALLVALUE LT ISZERO PUSH2 0x55C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x553 SWAP1 PUSH2 0xC73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x64 PUSH1 0xA CALLVALUE PUSH2 0x5EB SWAP2 SWAP1 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x5F5 SWAP2 SWAP1 PUSH2 0xD35 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x642 SWAP2 SWAP1 PUSH2 0xCDF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x697 SWAP2 SWAP1 PUSH2 0xCDF JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH2 0x6AB PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x6C9 PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x716 SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x729 PUSH1 0x0 PUSH2 0x975 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81D SWAP1 PUSH2 0xC33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x87D PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x89B PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x8F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E8 SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x961 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x958 SWAP1 PUSH2 0xBD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x96A DUP2 PUSH2 0x975 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA48 DUP2 PUSH2 0x100A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA64 JUMPI PUSH2 0xA63 PUSH2 0xE9A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP5 DUP3 DUP6 ADD PUSH2 0xA39 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA84 DUP2 PUSH2 0xDF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xA93 DUP2 PUSH2 0xE06 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAA6 PUSH1 0x26 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAB1 DUP3 PUSH2 0xE9F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC9 PUSH1 0x14 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAD4 DUP3 PUSH2 0xEEE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEC PUSH1 0x2F DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAF7 DUP3 PUSH2 0xF17 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0F PUSH1 0x18 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB1A DUP3 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 PUSH1 0x20 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB3D DUP3 PUSH2 0xF8F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB55 PUSH1 0x10 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB60 DUP3 PUSH2 0xFB8 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB78 PUSH1 0x1F DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB83 DUP3 PUSH2 0xFE1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB97 DUP2 PUSH2 0xE32 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBB2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA7B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA8A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xBEC DUP2 PUSH2 0xA99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC0C DUP2 PUSH2 0xABC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC2C DUP2 PUSH2 0xADF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC4C DUP2 PUSH2 0xB02 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC6C DUP2 PUSH2 0xB25 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC8C DUP2 PUSH2 0xB48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCAC DUP2 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCC8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB8E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCEA DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xCF5 DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xD2A JUMPI PUSH2 0xD29 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD40 DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xD4B DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xE6B JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD71 DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xD7C DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xDB5 JUMPI PUSH2 0xDB4 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDCB DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xDD6 DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0xDE9 JUMPI PUSH2 0xDE8 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDFF DUP3 PUSH2 0xE12 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4661696C656420746F2073656E64204574686572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E65656473206D696E696D756D20302E30312045544820696E20636F6D697373 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x696F6E20746F2077697468647261770000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E6F7420612076616C6964207573657220616464726573730000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E6F7420656E6F75676820457468657200000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x55736572206164647265737320616C7265616479207265676973746572656400 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x1013 DUP2 PUSH2 0xDF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x101E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADD SELFDESTRUCT SWAP3 0xEE 0xCF PUSH6 0xF30EE4809E3 0xC8 0x23 RETURN 0xAE 0xDA 0x2F 0xDF 0xB9 MSTORE 0xD6 SWAP12 0xCA 0xB6 SLT 0xE9 SWAP14 0x4D CODECOPY 0xBD 0xDE PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "177:1977:0:-:0;;;439:1;406:34;;451:61;;;;;;;;;;867:32:1;886:12;:10;;;:12;;:::i;:::-;867:18;;;:32;;:::i;:::-;495:10:0;475:5;:17;481:10;475:17;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;177:1977;;587:96:2;640:7;666:10;659:17;;587:96;:::o;2216:187:1:-;2289:16;2308:6;;;;;;;;;;;2289:25;;2333:8;2324:6;;:17;;;;;;;;;;;;;;;;;;2387:8;2356:40;;2377:8;2356:40;;;;;;;;;;;;2279:124;2216:187;:::o;177:1977:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_msgSender_328": {
"entryPoint": 2413,
"id": 328,
"parameterSlots": 0,
"returnSlots": 1
},
"@_transferOwnership_315": {
"entryPoint": 2421,
"id": 315,
"parameterSlots": 1,
"returnSlots": 0
},
"@addUser_77": {
"entryPoint": 1091,
"id": 77,
"parameterSlots": 1,
"returnSlots": 0
},
"@getComission_88": {
"entryPoint": 2094,
"id": 88,
"parameterSlots": 0,
"returnSlots": 1
},
"@isValid_100": {
"entryPoint": 1876,
"id": 100,
"parameterSlots": 0,
"returnSlots": 1
},
"@owner_244": {
"entryPoint": 1835,
"id": 244,
"parameterSlots": 0,
"returnSlots": 1
},
"@renounceOwnership_272": {
"entryPoint": 1699,
"id": 272,
"parameterSlots": 0,
"returnSlots": 0
},
"@transferOwnership_295": {
"entryPoint": 2165,
"id": 295,
"parameterSlots": 1,
"returnSlots": 0
},
"@withdrawAllWithoutCommission_128": {
"entryPoint": 395,
"id": 128,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdrawCommission_174": {
"entryPoint": 663,
"id": 174,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 2617,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 2638,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 2683,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 2698,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack": {
"entryPoint": 2713,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack": {
"entryPoint": 2748,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64_to_t_string_memory_ptr_fromStack": {
"entryPoint": 2783,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49_to_t_string_memory_ptr_fromStack": {
"entryPoint": 2818,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack": {
"entryPoint": 2853,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack": {
"entryPoint": 2888,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec_to_t_string_memory_ptr_fromStack": {
"entryPoint": 2923,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 2958,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 2973,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 3000,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3027,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3059,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3091,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3123,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3155,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3187,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 3219,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 3251,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 3278,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 3295,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 3381,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 3430,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 3520,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 3572,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 3590,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 3602,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 3634,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 3644,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x12": {
"entryPoint": 3691,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 3738,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe": {
"entryPoint": 3743,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb": {
"entryPoint": 3822,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64": {
"entryPoint": 3863,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49": {
"entryPoint": 3942,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe": {
"entryPoint": 3983,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e": {
"entryPoint": 4024,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec": {
"entryPoint": 4065,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 4106,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:10940:3",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:3",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:3"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:3"
},
"nodeType": "YulFunctionCall",
"src": "78:20:3"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:3"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "107:26:3"
},
"nodeType": "YulFunctionCall",
"src": "107:33:3"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:3"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:3",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:3",
"type": ""
}
],
"src": "7:139:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "218:263:3",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "264:83:3",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "266:77:3"
},
"nodeType": "YulFunctionCall",
"src": "266:79:3"
},
"nodeType": "YulExpressionStatement",
"src": "266:79:3"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "239:7:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "248:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "235:3:3"
},
"nodeType": "YulFunctionCall",
"src": "235:23:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "260:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "231:3:3"
},
"nodeType": "YulFunctionCall",
"src": "231:32:3"
},
"nodeType": "YulIf",
"src": "228:119:3"
},
{
"nodeType": "YulBlock",
"src": "357:117:3",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "372:15:3",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "386:1:3",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "376:6:3",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "401:63:3",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "436:9:3"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "447:6:3"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "432:3:3"
},
"nodeType": "YulFunctionCall",
"src": "432:22:3"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "456:7:3"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "411:20:3"
},
"nodeType": "YulFunctionCall",
"src": "411:53:3"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "401:6:3"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "188:9:3",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "199:7:3",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "211:6:3",
"type": ""
}
],
"src": "152:329:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "552:53:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "569:3:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "592:5:3"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "574:17:3"
},
"nodeType": "YulFunctionCall",
"src": "574:24:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "562:6:3"
},
"nodeType": "YulFunctionCall",
"src": "562:37:3"
},
"nodeType": "YulExpressionStatement",
"src": "562:37:3"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "540:5:3",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "547:3:3",
"type": ""
}
],
"src": "487:118:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "670:50:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "687:3:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "707:5:3"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "692:14:3"
},
"nodeType": "YulFunctionCall",
"src": "692:21:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "680:6:3"
},
"nodeType": "YulFunctionCall",
"src": "680:34:3"
},
"nodeType": "YulExpressionStatement",
"src": "680:34:3"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "658:5:3",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "665:3:3",
"type": ""
}
],
"src": "611:109:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "872:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "882:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "948:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "953:2:3",
"type": "",
"value": "38"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "889:58:3"
},
"nodeType": "YulFunctionCall",
"src": "889:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "882:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1054:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe",
"nodeType": "YulIdentifier",
"src": "965:88:3"
},
"nodeType": "YulFunctionCall",
"src": "965:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "965:93:3"
},
{
"nodeType": "YulAssignment",
"src": "1067:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1078:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1083:2:3",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1074:3:3"
},
"nodeType": "YulFunctionCall",
"src": "1074:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1067:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "860:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "868:3:3",
"type": ""
}
],
"src": "726:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1244:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1254:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1320:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1325:2:3",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1261:58:3"
},
"nodeType": "YulFunctionCall",
"src": "1261:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1254:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1426:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb",
"nodeType": "YulIdentifier",
"src": "1337:88:3"
},
"nodeType": "YulFunctionCall",
"src": "1337:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "1337:93:3"
},
{
"nodeType": "YulAssignment",
"src": "1439:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1450:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1455:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1446:3:3"
},
"nodeType": "YulFunctionCall",
"src": "1446:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1439:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1232:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1240:3:3",
"type": ""
}
],
"src": "1098:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1616:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1626:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1692:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1697:2:3",
"type": "",
"value": "47"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1633:58:3"
},
"nodeType": "YulFunctionCall",
"src": "1633:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1626:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1798:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64",
"nodeType": "YulIdentifier",
"src": "1709:88:3"
},
"nodeType": "YulFunctionCall",
"src": "1709:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "1709:93:3"
},
{
"nodeType": "YulAssignment",
"src": "1811:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1822:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1827:2:3",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1818:3:3"
},
"nodeType": "YulFunctionCall",
"src": "1818:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1811:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1604:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1612:3:3",
"type": ""
}
],
"src": "1470:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1988:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1998:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2064:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2069:2:3",
"type": "",
"value": "24"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2005:58:3"
},
"nodeType": "YulFunctionCall",
"src": "2005:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1998:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2170:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49",
"nodeType": "YulIdentifier",
"src": "2081:88:3"
},
"nodeType": "YulFunctionCall",
"src": "2081:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "2081:93:3"
},
{
"nodeType": "YulAssignment",
"src": "2183:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2194:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2199:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2190:3:3"
},
"nodeType": "YulFunctionCall",
"src": "2190:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2183:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1976:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1984:3:3",
"type": ""
}
],
"src": "1842:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2360:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2370:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2436:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2441:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2377:58:3"
},
"nodeType": "YulFunctionCall",
"src": "2377:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2370:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2542:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe",
"nodeType": "YulIdentifier",
"src": "2453:88:3"
},
"nodeType": "YulFunctionCall",
"src": "2453:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "2453:93:3"
},
{
"nodeType": "YulAssignment",
"src": "2555:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2566:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2571:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2562:3:3"
},
"nodeType": "YulFunctionCall",
"src": "2562:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2555:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2348:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2356:3:3",
"type": ""
}
],
"src": "2214:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2732:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2742:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2808:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2813:2:3",
"type": "",
"value": "16"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2749:58:3"
},
"nodeType": "YulFunctionCall",
"src": "2749:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2742:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2914:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e",
"nodeType": "YulIdentifier",
"src": "2825:88:3"
},
"nodeType": "YulFunctionCall",
"src": "2825:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "2825:93:3"
},
{
"nodeType": "YulAssignment",
"src": "2927:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2938:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2943:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2934:3:3"
},
"nodeType": "YulFunctionCall",
"src": "2934:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2927:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2720:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2728:3:3",
"type": ""
}
],
"src": "2586:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3104:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3114:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3180:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3185:2:3",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3121:58:3"
},
"nodeType": "YulFunctionCall",
"src": "3121:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3114:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3286:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec",
"nodeType": "YulIdentifier",
"src": "3197:88:3"
},
"nodeType": "YulFunctionCall",
"src": "3197:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "3197:93:3"
},
{
"nodeType": "YulAssignment",
"src": "3299:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3310:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3315:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3306:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3306:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3299:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3092:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3100:3:3",
"type": ""
}
],
"src": "2958:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3395:53:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3412:3:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3435:5:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3417:17:3"
},
"nodeType": "YulFunctionCall",
"src": "3417:24:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3405:6:3"
},
"nodeType": "YulFunctionCall",
"src": "3405:37:3"
},
"nodeType": "YulExpressionStatement",
"src": "3405:37:3"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3383:5:3",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3390:3:3",
"type": ""
}
],
"src": "3330:118:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3552:124:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3562:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3574:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3585:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3570:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3570:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3562:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3642:6:3"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3655:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3666:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3651:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3651:17:3"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3598:43:3"
},
"nodeType": "YulFunctionCall",
"src": "3598:71:3"
},
"nodeType": "YulExpressionStatement",
"src": "3598:71:3"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3524:9:3",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3536:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3547:4:3",
"type": ""
}
],
"src": "3454:222:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3774:118:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3784:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3796:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3807:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3792:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3792:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3784:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3858:6:3"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3871:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3882:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3867:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3867:17:3"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "3820:37:3"
},
"nodeType": "YulFunctionCall",
"src": "3820:65:3"
},
"nodeType": "YulExpressionStatement",
"src": "3820:65:3"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3746:9:3",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3758:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3769:4:3",
"type": ""
}
],
"src": "3682:210:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4069:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4079:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4091:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4102:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4087:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4087:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4079:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4126:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4137:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4122:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4122:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4145:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4151:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4141:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4141:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4115:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4115:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "4115:47:3"
},
{
"nodeType": "YulAssignment",
"src": "4171:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4305:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4179:124:3"
},
"nodeType": "YulFunctionCall",
"src": "4179:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4171:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4049:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4064:4:3",
"type": ""
}
],
"src": "3898:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4494:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4504:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4516:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4527:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4512:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4512:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4504:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4551:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4562:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4547:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4547:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4570:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4576:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4566:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4566:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4540:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4540:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "4540:47:3"
},
{
"nodeType": "YulAssignment",
"src": "4596:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4730:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4604:124:3"
},
"nodeType": "YulFunctionCall",
"src": "4604:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4596:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4474:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4489:4:3",
"type": ""
}
],
"src": "4323:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4919:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4929:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4941:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4952:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4937:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4937:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4929:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4976:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4987:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4972:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4972:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4995:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5001:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4991:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4991:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4965:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4965:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "4965:47:3"
},
{
"nodeType": "YulAssignment",
"src": "5021:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5155:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5029:124:3"
},
"nodeType": "YulFunctionCall",
"src": "5029:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5021:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4899:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4914:4:3",
"type": ""
}
],
"src": "4748:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5344:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5354:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5366:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5377:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5362:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5362:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5354:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5401:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5412:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5397:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5397:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5420:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5426:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5416:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5416:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5390:6:3"
},
"nodeType": "YulFunctionCall",
"src": "5390:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "5390:47:3"
},
{
"nodeType": "YulAssignment",
"src": "5446:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5580:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5454:124:3"
},
"nodeType": "YulFunctionCall",
"src": "5454:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5446:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5324:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5339:4:3",
"type": ""
}
],
"src": "5173:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5769:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5779:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5791:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5802:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5787:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5787:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5779:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5826:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5837:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5822:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5822:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5845:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5851:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5841:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5841:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5815:6:3"
},
"nodeType": "YulFunctionCall",
"src": "5815:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "5815:47:3"
},
{
"nodeType": "YulAssignment",
"src": "5871:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6005:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5879:124:3"
},
"nodeType": "YulFunctionCall",
"src": "5879:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5871:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5749:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5764:4:3",
"type": ""
}
],
"src": "5598:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6194:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6204:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6216:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6227:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6212:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6212:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6204:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6251:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6262:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6247:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6247:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6270:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6276:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6266:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6266:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6240:6:3"
},
"nodeType": "YulFunctionCall",
"src": "6240:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "6240:47:3"
},
{
"nodeType": "YulAssignment",
"src": "6296:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6430:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6304:124:3"
},
"nodeType": "YulFunctionCall",
"src": "6304:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6296:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6174:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6189:4:3",
"type": ""
}
],
"src": "6023:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6619:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6629:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6641:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6652:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6637:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6637:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6629:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6676:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6687:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6672:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6672:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6695:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6701:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6691:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6691:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6665:6:3"
},
"nodeType": "YulFunctionCall",
"src": "6665:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "6665:47:3"
},
{
"nodeType": "YulAssignment",
"src": "6721:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6855:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6729:124:3"
},
"nodeType": "YulFunctionCall",
"src": "6729:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6721:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6599:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6614:4:3",
"type": ""
}
],
"src": "6448:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6971:124:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6981:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6993:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7004:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6989:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6989:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6981:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7061:6:3"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7074:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7085:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7070:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7070:17:3"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "7017:43:3"
},
"nodeType": "YulFunctionCall",
"src": "7017:71:3"
},
"nodeType": "YulExpressionStatement",
"src": "7017:71:3"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6943:9:3",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6955:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6966:4:3",
"type": ""
}
],
"src": "6873:222:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7141:35:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7151:19:3",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7167:2:3",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "7161:5:3"
},
"nodeType": "YulFunctionCall",
"src": "7161:9:3"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7151:6:3"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7134:6:3",
"type": ""
}
],
"src": "7101:75:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7278:73:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7295:3:3"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "7300:6:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7288:6:3"
},
"nodeType": "YulFunctionCall",
"src": "7288:19:3"
},
"nodeType": "YulExpressionStatement",
"src": "7288:19:3"
},
{
"nodeType": "YulAssignment",
"src": "7316:29:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7335:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7340:4:3",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7331:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7331:14:3"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "7316:11:3"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7250:3:3",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "7255:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "7266:11:3",
"type": ""
}
],
"src": "7182:169:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7401:261:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7411:25:3",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7434:1:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7416:17:3"
},
"nodeType": "YulFunctionCall",
"src": "7416:20:3"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7411:1:3"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7445:25:3",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7468:1:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7450:17:3"
},
"nodeType": "YulFunctionCall",
"src": "7450:20:3"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7445:1:3"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7608:22:3",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "7610:16:3"
},
"nodeType": "YulFunctionCall",
"src": "7610:18:3"
},
"nodeType": "YulExpressionStatement",
"src": "7610:18:3"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7529:1:3"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7536:66:3",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7604:1:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7532:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7532:74:3"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7526:2:3"
},
"nodeType": "YulFunctionCall",
"src": "7526:81:3"
},
"nodeType": "YulIf",
"src": "7523:107:3"
},
{
"nodeType": "YulAssignment",
"src": "7640:16:3",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7651:1:3"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7654:1:3"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7647:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7647:9:3"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "7640:3:3"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "7388:1:3",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "7391:1:3",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "7397:3:3",
"type": ""
}
],
"src": "7357:305:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7710:143:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7720:25:3",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7743:1:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7725:17:3"
},
"nodeType": "YulFunctionCall",
"src": "7725:20:3"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7720:1:3"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7754:25:3",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7777:1:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7759:17:3"
},
"nodeType": "YulFunctionCall",
"src": "7759:20:3"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7754:1:3"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7801:22:3",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x12",
"nodeType": "YulIdentifier",
"src": "7803:16:3"
},
"nodeType": "YulFunctionCall",
"src": "7803:18:3"
},
"nodeType": "YulExpressionStatement",
"src": "7803:18:3"
}
]
},
"condition": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7798:1:3"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "7791:6:3"
},
"nodeType": "YulFunctionCall",
"src": "7791:9:3"
},
"nodeType": "YulIf",
"src": "7788:35:3"
},
{
"nodeType": "YulAssignment",
"src": "7833:14:3",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7842:1:3"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7845:1:3"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "7838:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7838:9:3"
},
"variableNames": [
{
"name": "r",
"nodeType": "YulIdentifier",
"src": "7833:1:3"
}
]
}
]
},
"name": "checked_div_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "7699:1:3",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "7702:1:3",
"type": ""
}
],
"returnVariables": [
{
"name": "r",
"nodeType": "YulTypedName",
"src": "7708:1:3",
"type": ""
}
],
"src": "7668:185:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7907:300:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7917:25:3",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7940:1:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7922:17:3"
},
"nodeType": "YulFunctionCall",
"src": "7922:20:3"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7917:1:3"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7951:25:3",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7974:1:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7956:17:3"
},
"nodeType": "YulFunctionCall",
"src": "7956:20:3"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7951:1:3"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "8149:22:3",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "8151:16:3"
},
"nodeType": "YulFunctionCall",
"src": "8151:18:3"
},
"nodeType": "YulExpressionStatement",
"src": "8151:18:3"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8061:1:3"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8054:6:3"
},
"nodeType": "YulFunctionCall",
"src": "8054:9:3"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8047:6:3"
},
"nodeType": "YulFunctionCall",
"src": "8047:17:3"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8069:1:3"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8076:66:3",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8144:1:3"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "8072:3:3"
},
"nodeType": "YulFunctionCall",
"src": "8072:74:3"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "8066:2:3"
},
"nodeType": "YulFunctionCall",
"src": "8066:81:3"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "8043:3:3"
},
"nodeType": "YulFunctionCall",
"src": "8043:105:3"
},
"nodeType": "YulIf",
"src": "8040:131:3"
},
{
"nodeType": "YulAssignment",
"src": "8181:20:3",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8196:1:3"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8199:1:3"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "8192:3:3"
},
"nodeType": "YulFunctionCall",
"src": "8192:9:3"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "8181:7:3"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "7890:1:3",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "7893:1:3",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "7899:7:3",
"type": ""
}
],
"src": "7859:348:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8258:146:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8268:25:3",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8291:1:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8273:17:3"
},
"nodeType": "YulFunctionCall",
"src": "8273:20:3"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8268:1:3"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8302:25:3",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8325:1:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8307:17:3"
},
"nodeType": "YulFunctionCall",
"src": "8307:20:3"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8302:1:3"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "8349:22:3",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "8351:16:3"
},
"nodeType": "YulFunctionCall",
"src": "8351:18:3"
},
"nodeType": "YulExpressionStatement",
"src": "8351:18:3"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8343:1:3"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8346:1:3"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "8340:2:3"
},
"nodeType": "YulFunctionCall",
"src": "8340:8:3"
},
"nodeType": "YulIf",
"src": "8337:34:3"
},
{
"nodeType": "YulAssignment",
"src": "8381:17:3",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "8393:1:3"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "8396:1:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8389:3:3"
},
"nodeType": "YulFunctionCall",
"src": "8389:9:3"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "8381:4:3"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "8244:1:3",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "8247:1:3",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "8253:4:3",
"type": ""
}
],
"src": "8213:191:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8455:51:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8465:35:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8494:5:3"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "8476:17:3"
},
"nodeType": "YulFunctionCall",
"src": "8476:24:3"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "8465:7:3"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8437:5:3",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "8447:7:3",
"type": ""
}
],
"src": "8410:96:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8554:48:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8564:32:3",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8589:5:3"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8582:6:3"
},
"nodeType": "YulFunctionCall",
"src": "8582:13:3"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8575:6:3"
},
"nodeType": "YulFunctionCall",
"src": "8575:21:3"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "8564:7:3"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8536:5:3",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "8546:7:3",
"type": ""
}
],
"src": "8512:90:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8653:81:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8663:65:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8678:5:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8685:42:3",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "8674:3:3"
},
"nodeType": "YulFunctionCall",
"src": "8674:54:3"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "8663:7:3"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8635:5:3",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "8645:7:3",
"type": ""
}
],
"src": "8608:126:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8785:32:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8795:16:3",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "8806:5:3"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "8795:7:3"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8767:5:3",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "8777:7:3",
"type": ""
}
],
"src": "8740:77:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8851:152:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8868:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8871:77:3",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8861:6:3"
},
"nodeType": "YulFunctionCall",
"src": "8861:88:3"
},
"nodeType": "YulExpressionStatement",
"src": "8861:88:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8965:1:3",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8968:4:3",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8958:6:3"
},
"nodeType": "YulFunctionCall",
"src": "8958:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "8958:15:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8989:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8992:4:3",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8982:6:3"
},
"nodeType": "YulFunctionCall",
"src": "8982:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "8982:15:3"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "8823:180:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9037:152:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9054:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9057:77:3",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9047:6:3"
},
"nodeType": "YulFunctionCall",
"src": "9047:88:3"
},
"nodeType": "YulExpressionStatement",
"src": "9047:88:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9151:1:3",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9154:4:3",
"type": "",
"value": "0x12"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9144:6:3"
},
"nodeType": "YulFunctionCall",
"src": "9144:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "9144:15:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9175:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9178:4:3",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "9168:6:3"
},
"nodeType": "YulFunctionCall",
"src": "9168:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "9168:15:3"
}
]
},
"name": "panic_error_0x12",
"nodeType": "YulFunctionDefinition",
"src": "9009:180:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9284:28:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9301:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9304:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "9294:6:3"
},
"nodeType": "YulFunctionCall",
"src": "9294:12:3"
},
"nodeType": "YulExpressionStatement",
"src": "9294:12:3"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "9195:117:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9407:28:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9424:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9427:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "9417:6:3"
},
"nodeType": "YulFunctionCall",
"src": "9417:12:3"
},
"nodeType": "YulExpressionStatement",
"src": "9417:12:3"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "9318:117:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9547:119:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "9569:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9577:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9565:3:3"
},
"nodeType": "YulFunctionCall",
"src": "9565:14:3"
},
{
"hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9581:34:3",
"type": "",
"value": "Ownable: new owner is the zero a"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9558:6:3"
},
"nodeType": "YulFunctionCall",
"src": "9558:58:3"
},
"nodeType": "YulExpressionStatement",
"src": "9558:58:3"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "9637:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9645:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9633:3:3"
},
"nodeType": "YulFunctionCall",
"src": "9633:15:3"
},
{
"hexValue": "646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9650:8:3",
"type": "",
"value": "ddress"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9626:6:3"
},
"nodeType": "YulFunctionCall",
"src": "9626:33:3"
},
"nodeType": "YulExpressionStatement",
"src": "9626:33:3"
}
]
},
"name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "9539:6:3",
"type": ""
}
],
"src": "9441:225:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9778:64:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "9800:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9808:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9796:3:3"
},
"nodeType": "YulFunctionCall",
"src": "9796:14:3"
},
{
"hexValue": "4661696c656420746f2073656e64204574686572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9812:22:3",
"type": "",
"value": "Failed to send Ether"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9789:6:3"
},
"nodeType": "YulFunctionCall",
"src": "9789:46:3"
},
"nodeType": "YulExpressionStatement",
"src": "9789:46:3"
}
]
},
"name": "store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "9770:6:3",
"type": ""
}
],
"src": "9672:170:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9954:128:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "9976:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9984:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9972:3:3"
},
"nodeType": "YulFunctionCall",
"src": "9972:14:3"
},
{
"hexValue": "4e65656473206d696e696d756d20302e30312045544820696e20636f6d697373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "9988:34:3",
"type": "",
"value": "Needs minimum 0.01 ETH in comiss"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9965:6:3"
},
"nodeType": "YulFunctionCall",
"src": "9965:58:3"
},
"nodeType": "YulExpressionStatement",
"src": "9965:58:3"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10044:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10052:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10040:3:3"
},
"nodeType": "YulFunctionCall",
"src": "10040:15:3"
},
{
"hexValue": "696f6e20746f207769746864726177",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10057:17:3",
"type": "",
"value": "ion to withdraw"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10033:6:3"
},
"nodeType": "YulFunctionCall",
"src": "10033:42:3"
},
"nodeType": "YulExpressionStatement",
"src": "10033:42:3"
}
]
},
"name": "store_literal_in_memory_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "9946:6:3",
"type": ""
}
],
"src": "9848:234:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10194:68:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10216:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10224:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10212:3:3"
},
"nodeType": "YulFunctionCall",
"src": "10212:14:3"
},
{
"hexValue": "4e6f7420612076616c696420757365722061646472657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10228:26:3",
"type": "",
"value": "Not a valid user address"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10205:6:3"
},
"nodeType": "YulFunctionCall",
"src": "10205:50:3"
},
"nodeType": "YulExpressionStatement",
"src": "10205:50:3"
}
]
},
"name": "store_literal_in_memory_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "10186:6:3",
"type": ""
}
],
"src": "10088:174:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10374:76:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10396:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10404:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10392:3:3"
},
"nodeType": "YulFunctionCall",
"src": "10392:14:3"
},
{
"hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10408:34:3",
"type": "",
"value": "Ownable: caller is not the owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10385:6:3"
},
"nodeType": "YulFunctionCall",
"src": "10385:58:3"
},
"nodeType": "YulExpressionStatement",
"src": "10385:58:3"
}
]
},
"name": "store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "10366:6:3",
"type": ""
}
],
"src": "10268:182:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10562:60:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10584:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10592:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10580:3:3"
},
"nodeType": "YulFunctionCall",
"src": "10580:14:3"
},
{
"hexValue": "4e6f7420656e6f756768204574686572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10596:18:3",
"type": "",
"value": "Not enough Ether"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10573:6:3"
},
"nodeType": "YulFunctionCall",
"src": "10573:42:3"
},
"nodeType": "YulExpressionStatement",
"src": "10573:42:3"
}
]
},
"name": "store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "10554:6:3",
"type": ""
}
],
"src": "10456:166:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10734:75:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10756:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10764:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10752:3:3"
},
"nodeType": "YulFunctionCall",
"src": "10752:14:3"
},
{
"hexValue": "55736572206164647265737320616c72656164792072656769737465726564",
"kind": "string",
"nodeType": "YulLiteral",
"src": "10768:33:3",
"type": "",
"value": "User address already registered"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10745:6:3"
},
"nodeType": "YulFunctionCall",
"src": "10745:57:3"
},
"nodeType": "YulExpressionStatement",
"src": "10745:57:3"
}
]
},
"name": "store_literal_in_memory_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "10726:6:3",
"type": ""
}
],
"src": "10628:181:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10858:79:3",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10915:16:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10924:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10927:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "10917:6:3"
},
"nodeType": "YulFunctionCall",
"src": "10917:12:3"
},
"nodeType": "YulExpressionStatement",
"src": "10917:12:3"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10881:5:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10906:5:3"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "10888:17:3"
},
"nodeType": "YulFunctionCall",
"src": "10888:24:3"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "10878:2:3"
},
"nodeType": "YulFunctionCall",
"src": "10878:35:3"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "10871:6:3"
},
"nodeType": "YulFunctionCall",
"src": "10871:43:3"
},
"nodeType": "YulIf",
"src": "10868:63:3"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "10851:5:3",
"type": ""
}
],
"src": "10815:122:3"
}
]
},
"contents": "{\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 abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 38)\n store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec(pos)\n end := add(pos, 32)\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_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_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__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_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__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_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64__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_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49__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_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__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_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e__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_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec__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_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec_to_t_string_memory_ptr_fromStack( tail)\n\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 allocate_unbounded() -> memPtr {\n memPtr := mload(64)\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 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 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 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 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 cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: new owner is the zero a\")\n\n mstore(add(memPtr, 32), \"ddress\")\n\n }\n\n function store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb(memPtr) {\n\n mstore(add(memPtr, 0), \"Failed to send Ether\")\n\n }\n\n function store_literal_in_memory_53baf50d64494199ce04455daeffa3c9d91ee264d53ca2dbd436fcdba00e0b64(memPtr) {\n\n mstore(add(memPtr, 0), \"Needs minimum 0.01 ETH in comiss\")\n\n mstore(add(memPtr, 32), \"ion to withdraw\")\n\n }\n\n function store_literal_in_memory_7f3503dc020afc5268a239cc56fd3ab0862f5f948828176ba1911b7752598b49(memPtr) {\n\n mstore(add(memPtr, 0), \"Not a valid user address\")\n\n }\n\n function store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe(memPtr) {\n\n mstore(add(memPtr, 0), \"Ownable: caller is not the owner\")\n\n }\n\n function store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e(memPtr) {\n\n mstore(add(memPtr, 0), \"Not enough Ether\")\n\n }\n\n function store_literal_in_memory_deabbe85e4dd495ec3c1f8ebe2cf1cf29d1f3c1f1c410ee4d0d8f437b4d44bec(memPtr) {\n\n mstore(add(memPtr, 0), \"User address already registered\")\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 3,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061007b5760003560e01c80638da5cb5b1161004e5780638da5cb5b146100e1578063bb5d40eb1461010c578063dd6d3ca714610137578063f2fde38b146101625761007b565b80631f864d57146100805780633e25e83714610097578063421b2d8b146100ae578063715018a6146100ca575b600080fd5b34801561008c57600080fd5b5061009561018b565b005b3480156100a357600080fd5b506100ac610297565b005b6100c860048036038101906100c39190610a4e565b610443565b005b3480156100d657600080fd5b506100df6106a3565b005b3480156100ed57600080fd5b506100f661072b565b6040516101039190610b9d565b60405180910390f35b34801561011857600080fd5b50610121610754565b60405161012e9190610bb8565b60405180910390f35b34801561014357600080fd5b5061014c61082e565b6040516101599190610cb3565b60405180910390f35b34801561016e57600080fd5b5061018960048036038101906101849190610a4e565b610875565b005b61019361096d565b73ffffffffffffffffffffffffffffffffffffffff166101b161072b565b73ffffffffffffffffffffffffffffffffffffffff1614610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fe90610c53565b60405180910390fd5b6000600354476102179190610dc0565b905061022161072b565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050610294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028b90610bf3565b60405180910390fd5b50565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050662386f26fc10000811015610325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161031c90610c13565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050610399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039090610bf3565b60405180910390fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546103e49190610dc0565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008282546104399190610dc0565b9250508190555050565b80600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050990610c93565b60405180910390fd5b662386f26fc1000034101561055c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055390610c73565b60405180910390fd5b33600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006064600a346105eb9190610d66565b6105f59190610d35565b905080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106429190610cdf565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008282546106979190610cdf565b92505081905550505050565b6106ab61096d565b73ffffffffffffffffffffffffffffffffffffffff166106c961072b565b73ffffffffffffffffffffffffffffffffffffffff161461071f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071690610c53565b60405180910390fd5b6107296000610975565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033600073ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610826576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081d90610c33565b60405180910390fd5b600191505090565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b61087d61096d565b73ffffffffffffffffffffffffffffffffffffffff1661089b61072b565b73ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890610c53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095890610bd3565b60405180910390fd5b61096a81610975565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081359050610a488161100a565b92915050565b600060208284031215610a6457610a63610e9a565b5b6000610a7284828501610a39565b91505092915050565b610a8481610df4565b82525050565b610a9381610e06565b82525050565b6000610aa6602683610cce565b9150610ab182610e9f565b604082019050919050565b6000610ac9601483610cce565b9150610ad482610eee565b602082019050919050565b6000610aec602f83610cce565b9150610af782610f17565b604082019050919050565b6000610b0f601883610cce565b9150610b1a82610f66565b602082019050919050565b6000610b32602083610cce565b9150610b3d82610f8f565b602082019050919050565b6000610b55601083610cce565b9150610b6082610fb8565b602082019050919050565b6000610b78601f83610cce565b9150610b8382610fe1565b602082019050919050565b610b9781610e32565b82525050565b6000602082019050610bb26000830184610a7b565b92915050565b6000602082019050610bcd6000830184610a8a565b92915050565b60006020820190508181036000830152610bec81610a99565b9050919050565b60006020820190508181036000830152610c0c81610abc565b9050919050565b60006020820190508181036000830152610c2c81610adf565b9050919050565b60006020820190508181036000830152610c4c81610b02565b9050919050565b60006020820190508181036000830152610c6c81610b25565b9050919050565b60006020820190508181036000830152610c8c81610b48565b9050919050565b60006020820190508181036000830152610cac81610b6b565b9050919050565b6000602082019050610cc86000830184610b8e565b92915050565b600082825260208201905092915050565b6000610cea82610e32565b9150610cf583610e32565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d2a57610d29610e3c565b5b828201905092915050565b6000610d4082610e32565b9150610d4b83610e32565b925082610d5b57610d5a610e6b565b5b828204905092915050565b6000610d7182610e32565b9150610d7c83610e32565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610db557610db4610e3c565b5b828202905092915050565b6000610dcb82610e32565b9150610dd683610e32565b925082821015610de957610de8610e3c565b5b828203905092915050565b6000610dff82610e12565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b7f4e65656473206d696e696d756d20302e30312045544820696e20636f6d69737360008201527f696f6e20746f2077697468647261770000000000000000000000000000000000602082015250565b7f4e6f7420612076616c6964207573657220616464726573730000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4e6f7420656e6f75676820457468657200000000000000000000000000000000600082015250565b7f55736572206164647265737320616c7265616479207265676973746572656400600082015250565b61101381610df4565b811461101e57600080fd5b5056fea264697066735822122001ff92eecf650f30ee4809e3c823f3aeda2fdfb952d69bcab612e99d4d39bdde64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE1 JUMPI DUP1 PUSH4 0xBB5D40EB EQ PUSH2 0x10C JUMPI DUP1 PUSH4 0xDD6D3CA7 EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x162 JUMPI PUSH2 0x7B JUMP JUMPDEST DUP1 PUSH4 0x1F864D57 EQ PUSH2 0x80 JUMPI DUP1 PUSH4 0x3E25E837 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x421B2D8B EQ PUSH2 0xAE JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xCA JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x95 PUSH2 0x18B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAC PUSH2 0x297 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC3 SWAP2 SWAP1 PUSH2 0xA4E JUMP JUMPDEST PUSH2 0x443 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xDF PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF6 PUSH2 0x72B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x103 SWAP2 SWAP1 PUSH2 0xB9D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x118 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x121 PUSH2 0x754 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12E SWAP2 SWAP1 PUSH2 0xBB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x143 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14C PUSH2 0x82E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x159 SWAP2 SWAP1 PUSH2 0xCB3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x189 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x184 SWAP2 SWAP1 PUSH2 0xA4E JUMP JUMPDEST PUSH2 0x875 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1B1 PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x207 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FE SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 SLOAD SELFBALANCE PUSH2 0x217 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST SWAP1 POP PUSH2 0x221 PUSH2 0x72B JUMP JUMPDEST 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 PUSH2 0x294 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x28B SWAP1 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP PUSH7 0x2386F26FC10000 DUP2 LT ISZERO PUSH2 0x325 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x31C SWAP1 PUSH2 0xC13 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER 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 PUSH2 0x399 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x390 SWAP1 PUSH2 0xBF3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x3E4 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x439 SWAP2 SWAP1 PUSH2 0xDC0 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x512 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x509 SWAP1 PUSH2 0xC93 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH7 0x2386F26FC10000 CALLVALUE LT ISZERO PUSH2 0x55C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x553 SWAP1 PUSH2 0xC73 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x64 PUSH1 0xA CALLVALUE PUSH2 0x5EB SWAP2 SWAP1 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x5F5 SWAP2 SWAP1 PUSH2 0xD35 JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD PUSH2 0x642 SWAP2 SWAP1 PUSH2 0xCDF JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x3 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x697 SWAP2 SWAP1 PUSH2 0xCDF JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH2 0x6AB PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x6C9 PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x71F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x716 SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x729 PUSH1 0x0 PUSH2 0x975 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x826 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x81D SWAP1 PUSH2 0xC33 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x87D PUSH2 0x96D JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x89B PUSH2 0x72B JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x8F1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8E8 SWAP1 PUSH2 0xC53 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x961 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x958 SWAP1 PUSH2 0xBD3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x96A DUP2 PUSH2 0x975 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xA48 DUP2 PUSH2 0x100A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA64 JUMPI PUSH2 0xA63 PUSH2 0xE9A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xA72 DUP5 DUP3 DUP6 ADD PUSH2 0xA39 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xA84 DUP2 PUSH2 0xDF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0xA93 DUP2 PUSH2 0xE06 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAA6 PUSH1 0x26 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAB1 DUP3 PUSH2 0xE9F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAC9 PUSH1 0x14 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAD4 DUP3 PUSH2 0xEEE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAEC PUSH1 0x2F DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xAF7 DUP3 PUSH2 0xF17 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0F PUSH1 0x18 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB1A DUP3 PUSH2 0xF66 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 PUSH1 0x20 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB3D DUP3 PUSH2 0xF8F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB55 PUSH1 0x10 DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB60 DUP3 PUSH2 0xFB8 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB78 PUSH1 0x1F DUP4 PUSH2 0xCCE JUMP JUMPDEST SWAP2 POP PUSH2 0xB83 DUP3 PUSH2 0xFE1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB97 DUP2 PUSH2 0xE32 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBB2 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA7B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xBCD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xA8A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xBEC DUP2 PUSH2 0xA99 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC0C DUP2 PUSH2 0xABC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC2C DUP2 PUSH2 0xADF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC4C DUP2 PUSH2 0xB02 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC6C DUP2 PUSH2 0xB25 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xC8C DUP2 PUSH2 0xB48 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xCAC DUP2 PUSH2 0xB6B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCC8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB8E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCEA DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xCF5 DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0xD2A JUMPI PUSH2 0xD29 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD40 DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xD4B DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xE6B JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD71 DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xD7C DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0xDB5 JUMPI PUSH2 0xDB4 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDCB DUP3 PUSH2 0xE32 JUMP JUMPDEST SWAP2 POP PUSH2 0xDD6 DUP4 PUSH2 0xE32 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0xDE9 JUMPI PUSH2 0xDE8 PUSH2 0xE3C JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDFF DUP3 PUSH2 0xE12 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4661696C656420746F2073656E64204574686572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E65656473206D696E696D756D20302E30312045544820696E20636F6D697373 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x696F6E20746F2077697468647261770000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E6F7420612076616C6964207573657220616464726573730000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4E6F7420656E6F75676820457468657200000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x55736572206164647265737320616C7265616479207265676973746572656400 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x1013 DUP2 PUSH2 0xDF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x101E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADD SELFDESTRUCT SWAP3 0xEE 0xCF PUSH6 0xF30EE4809E3 0xC8 0x23 RETURN 0xAE 0xDA 0x2F 0xDF 0xB9 MSTORE 0xD6 SWAP12 0xCA 0xB6 SLT 0xE9 SWAP14 0x4D CODECOPY 0xBD 0xDE PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "177:1977:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1163:212;;;;;;;;;;;;;:::i;:::-;;1385:438;;;;;;;;;;;;;:::i;:::-;;518:416;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1614:101:1;;;;;;;;;;;;;:::i;:::-;;982:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1052:105:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;944:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1864:198:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1163:212:0;1205:12:1;:10;:12::i;:::-;1194:23;;:7;:5;:7::i;:::-;:23;;;1186:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1230:15:0::1;1272:14;;1248:21;:38;;;;:::i;:::-;1230:56;;1321:7;:5;:7::i;:::-;1313:21;;:30;1335:7;1313:30;;;;;;;;;;;;;;;;;;;;;;;1305:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1220:155;1163:212::o:0;1385:438::-;1432:18;1453:9;:21;1463:10;1453:21;;;;;;;;;;;;;;;;1432:42;;1515:10;1501;:24;;1493:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;1612:10;1604:24;;:36;1629:10;1604:36;;;;;;;;;;;;;;;;;;;;;;;1596:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;1768:10;1744:9;:21;1754:10;1744:21;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;1720:9;:21;1730:10;1720:21;;;;;;;;;;;;;;;:58;;;;1806:10;1788:14;;:28;;;;;;;:::i;:::-;;;;;;;;1422:401;1385:438::o;518:416::-;593:12;2094:3;2063:35;;:5;:19;2069:12;2063:19;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;2055:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;638:10:::1;625:9;:23;;617:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;701:10;679:5;:19;685:12;679:19;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;778:18;818:3;812:2;800:9;:14;;;;:::i;:::-;799:22;;;;:::i;:::-;778:43;;879:10;855:9;:21;865:10;855:21;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;831:9;:21;841:10;831:21;;;;;;;;;;;;;;;:58;;;;917:10;899:14;;:28;;;;;;;:::i;:::-;;;;;;;;607:327;518:416:::0;;:::o;1614:101:1:-;1205:12;:10;:12::i;:::-;1194:23;;:7;:5;:7::i;:::-;:23;;;1186:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1678:30:::1;1705:1;1678:18;:30::i;:::-;1614:101::o:0;982:85::-;1028:7;1054:6;;;;;;;;;;;1047:13;;982:85;:::o;1052:105:0:-;1122:4;1102:10;1932:3;1901:35;;:5;:19;1907:12;1901:19;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;;1893:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;1146:4:::1;1139:11;;1052:105:::0;;:::o;944:98::-;988:7;1014:9;:21;1024:10;1014:21;;;;;;;;;;;;;;;;1007:28;;944:98;:::o;1864:198:1:-;1205:12;:10;:12::i;:::-;1194:23;;:7;:5;:7::i;:::-;:23;;;1186:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1972:1:::1;1952:22;;:8;:22;;;;1944:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2027:28;2046:8;2027:18;:28::i;:::-;1864:198:::0;:::o;587:96:2:-;640:7;666:10;659:17;;587:96;:::o;2216:187:1:-;2289:16;2308:6;;;;;;;;;;;2289:25;;2333:8;2324:6;;:17;;;;;;;;;;;;;;;;;;2387:8;2356:40;;2377:8;2356:40;;;;;;;;;;;;2279:124;2216:187;:::o;7:139:3:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:119;;;266:79;;:::i;:::-;228:119;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;152:329;;;;:::o;487:118::-;574:24;592:5;574:24;:::i;:::-;569:3;562:37;487:118;;:::o;611:109::-;692:21;707:5;692:21;:::i;:::-;687:3;680:34;611:109;;:::o;726:366::-;868:3;889:67;953:2;948:3;889:67;:::i;:::-;882:74;;965:93;1054:3;965:93;:::i;:::-;1083:2;1078:3;1074:12;1067:19;;726:366;;;:::o;1098:::-;1240:3;1261:67;1325:2;1320:3;1261:67;:::i;:::-;1254:74;;1337:93;1426:3;1337:93;:::i;:::-;1455:2;1450:3;1446:12;1439:19;;1098:366;;;:::o;1470:::-;1612:3;1633:67;1697:2;1692:3;1633:67;:::i;:::-;1626:74;;1709:93;1798:3;1709:93;:::i;:::-;1827:2;1822:3;1818:12;1811:19;;1470:366;;;:::o;1842:::-;1984:3;2005:67;2069:2;2064:3;2005:67;:::i;:::-;1998:74;;2081:93;2170:3;2081:93;:::i;:::-;2199:2;2194:3;2190:12;2183:19;;1842:366;;;:::o;2214:::-;2356:3;2377:67;2441:2;2436:3;2377:67;:::i;:::-;2370:74;;2453:93;2542:3;2453:93;:::i;:::-;2571:2;2566:3;2562:12;2555:19;;2214:366;;;:::o;2586:::-;2728:3;2749:67;2813:2;2808:3;2749:67;:::i;:::-;2742:74;;2825:93;2914:3;2825:93;:::i;:::-;2943:2;2938:3;2934:12;2927:19;;2586:366;;;:::o;2958:::-;3100:3;3121:67;3185:2;3180:3;3121:67;:::i;:::-;3114:74;;3197:93;3286:3;3197:93;:::i;:::-;3315:2;3310:3;3306:12;3299:19;;2958:366;;;:::o;3330:118::-;3417:24;3435:5;3417:24;:::i;:::-;3412:3;3405:37;3330:118;;:::o;3454:222::-;3547:4;3585:2;3574:9;3570:18;3562:26;;3598:71;3666:1;3655:9;3651:17;3642:6;3598:71;:::i;:::-;3454:222;;;;:::o;3682:210::-;3769:4;3807:2;3796:9;3792:18;3784:26;;3820:65;3882:1;3871:9;3867:17;3858:6;3820:65;:::i;:::-;3682:210;;;;:::o;3898:419::-;4064:4;4102:2;4091:9;4087:18;4079:26;;4151:9;4145:4;4141:20;4137:1;4126:9;4122:17;4115:47;4179:131;4305:4;4179:131;:::i;:::-;4171:139;;3898:419;;;:::o;4323:::-;4489:4;4527:2;4516:9;4512:18;4504:26;;4576:9;4570:4;4566:20;4562:1;4551:9;4547:17;4540:47;4604:131;4730:4;4604:131;:::i;:::-;4596:139;;4323:419;;;:::o;4748:::-;4914:4;4952:2;4941:9;4937:18;4929:26;;5001:9;4995:4;4991:20;4987:1;4976:9;4972:17;4965:47;5029:131;5155:4;5029:131;:::i;:::-;5021:139;;4748:419;;;:::o;5173:::-;5339:4;5377:2;5366:9;5362:18;5354:26;;5426:9;5420:4;5416:20;5412:1;5401:9;5397:17;5390:47;5454:131;5580:4;5454:131;:::i;:::-;5446:139;;5173:419;;;:::o;5598:::-;5764:4;5802:2;5791:9;5787:18;5779:26;;5851:9;5845:4;5841:20;5837:1;5826:9;5822:17;5815:47;5879:131;6005:4;5879:131;:::i;:::-;5871:139;;5598:419;;;:::o;6023:::-;6189:4;6227:2;6216:9;6212:18;6204:26;;6276:9;6270:4;6266:20;6262:1;6251:9;6247:17;6240:47;6304:131;6430:4;6304:131;:::i;:::-;6296:139;;6023:419;;;:::o;6448:::-;6614:4;6652:2;6641:9;6637:18;6629:26;;6701:9;6695:4;6691:20;6687:1;6676:9;6672:17;6665:47;6729:131;6855:4;6729:131;:::i;:::-;6721:139;;6448:419;;;:::o;6873:222::-;6966:4;7004:2;6993:9;6989:18;6981:26;;7017:71;7085:1;7074:9;7070:17;7061:6;7017:71;:::i;:::-;6873:222;;;;:::o;7182:169::-;7266:11;7300:6;7295:3;7288:19;7340:4;7335:3;7331:14;7316:29;;7182:169;;;;:::o;7357:305::-;7397:3;7416:20;7434:1;7416:20;:::i;:::-;7411:25;;7450:20;7468:1;7450:20;:::i;:::-;7445:25;;7604:1;7536:66;7532:74;7529:1;7526:81;7523:107;;;7610:18;;:::i;:::-;7523:107;7654:1;7651;7647:9;7640:16;;7357:305;;;;:::o;7668:185::-;7708:1;7725:20;7743:1;7725:20;:::i;:::-;7720:25;;7759:20;7777:1;7759:20;:::i;:::-;7754:25;;7798:1;7788:35;;7803:18;;:::i;:::-;7788:35;7845:1;7842;7838:9;7833:14;;7668:185;;;;:::o;7859:348::-;7899:7;7922:20;7940:1;7922:20;:::i;:::-;7917:25;;7956:20;7974:1;7956:20;:::i;:::-;7951:25;;8144:1;8076:66;8072:74;8069:1;8066:81;8061:1;8054:9;8047:17;8043:105;8040:131;;;8151:18;;:::i;:::-;8040:131;8199:1;8196;8192:9;8181:20;;7859:348;;;;:::o;8213:191::-;8253:4;8273:20;8291:1;8273:20;:::i;:::-;8268:25;;8307:20;8325:1;8307:20;:::i;:::-;8302:25;;8346:1;8343;8340:8;8337:34;;;8351:18;;:::i;:::-;8337:34;8396:1;8393;8389:9;8381:17;;8213:191;;;;:::o;8410:96::-;8447:7;8476:24;8494:5;8476:24;:::i;:::-;8465:35;;8410:96;;;:::o;8512:90::-;8546:7;8589:5;8582:13;8575:21;8564:32;;8512:90;;;:::o;8608:126::-;8645:7;8685:42;8678:5;8674:54;8663:65;;8608:126;;;:::o;8740:77::-;8777:7;8806:5;8795:16;;8740:77;;;:::o;8823:180::-;8871:77;8868:1;8861:88;8968:4;8965:1;8958:15;8992:4;8989:1;8982:15;9009:180;9057:77;9054:1;9047:88;9154:4;9151:1;9144:15;9178:4;9175:1;9168:15;9318:117;9427:1;9424;9417:12;9441:225;9581:34;9577:1;9569:6;9565:14;9558:58;9650:8;9645:2;9637:6;9633:15;9626:33;9441:225;:::o;9672:170::-;9812:22;9808:1;9800:6;9796:14;9789:46;9672:170;:::o;9848:234::-;9988:34;9984:1;9976:6;9972:14;9965:58;10057:17;10052:2;10044:6;10040:15;10033:42;9848:234;:::o;10088:174::-;10228:26;10224:1;10216:6;10212:14;10205:50;10088:174;:::o;10268:182::-;10408:34;10404:1;10396:6;10392:14;10385:58;10268:182;:::o;10456:166::-;10596:18;10592:1;10584:6;10580:14;10573:42;10456:166;:::o;10628:181::-;10768:33;10764:1;10756:6;10752:14;10745:57;10628:181;:::o;10815:122::-;10888:24;10906:5;10888:24;:::i;:::-;10881:5;10878:35;10868:63;;10927:1;10924;10917:12;10868:63;10815:122;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "836600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"addUser(address)": "infinite",
"getComission()": "2570",
"isValid()": "2724",
"owner()": "2522",
"renounceOwnership()": "30441",
"transferOwnership(address)": "30789",
"withdrawAllWithoutCommission()": "infinite",
"withdrawCommission()": "infinite"
}
},
"methodIdentifiers": {
"addUser(address)": "421b2d8b",
"getComission()": "dd6d3ca7",
"isValid()": "bb5d40eb",
"owner()": "8da5cb5b",
"renounceOwnership()": "715018a6",
"transferOwnership(address)": "f2fde38b",
"withdrawAllWithoutCommission()": "1f864d57",
"withdrawCommission()": "3e25e837"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_userAddress",
"type": "address"
}
],
"name": "addUser",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getComission",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isValid",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawAllWithoutCommission",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawCommission",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_userAddress",
"type": "address"
}
],
"name": "addUser",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getComission",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isValid",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawAllWithoutCommission",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawCommission",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"owner()": {
"details": "Returns the address of the current owner."
},
"renounceOwnership()": {
"details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
},
"transferOwnership(address)": {
"details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/NFTDropBotLicence.sol": "NFTDropBotLicence"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/NFTDropBotLicence.sol": {
"keccak256": "0xc2c53bed388c0051742d79f2f1a4af8d57194d56003ec57137bdead2ab93d6b1",
"license": "GPL-3.0",
"urls": [
"bzz-raw://d02c38c6305c58160bf8761954ba5b174535811c2128acffc00488484fe81874",
"dweb:/ipfs/QmProhzuaCjYNicTF17MAwvTCSRSQinR4N7CTqLTHjj6Wr"
]
},
"https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol": {
"keccak256": "0x64d0f54d0d9a6c9f78e54930477a509a0c2bee91ddda7b2f4a781074b6e66ba4",
"license": "MIT",
"urls": [
"bzz-raw://77d0f0721942b0dc9d2f5c57b97c814bb7b18e06614a872cbaf68feab2174bb8",
"dweb:/ipfs/QmacDiUVK818R4iXkEAUfehwaYFvptqLAELkcf9aJXZjyy"
]
},
"https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Context.sol": {
"keccak256": "0x90565a39ae45c80f0468dc96c7b20d0afc3055f344c8203a0c9258239f350b9f",
"license": "MIT",
"urls": [
"bzz-raw://26e8b38a7ac8e7b4463af00cf7fff1bf48ae9875765bf4f7751e100124d0bc8c",
"dweb:/ipfs/QmWcsmkVr24xmmjfnBQZoemFniXjj3vwT78Cz6uqZW1Hux"
]
}
},
"version": 1
}
{
"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": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506101e3806100206000396000f3fe60806040526004361061001e5760003560e01c8063a0712d6814610023575b600080fd5b61003d600480360381019061003891906100bc565b610053565b60405161004a9190610137565b60405180910390f35b6000662386f26fc1000034101561009f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009690610117565b60405180910390fd5b819050919050565b6000813590506100b681610196565b92915050565b6000602082840312156100ce57600080fd5b60006100dc848285016100a7565b91505092915050565b60006100f2601083610152565b91506100fd8261016d565b602082019050919050565b61011181610163565b82525050565b60006020820190508181036000830152610130816100e5565b9050919050565b600060208201905061014c6000830184610108565b92915050565b600082825260208201905092915050565b6000819050919050565b7f4e6f7420656e6f75676820457468657200000000000000000000000000000000600082015250565b61019f81610163565b81146101aa57600080fd5b5056fea26469706673582212201d4e36d2209fe36334e2b8b993c1561ae4e5be4b3fda573bab2a3382e6db39c464736f6c63430008040033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E3 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x23 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38 SWAP2 SWAP1 PUSH2 0xBC JUMP JUMPDEST PUSH2 0x53 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A SWAP2 SWAP1 PUSH2 0x137 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH7 0x2386F26FC10000 CALLVALUE LT ISZERO PUSH2 0x9F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x96 SWAP1 PUSH2 0x117 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB6 DUP2 PUSH2 0x196 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDC DUP5 DUP3 DUP6 ADD PUSH2 0xA7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2 PUSH1 0x10 DUP4 PUSH2 0x152 JUMP JUMPDEST SWAP2 POP PUSH2 0xFD DUP3 PUSH2 0x16D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x111 DUP2 PUSH2 0x163 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x130 DUP2 PUSH2 0xE5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x108 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F7420656E6F75676820457468657200000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x19F DUP2 PUSH2 0x163 JUMP JUMPDEST DUP2 EQ PUSH2 0x1AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SAR 0x4E CALLDATASIZE 0xD2 KECCAK256 SWAP16 0xE3 PUSH4 0x34E2B8B9 SWAP4 0xC1 JUMP BYTE 0xE4 0xE5 0xBE 0x4B EXTCODEHASH 0xDA JUMPI EXTCODESIZE 0xAB 0x2A CALLER DUP3 0xE6 0xDB CODECOPY 0xC4 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ",
"sourceMap": "70:183:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:2124:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "218:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "264:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "273:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "276:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "266:6:1"
},
"nodeType": "YulFunctionCall",
"src": "266:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "266:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "239:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "248:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "235:3:1"
},
"nodeType": "YulFunctionCall",
"src": "235:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "260:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "231:3:1"
},
"nodeType": "YulFunctionCall",
"src": "231:32:1"
},
"nodeType": "YulIf",
"src": "228:2:1"
},
{
"nodeType": "YulBlock",
"src": "290:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "305:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "319:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "309:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "334:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "369:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "380:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "365:3:1"
},
"nodeType": "YulFunctionCall",
"src": "365:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "344:20:1"
},
"nodeType": "YulFunctionCall",
"src": "344:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "334:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "188:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "199:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "211:6:1",
"type": ""
}
],
"src": "152:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "566:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "576:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "642:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "647:2:1",
"type": "",
"value": "16"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "583:58:1"
},
"nodeType": "YulFunctionCall",
"src": "583:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "576:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "748:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e",
"nodeType": "YulIdentifier",
"src": "659:88:1"
},
"nodeType": "YulFunctionCall",
"src": "659:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "659:93:1"
},
{
"nodeType": "YulAssignment",
"src": "761:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "772:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "777:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "768:3:1"
},
"nodeType": "YulFunctionCall",
"src": "768:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "761:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "554:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "562:3:1",
"type": ""
}
],
"src": "420:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "857:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "874:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "897:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "879:17:1"
},
"nodeType": "YulFunctionCall",
"src": "879:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "867:6:1"
},
"nodeType": "YulFunctionCall",
"src": "867:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "867:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "845:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "852:3:1",
"type": ""
}
],
"src": "792:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1087:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1097:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1109:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1120:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1105:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1105:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1097:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1144:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1155:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1140:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1140:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1163:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1169:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1159:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1159:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1133:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1133:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "1133:47:1"
},
{
"nodeType": "YulAssignment",
"src": "1189:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1323:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1197:124:1"
},
"nodeType": "YulFunctionCall",
"src": "1197:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1189:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1067:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1082:4:1",
"type": ""
}
],
"src": "916:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1439:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1449:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1461:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1472:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1457:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1457:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1449:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1529:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1542:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1553:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1538:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1538:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1485:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1485:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1485:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1411:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1423:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1434:4:1",
"type": ""
}
],
"src": "1341:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1665:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1682:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1687:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1675:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1675:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "1675:19:1"
},
{
"nodeType": "YulAssignment",
"src": "1703:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1722:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1727:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1718:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1718:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1703:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1637:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1642:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1653:11:1",
"type": ""
}
],
"src": "1569:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1789:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1799:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1810:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1799:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1771:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1781:7:1",
"type": ""
}
],
"src": "1744:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1933:60:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1955:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1963:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1951:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1951:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "1967:18:1",
"type": "",
"value": "Not enough Ether"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1944:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1944:42:1"
},
"nodeType": "YulExpressionStatement",
"src": "1944:42:1"
}
]
},
"name": "store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1925:6:1",
"type": ""
}
],
"src": "1827:166:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2042:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2099:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2108:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2111:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2101:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2101:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2101:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2065:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2090:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2072:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2072:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2062:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2062:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2055:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2055:43:1"
},
"nodeType": "YulIf",
"src": "2052:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2035:5:1",
"type": ""
}
],
"src": "1999:122:1"
}
]
},
"contents": "{\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(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e(pos)\n end := add(pos, 32)\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_stringliteral_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e__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_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e_to_t_string_memory_ptr_fromStack( tail)\n\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 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 cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function store_literal_in_memory_ccdc0d3926caa0403df8f48c981e37a327372fb4d0c44bab2cc7e9cbbc97413e(memPtr) {\n\n mstore(add(memPtr, 0), \"Not enough Ether\")\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}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061001e5760003560e01c8063a0712d6814610023575b600080fd5b61003d600480360381019061003891906100bc565b610053565b60405161004a9190610137565b60405180910390f35b6000662386f26fc1000034101561009f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161009690610117565b60405180910390fd5b819050919050565b6000813590506100b681610196565b92915050565b6000602082840312156100ce57600080fd5b60006100dc848285016100a7565b91505092915050565b60006100f2601083610152565b91506100fd8261016d565b602082019050919050565b61011181610163565b82525050565b60006020820190508181036000830152610130816100e5565b9050919050565b600060208201905061014c6000830184610108565b92915050565b600082825260208201905092915050565b6000819050919050565b7f4e6f7420656e6f75676820457468657200000000000000000000000000000000600082015250565b61019f81610163565b81146101aa57600080fd5b5056fea26469706673582212201d4e36d2209fe36334e2b8b993c1561ae4e5be4b3fda573bab2a3382e6db39c464736f6c63430008040033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x1E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x23 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38 SWAP2 SWAP1 PUSH2 0xBC JUMP JUMPDEST PUSH2 0x53 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4A SWAP2 SWAP1 PUSH2 0x137 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH7 0x2386F26FC10000 CALLVALUE LT ISZERO PUSH2 0x9F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x96 SWAP1 PUSH2 0x117 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB6 DUP2 PUSH2 0x196 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xDC DUP5 DUP3 DUP6 ADD PUSH2 0xA7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2 PUSH1 0x10 DUP4 PUSH2 0x152 JUMP JUMPDEST SWAP2 POP PUSH2 0xFD DUP3 PUSH2 0x16D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x111 DUP2 PUSH2 0x163 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x130 DUP2 PUSH2 0xE5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x108 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E6F7420656E6F75676820457468657200000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x19F DUP2 PUSH2 0x163 JUMP JUMPDEST DUP2 EQ PUSH2 0x1AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SAR 0x4E CALLDATASIZE 0xD2 KECCAK256 SWAP16 0xE3 PUSH4 0x34E2B8B9 SWAP4 0xC1 JUMP BYTE 0xE4 0xE5 0xBE 0x4B EXTCODEHASH 0xDA JUMPI EXTCODESIZE 0xAB 0x2A CALLER DUP3 0xE6 0xDB CODECOPY 0xC4 PUSH5 0x736F6C6343 STOP ADDMOD DIV STOP CALLER ",
"sourceMap": "70:183:0:-:0;;;;;;;;;;;;;;;;;;;;;90:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;142:7;182:10;169:9;:23;;161:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;239:5;232:12;;90:161;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;211:6;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:366::-;562:3;583:67;647:2;642:3;583:67;:::i;:::-;576:74;;659:93;748:3;659:93;:::i;:::-;777:2;772:3;768:12;761:19;;566:220;;;:::o;792:118::-;879:24;897:5;879:24;:::i;:::-;874:3;867:37;857:53;;:::o;916:419::-;1082:4;1120:2;1109:9;1105:18;1097:26;;1169:9;1163:4;1159:20;1155:1;1144:9;1140:17;1133:47;1197:131;1323:4;1197:131;:::i;:::-;1189:139;;1087:248;;;:::o;1341:222::-;1434:4;1472:2;1461:9;1457:18;1449:26;;1485:71;1553:1;1542:9;1538:17;1529:6;1485:71;:::i;:::-;1439:124;;;;:::o;1569:169::-;1653:11;1687:6;1682:3;1675:19;1727:4;1722:3;1718:14;1703:29;;1665:73;;;;:::o;1744:77::-;1781:7;1810:5;1799:16;;1789:32;;;:::o;1827:166::-;1967:18;1963:1;1955:6;1951:14;1944:42;1933:60;:::o;1999:122::-;2072:24;2090:5;2072:24;:::i;:::-;2065:5;2062:35;2052:2;;2111:1;2108;2101:12;2052:2;2042:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "96600",
"executionCost": "147",
"totalCost": "96747"
},
"external": {
"mint(uint256)": "infinite"
}
},
"methodIdentifiers": {
"mint(uint256)": "a0712d68"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "count",
"type": "uint256"
}
],
"name": "mint",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
}
]
}
// this line is added to create a gist. Empty file is not allowed.
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "count",
"type": "uint256"
}
],
"name": "mint",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Test.sol": "Test"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Test.sol": {
"keccak256": "0xba3e0f8e04f1676e90a86240f041b5cd00197d2cdb62637c11f5a210139657a7",
"license": "GPL-3.0",
"urls": [
"bzz-raw://b4f58e9f37ac8f58c3675e57c7ad4a2de34862f6b42553e020a7c36691d46fac",
"dweb:/ipfs/QmTzixFhRPTjwuAPUPYQDqvpKouc62AXcfZAzrtyK1DMdC"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
/*
_______ _________ _______ _______ _______
( ____ \\__ __/( ____ \( )( ___ )
| ( \/ ) ( | ( \/| () () || ( ) |
| (_____ | | | | | || || || (___) |
(_____ ) | | | | ____ | |(_)| || ___ |
) | | | | | \_ )| | | || ( ) |
/\____) |___) (___| (___) || ) ( || ) ( |
\_______)\_______/(_______)|/ \||/ \|
*/
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol";
import "./@rarible/royalties/contracts/impl/RoyaltiesV2Impl.sol";
import "./@rarible/royalties/contracts/LibPart.sol";
import "./@rarible/royalties/contracts/LibRoyaltiesV2.sol";
contract sigma is ERC1155Supply, Ownable, RoyaltiesV2Impl {
bool public saleIsActive = false;
uint constant TOKEN_ID = 8;
uint constant NUM_RESERVED_TOKENS = 88;
uint constant MAX_TOKENS_PER_PURCHASE = 8;
uint constant MAX_TOKENS = 888;
uint constant TOKEN_PRICE = 0.0888 ether;
bytes4 private constant _INTERFACE_ID_ERC2981 = 0x2a55205a;
constructor(string memory uri) ERC1155(uri) {
}
function reserve() public onlyOwner {
_mint(msg.sender, TOKEN_ID, NUM_RESERVED_TOKENS, "");
}
function setSaleState(bool newState) public onlyOwner {
saleIsActive = newState;
}
function mint(uint numberOfTokens) external payable {
require(saleIsActive, "Sale must be active to mint Tokens");
require(numberOfTokens <= MAX_TOKENS_PER_PURCHASE, "Exceeded max token purchase");
require(totalSupply(TOKEN_ID) + numberOfTokens <= MAX_TOKENS, "Purchase would exceed max supply of tokens");
require(TOKEN_PRICE * numberOfTokens <= msg.value, "Ether value sent is not correct");
_mint(msg.sender, TOKEN_ID, numberOfTokens, "");
}
function burn(address account, uint256 id, uint256 amount) public {
require(msg.sender == account);
_burn(account, id, amount);
}
function withdraw() public onlyOwner {
uint balance = address(this).balance;
payable(msg.sender).transfer(balance);
}
function setRoyalties(uint _tokenId, address payable _royaltiesReceipientAddress, uint96 _percentageBasisPoints) public onlyOwner {
LibPart.Part[] memory _royalties = new LibPart.Part[](1);
_royalties[0].value = _percentageBasisPoints;
_royalties[0].account = _royaltiesReceipientAddress;
_saveRoyalties(_tokenId, _royalties);
}
function royaltyInfo(uint256 _tokenId, uint256 _salePrice) external view returns (address receiver, uint256 royaltyAmount) {
LibPart.Part[] memory _royalties = royalties[_tokenId];
if (_royalties.length > 0) {
return (_royalties[0].account, (_salePrice * _royalties[0].value)/10000);
}
return (address(0), 0);
}
function supportsInterface(bytes4 interfaceId) public view virtual override(ERC1155) returns (bool) {
if (interfaceId == LibRoyaltiesV2._INTERFACE_ID_ROYALTIES) {
return true;
}
if (interfaceId == _INTERFACE_ID_ERC2981) {
return true;
}
return super.supportsInterface(interfaceId);
}
}
This file has been truncated, but you can view the full file.
{
"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": {
"@_148": {
"entryPoint": null,
"id": 148,
"parameterSlots": 1,
"returnSlots": 0
},
"@_2185": {
"entryPoint": null,
"id": 2185,
"parameterSlots": 1,
"returnSlots": 0
},
"@_23": {
"entryPoint": null,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@_msgSender_1859": {
"entryPoint": 168,
"id": 1859,
"parameterSlots": 0,
"returnSlots": 1
},
"@_setOwner_102": {
"entryPoint": 176,
"id": 102,
"parameterSlots": 1,
"returnSlots": 0
},
"@_setURI_644": {
"entryPoint": 140,
"id": 644,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr_fromMemory": {
"entryPoint": 550,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr_fromMemory": {
"entryPoint": 625,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptr_fromMemory": {
"entryPoint": 676,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 757,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 788,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 798,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 852,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 906,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 960,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 1014,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1061,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1108,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1113,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1118,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1123,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1128,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3764:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "102:326:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "112:75:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "179:6:16"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "137:41:16"
},
"nodeType": "YulFunctionCall",
"src": "137:49:16"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "121:15:16"
},
"nodeType": "YulFunctionCall",
"src": "121:66:16"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "112:5:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "203:5:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "210:6:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "196:6:16"
},
"nodeType": "YulFunctionCall",
"src": "196:21:16"
},
"nodeType": "YulExpressionStatement",
"src": "196:21:16"
},
{
"nodeType": "YulVariableDeclaration",
"src": "226:27:16",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "241:5:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "248:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "237:3:16"
},
"nodeType": "YulFunctionCall",
"src": "237:16:16"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "230:3:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "291:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "293:77:16"
},
"nodeType": "YulFunctionCall",
"src": "293:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "293:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "272:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "277:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "268:3:16"
},
"nodeType": "YulFunctionCall",
"src": "268:16:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "286:3:16"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "265:2:16"
},
"nodeType": "YulFunctionCall",
"src": "265:25:16"
},
"nodeType": "YulIf",
"src": "262:112:16"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "405:3:16"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "410:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "415:6:16"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "383:21:16"
},
"nodeType": "YulFunctionCall",
"src": "383:39:16"
},
"nodeType": "YulExpressionStatement",
"src": "383:39:16"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "75:3:16",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "80:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "88:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "96:5:16",
"type": ""
}
],
"src": "7:421:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "521:282:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "570:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "572:77:16"
},
"nodeType": "YulFunctionCall",
"src": "572:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "572:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "549:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "557:4:16",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "545:3:16"
},
"nodeType": "YulFunctionCall",
"src": "545:17:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "564:3:16"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "541:3:16"
},
"nodeType": "YulFunctionCall",
"src": "541:27:16"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "534:6:16"
},
"nodeType": "YulFunctionCall",
"src": "534:35:16"
},
"nodeType": "YulIf",
"src": "531:122:16"
},
{
"nodeType": "YulVariableDeclaration",
"src": "662:27:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "682:6:16"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "676:5:16"
},
"nodeType": "YulFunctionCall",
"src": "676:13:16"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "666:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "698:99:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "770:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "778:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "766:3:16"
},
"nodeType": "YulFunctionCall",
"src": "766:17:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "785:6:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "793:3:16"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "707:58:16"
},
"nodeType": "YulFunctionCall",
"src": "707:90:16"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "698:5:16"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "499:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "507:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "515:5:16",
"type": ""
}
],
"src": "448:355:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "896:437:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "942:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "944:77:16"
},
"nodeType": "YulFunctionCall",
"src": "944:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "944:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "917:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "926:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "913:3:16"
},
"nodeType": "YulFunctionCall",
"src": "913:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "938:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "909:3:16"
},
"nodeType": "YulFunctionCall",
"src": "909:32:16"
},
"nodeType": "YulIf",
"src": "906:119:16"
},
{
"nodeType": "YulBlock",
"src": "1035:291:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1050:38:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1074:9:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1085:1:16",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1070:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1070:17:16"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1064:5:16"
},
"nodeType": "YulFunctionCall",
"src": "1064:24:16"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1054:6:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1135:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "1137:77:16"
},
"nodeType": "YulFunctionCall",
"src": "1137:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "1137:79:16"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1107:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1115:18:16",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1104:2:16"
},
"nodeType": "YulFunctionCall",
"src": "1104:30:16"
},
"nodeType": "YulIf",
"src": "1101:117:16"
},
{
"nodeType": "YulAssignment",
"src": "1232:84:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1288:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1299:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1284:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1284:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1308:7:16"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr_fromMemory",
"nodeType": "YulIdentifier",
"src": "1242:41:16"
},
"nodeType": "YulFunctionCall",
"src": "1242:74:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1232:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "866:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "877:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "889:6:16",
"type": ""
}
],
"src": "809:524:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1380:88:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1390:30:16",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1400:18:16"
},
"nodeType": "YulFunctionCall",
"src": "1400:20:16"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1390:6:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1449:6:16"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1457:4:16"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1429:19:16"
},
"nodeType": "YulFunctionCall",
"src": "1429:33:16"
},
"nodeType": "YulExpressionStatement",
"src": "1429:33:16"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1364:4:16",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1373:6:16",
"type": ""
}
],
"src": "1339:129:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1514:35:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1524:19:16",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1540:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1534:5:16"
},
"nodeType": "YulFunctionCall",
"src": "1534:9:16"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1524:6:16"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1507:6:16",
"type": ""
}
],
"src": "1474:75:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1622:241:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1727:22:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1729:16:16"
},
"nodeType": "YulFunctionCall",
"src": "1729:18:16"
},
"nodeType": "YulExpressionStatement",
"src": "1729:18:16"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1699:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1707:18:16",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1696:2:16"
},
"nodeType": "YulFunctionCall",
"src": "1696:30:16"
},
"nodeType": "YulIf",
"src": "1693:56:16"
},
{
"nodeType": "YulAssignment",
"src": "1759:37:16",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1789:6:16"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1767:21:16"
},
"nodeType": "YulFunctionCall",
"src": "1767:29:16"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1759:4:16"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1833:23:16",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1845:4:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1851:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1841:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1841:15:16"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1833:4:16"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1606:6:16",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1617:4:16",
"type": ""
}
],
"src": "1555:308:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1918:258:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1928:10:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1937:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1932:1:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1997:63:16",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2022:3:16"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2027:1:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2018:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2018:11:16"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2041:3:16"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2046:1:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2037:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2037:11:16"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2031:5:16"
},
"nodeType": "YulFunctionCall",
"src": "2031:18:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2011:6:16"
},
"nodeType": "YulFunctionCall",
"src": "2011:39:16"
},
"nodeType": "YulExpressionStatement",
"src": "2011:39:16"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1958:1:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1961:6:16"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1955:2:16"
},
"nodeType": "YulFunctionCall",
"src": "1955:13:16"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1969:19:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1971:15:16",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1980:1:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1983:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1976:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1976:10:16"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1971:1:16"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1951:3:16",
"statements": []
},
"src": "1947:113:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2094:76:16",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2144:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2149:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2140:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2140:16:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2158:1:16",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2133:6:16"
},
"nodeType": "YulFunctionCall",
"src": "2133:27:16"
},
"nodeType": "YulExpressionStatement",
"src": "2133:27:16"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "2075:1:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2078:6:16"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2072:2:16"
},
"nodeType": "YulFunctionCall",
"src": "2072:13:16"
},
"nodeType": "YulIf",
"src": "2069:101:16"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1900:3:16",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1905:3:16",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1910:6:16",
"type": ""
}
],
"src": "1869:307:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2233:269:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2243:22:16",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "2257:4:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2263:1:16",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "2253:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2253:12:16"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2243:6:16"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "2274:38:16",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "2304:4:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2310:1:16",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2300:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2300:12:16"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "2278:18:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2351:51:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2365:27:16",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2379:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2387:4:16",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2375:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2375:17:16"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2365:6:16"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "2331:18:16"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2324:6:16"
},
"nodeType": "YulFunctionCall",
"src": "2324:26:16"
},
"nodeType": "YulIf",
"src": "2321:81:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2454:42:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "2468:16:16"
},
"nodeType": "YulFunctionCall",
"src": "2468:18:16"
},
"nodeType": "YulExpressionStatement",
"src": "2468:18:16"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "2418:18:16"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2441:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2449:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2438:2:16"
},
"nodeType": "YulFunctionCall",
"src": "2438:14:16"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2415:2:16"
},
"nodeType": "YulFunctionCall",
"src": "2415:38:16"
},
"nodeType": "YulIf",
"src": "2412:84:16"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "2217:4:16",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2226:6:16",
"type": ""
}
],
"src": "2182:320:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2551:238:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2561:58:16",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2583:6:16"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2613:4:16"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2591:21:16"
},
"nodeType": "YulFunctionCall",
"src": "2591:27:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2579:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2579:40:16"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "2565:10:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2730:22:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "2732:16:16"
},
"nodeType": "YulFunctionCall",
"src": "2732:18:16"
},
"nodeType": "YulExpressionStatement",
"src": "2732:18:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "2673:10:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2685:18:16",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2670:2:16"
},
"nodeType": "YulFunctionCall",
"src": "2670:34:16"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "2709:10:16"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2721:6:16"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2706:2:16"
},
"nodeType": "YulFunctionCall",
"src": "2706:22:16"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "2667:2:16"
},
"nodeType": "YulFunctionCall",
"src": "2667:62:16"
},
"nodeType": "YulIf",
"src": "2664:88:16"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2768:2:16",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "2772:10:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2761:6:16"
},
"nodeType": "YulFunctionCall",
"src": "2761:22:16"
},
"nodeType": "YulExpressionStatement",
"src": "2761:22:16"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "2537:6:16",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "2545:4:16",
"type": ""
}
],
"src": "2508:281:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2823:152:16",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2840:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2843:77:16",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2833:6:16"
},
"nodeType": "YulFunctionCall",
"src": "2833:88:16"
},
"nodeType": "YulExpressionStatement",
"src": "2833:88:16"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2937:1:16",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2940:4:16",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2930:6:16"
},
"nodeType": "YulFunctionCall",
"src": "2930:15:16"
},
"nodeType": "YulExpressionStatement",
"src": "2930:15:16"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2961:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2964:4:16",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2954:6:16"
},
"nodeType": "YulFunctionCall",
"src": "2954:15:16"
},
"nodeType": "YulExpressionStatement",
"src": "2954:15:16"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "2795:180:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3009:152:16",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3026:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3029:77:16",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3019:6:16"
},
"nodeType": "YulFunctionCall",
"src": "3019:88:16"
},
"nodeType": "YulExpressionStatement",
"src": "3019:88:16"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3123:1:16",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3126:4:16",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3116:6:16"
},
"nodeType": "YulFunctionCall",
"src": "3116:15:16"
},
"nodeType": "YulExpressionStatement",
"src": "3116:15:16"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3147:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3150:4:16",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3140:6:16"
},
"nodeType": "YulFunctionCall",
"src": "3140:15:16"
},
"nodeType": "YulExpressionStatement",
"src": "3140:15:16"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "2981:180:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3256:28:16",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3273:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3276:1:16",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3266:6:16"
},
"nodeType": "YulFunctionCall",
"src": "3266:12:16"
},
"nodeType": "YulExpressionStatement",
"src": "3266:12:16"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "3167:117:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3379:28:16",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3396:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3399:1:16",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3389:6:16"
},
"nodeType": "YulFunctionCall",
"src": "3389:12:16"
},
"nodeType": "YulExpressionStatement",
"src": "3389:12:16"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "3290:117:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3502:28:16",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3519:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3522:1:16",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3512:6:16"
},
"nodeType": "YulFunctionCall",
"src": "3512:12:16"
},
"nodeType": "YulExpressionStatement",
"src": "3512:12:16"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "3413:117:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3625:28:16",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3642:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3645:1:16",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3635:6:16"
},
"nodeType": "YulFunctionCall",
"src": "3635:12:16"
},
"nodeType": "YulExpressionStatement",
"src": "3635:12:16"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "3536:117:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3707:54:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3717:38:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3735:5:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3742:2:16",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3731:3:16"
},
"nodeType": "YulFunctionCall",
"src": "3731:14:16"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3751:2:16",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "3747:3:16"
},
"nodeType": "YulFunctionCall",
"src": "3747:7:16"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3727:3:16"
},
"nodeType": "YulFunctionCall",
"src": "3727:28:16"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "3717:6:16"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3690:5:16",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "3700:6:16",
"type": ""
}
],
"src": "3659:102:16"
}
]
},
"contents": "{\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n}\n",
"id": 16,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526000600660006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b5060405162004a2e38038062004a2e8339818101604052810190620000529190620002a4565b8062000064816200008c60201b60201c565b506200008562000079620000a860201b60201c565b620000b060201b60201c565b5062000479565b8060029080519060200190620000a492919062000176565b5050565b600033905090565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b82805462000184906200038a565b90600052602060002090601f016020900481019282620001a85760008555620001f4565b82601f10620001c357805160ff1916838001178555620001f4565b82800160010185558215620001f4579182015b82811115620001f3578251825591602001919060010190620001d6565b5b50905062000203919062000207565b5090565b5b808211156200022257600081600090555060010162000208565b5090565b60006200023d62000237846200031e565b620002f5565b9050828152602081018484840111156200025c576200025b62000459565b5b6200026984828562000354565b509392505050565b600082601f83011262000289576200028862000454565b5b81516200029b84826020860162000226565b91505092915050565b600060208284031215620002bd57620002bc62000463565b5b600082015167ffffffffffffffff811115620002de57620002dd6200045e565b5b620002ec8482850162000271565b91505092915050565b60006200030162000314565b90506200030f8282620003c0565b919050565b6000604051905090565b600067ffffffffffffffff8211156200033c576200033b62000425565b5b620003478262000468565b9050602081019050919050565b60005b838110156200037457808201518184015260208101905062000357565b8381111562000384576000848401525b50505050565b60006002820490506001821680620003a357607f821691505b60208210811415620003ba57620003b9620003f6565b5b50919050565b620003cb8262000468565b810181811067ffffffffffffffff82111715620003ed57620003ec62000425565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6145a580620004896000396000f3fe60806040526004361061013f5760003560e01c80638da5cb5b116100b6578063cd3293de1161006f578063cd3293de14610484578063e985e9c51461049b578063eb8d2444146104d8578063f242432a14610503578063f2fde38b1461052c578063f5298aca146105555761013f565b80638da5cb5b14610371578063a0712d681461039c578063a22cb465146103b8578063bd85b039146103e1578063c4e370951461041e578063cad96cca146104475761013f565b80632eb2c2d6116101085780632eb2c2d6146102625780633ccfd60b1461028b5780634e1273f4146102a25780634f558e79146102df578063715018a61461031c5780638924af74146103335761013f565b8062fdd58e1461014457806301ffc9a7146101815780630e89341c146101be578063143094db146101fb5780632a55205a14610224575b600080fd5b34801561015057600080fd5b5061016b60048036038101906101669190612d24565b61057e565b60405161017891906138e1565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a39190612e5c565b610647565b6040516101b59190613604565b60405180910390f35b3480156101ca57600080fd5b506101e560048036038101906101e09190612eb6565b610706565b6040516101f2919061361f565b60405180910390f35b34801561020757600080fd5b50610222600480360381019061021d9190612ee3565b61079a565b005b34801561023057600080fd5b5061024b60048036038101906102469190612f36565b610915565b604051610259929190613560565b60405180910390f35b34801561026e57600080fd5b5061028960048036038101906102849190612b7e565b610a9f565b005b34801561029757600080fd5b506102a0610b40565b005b3480156102ae57600080fd5b506102c960048036038101906102c49190612db7565b610c0b565b6040516102d691906135ab565b60405180910390f35b3480156102eb57600080fd5b5061030660048036038101906103019190612eb6565b610d24565b6040516103139190613604565b60405180910390f35b34801561032857600080fd5b50610331610d38565b005b34801561033f57600080fd5b5061035a60048036038101906103559190612f36565b610dc0565b604051610368929190613475565b60405180910390f35b34801561037d57600080fd5b50610386610e35565b604051610393919061345a565b60405180910390f35b6103b660048036038101906103b19190612eb6565b610e5f565b005b3480156103c457600080fd5b506103df60048036038101906103da9190612ce4565b610fc0565b005b3480156103ed57600080fd5b5061040860048036038101906104039190612eb6565b611141565b60405161041591906138e1565b60405180910390f35b34801561042a57600080fd5b5061044560048036038101906104409190612e2f565b61115e565b005b34801561045357600080fd5b5061046e60048036038101906104699190612eb6565b6111f7565b60405161047b9190613589565b60405180910390f35b34801561049057600080fd5b506104996112f9565b005b3480156104a757600080fd5b506104c260048036038101906104bd9190612b3e565b611394565b6040516104cf9190613604565b60405180910390f35b3480156104e457600080fd5b506104ed611428565b6040516104fa9190613604565b60405180910390f35b34801561050f57600080fd5b5061052a60048036038101906105259190612c4d565b61143b565b005b34801561053857600080fd5b50610553600480360381019061054e9190612b11565b6114dc565b005b34801561056157600080fd5b5061057c60048036038101906105779190612d64565b6115d4565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e690613681565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006344c74bcc60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561069f5760019050610701565b632a55205a60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156106f55760019050610701565b6106fe8261161c565b90505b919050565b60606002805461071590613ca2565b80601f016020809104026020016040519081016040528092919081815260200182805461074190613ca2565b801561078e5780601f106107635761010080835404028352916020019161078e565b820191906000526020600020905b81548152906001019060200180831161077157829003601f168201915b50505050509050919050565b6107a26116fe565b73ffffffffffffffffffffffffffffffffffffffff166107c0610e35565b73ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d90613801565b60405180910390fd5b6000600167ffffffffffffffff81111561083357610832613e0a565b5b60405190808252806020026020018201604052801561086c57816020015b610859612894565b8152602001906001900390816108515790505b509050818160008151811061088457610883613ddb565b5b6020026020010151602001906bffffffffffffffffffffffff1690816bffffffffffffffffffffffff168152505082816000815181106108c7576108c6613ddb565b5b60200260200101516000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061090f8482611706565b50505050565b600080600060056000868152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610a0f578382906000526020600020016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250508152602001906001019061094d565b505050509050600081511115610a8f5780600081518110610a3357610a32613ddb565b5b60200260200101516000015161271082600081518110610a5657610a55613ddb565b5b6020026020010151602001516bffffffffffffffffffffffff1686610a7b9190613b34565b610a859190613b03565b9250925050610a98565b60008092509250505b9250929050565b610aa76116fe565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610aed5750610aec85610ae76116fe565b611394565b5b610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2390613781565b60405180910390fd5b610b398585858585611905565b5050505050565b610b486116fe565b73ffffffffffffffffffffffffffffffffffffffff16610b66610e35565b73ffffffffffffffffffffffffffffffffffffffff1614610bbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb390613801565b60405180910390fd5b60004790503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c07573d6000803e3d6000fd5b5050565b60608151835114610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890613861565b60405180910390fd5b6000835167ffffffffffffffff811115610c6e57610c6d613e0a565b5b604051908082528060200260200182016040528015610c9c5781602001602082028036833780820191505090505b50905060005b8451811015610d1957610ce9858281518110610cc157610cc0613ddb565b5b6020026020010151858381518110610cdc57610cdb613ddb565b5b602002602001015161057e565b828281518110610cfc57610cfb613ddb565b5b60200260200101818152505080610d1290613d05565b9050610ca2565b508091505092915050565b600080610d3083611141565b119050919050565b610d406116fe565b73ffffffffffffffffffffffffffffffffffffffff16610d5e610e35565b73ffffffffffffffffffffffffffffffffffffffff1614610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab90613801565b60405180910390fd5b610dbe6000611c19565b565b60056020528160005260406000208181548110610ddc57600080fd5b90600052602060002001600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a90046bffffffffffffffffffffffff16905082565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600660009054906101000a900460ff16610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea590613721565b60405180910390fd5b6008811115610ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee990613821565b60405180910390fd5b61037881610f006008611141565b610f0a9190613aad565b1115610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f42906137a1565b60405180910390fd5b348167013b7b21280e0000610f609190613b34565b1115610fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9890613701565b60405180910390fd5b610fbd3360088360405180602001604052806000815250611cdf565b50565b8173ffffffffffffffffffffffffffffffffffffffff16610fdf6116fe565b73ffffffffffffffffffffffffffffffffffffffff161415611036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102d90613841565b60405180910390fd5b80600160006110436116fe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166110f06116fe565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111359190613604565b60405180910390a35050565b600060036000838152602001908152602001600020549050919050565b6111666116fe565b73ffffffffffffffffffffffffffffffffffffffff16611184610e35565b73ffffffffffffffffffffffffffffffffffffffff16146111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d190613801565b60405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b606060056000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156112ee578382906000526020600020016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250508152602001906001019061122c565b505050509050919050565b6113016116fe565b73ffffffffffffffffffffffffffffffffffffffff1661131f610e35565b73ffffffffffffffffffffffffffffffffffffffff1614611375576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136c90613801565b60405180910390fd5b611392336008605860405180602001604052806000815250611cdf565b565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600660009054906101000a900460ff1681565b6114436116fe565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806114895750611488856114836116fe565b611394565b5b6114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bf906136e1565b60405180910390fd5b6114d58585858585611d1b565b5050505050565b6114e46116fe565b73ffffffffffffffffffffffffffffffffffffffff16611502610e35565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613801565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bf906136a1565b60405180910390fd5b6115d181611c19565b50565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461160c57600080fd5b611617838383611f9d565b505050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116e757507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806116f757506116f682611fd7565b5b9050919050565b600033905090565b60005b81518110156118f657600073ffffffffffffffffffffffffffffffffffffffff1682828151811061173d5761173c613ddb565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1614156117a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611797906138c1565b60405180910390fd5b60008282815181106117b5576117b4613ddb565b5b6020026020010151602001516bffffffffffffffffffffffff161415611810576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180790613741565b60405180910390fd5b6005600084815260200190815260200160002082828151811061183657611835613ddb565b5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505080806118ee90613d05565b915050611709565b506119018282612041565b5050565b8151835114611949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194090613881565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156119b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b090613761565b60405180910390fd5b60006119c36116fe565b90506119d381878787878761207e565b60005b8451811015611b845760008582815181106119f4576119f3613ddb565b5b602002602001015190506000858381518110611a1357611a12613ddb565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab906137e1565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b699190613aad565b9250508190555050505080611b7d90613d05565b90506119d6565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611bfb9291906135cd565b60405180910390a4611c11818787878787612086565b505050505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611ceb8484848461226d565b81600360008581526020019081526020016000206000828254611d0e9190613aad565b9250508190555050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8290613761565b60405180910390fd5b6000611d956116fe565b9050611db5818787611da688612403565b611daf88612403565b8761207e565b600080600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015611e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e43906137e1565b60405180910390fd5b83810360008087815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508360008087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f019190613aad565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628888604051611f7e92919061392c565b60405180910390a4611f9482888888888861247d565b50505050505050565b611fa8838383612664565b80600360008481526020019081526020016000206000828254611fcb9190613b8e565b92505081905550505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b7f3fa96d7b6bcbfe71ef171666d84db3cf52fa2d1c8afdb1cc8e486177f208b7df82826040516120729291906138fc565b60405180910390a15050565b505050505050565b6120a58473ffffffffffffffffffffffffffffffffffffffff16612881565b15612265578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016120eb95949392919061349e565b602060405180830381600087803b15801561210557600080fd5b505af192505050801561213657506040513d601f19601f820116820180604052508101906121339190612e89565b60015b6121dc57612142613e39565b806308c379a0141561219f575061215761444f565b8061216257506121a1565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612196919061361f565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d390613641565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225a90613661565b60405180910390fd5b505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d4906138a1565b60405180910390fd5b60006122e76116fe565b9050612308816000876122f988612403565b61230288612403565b8761207e565b8260008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123679190613aad565b925050819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6287876040516123e592919061392c565b60405180910390a46123fc8160008787878761247d565b5050505050565b60606000600167ffffffffffffffff81111561242257612421613e0a565b5b6040519080825280602002602001820160405280156124505781602001602082028036833780820191505090505b509050828160008151811061246857612467613ddb565b5b60200260200101818152505080915050919050565b61249c8473ffffffffffffffffffffffffffffffffffffffff16612881565b1561265c578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016124e2959493929190613506565b602060405180830381600087803b1580156124fc57600080fd5b505af192505050801561252d57506040513d601f19601f8201168201806040525081019061252a9190612e89565b60015b6125d357612539613e39565b806308c379a01415612596575061254e61444f565b806125595750612598565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258d919061361f565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ca90613641565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461265a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265190613661565b60405180910390fd5b505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cb906137c1565b60405180910390fd5b60006126de6116fe565b905061270e818560006126f087612403565b6126f987612403565b6040518060200160405280600081525061207e565b600080600085815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156127a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279c906136c1565b60405180910390fd5b82810360008086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62878760405161287292919061392c565b60405180910390a45050505050565b600080823b905060008111915050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160006bffffffffffffffffffffffff1681525090565b60006128e56128e08461397a565b613955565b9050808382526020820190508285602086028201111561290857612907613e60565b5b60005b85811015612938578161291e88826129f4565b84526020840193506020830192505060018101905061290b565b5050509392505050565b6000612955612950846139a6565b613955565b9050808382526020820190508285602086028201111561297857612977613e60565b5b60005b858110156129a8578161298e8882612ae7565b84526020840193506020830192505060018101905061297b565b5050509392505050565b60006129c56129c0846139d2565b613955565b9050828152602081018484840111156129e1576129e0613e65565b5b6129ec848285613c60565b509392505050565b600081359050612a03816144e5565b92915050565b600081359050612a18816144fc565b92915050565b600082601f830112612a3357612a32613e5b565b5b8135612a438482602086016128d2565b91505092915050565b600082601f830112612a6157612a60613e5b565b5b8135612a71848260208601612942565b91505092915050565b600081359050612a8981614513565b92915050565b600081359050612a9e8161452a565b92915050565b600081519050612ab38161452a565b92915050565b600082601f830112612ace57612acd613e5b565b5b8135612ade8482602086016129b2565b91505092915050565b600081359050612af681614541565b92915050565b600081359050612b0b81614558565b92915050565b600060208284031215612b2757612b26613e6f565b5b6000612b35848285016129f4565b91505092915050565b60008060408385031215612b5557612b54613e6f565b5b6000612b63858286016129f4565b9250506020612b74858286016129f4565b9150509250929050565b600080600080600060a08688031215612b9a57612b99613e6f565b5b6000612ba8888289016129f4565b9550506020612bb9888289016129f4565b945050604086013567ffffffffffffffff811115612bda57612bd9613e6a565b5b612be688828901612a4c565b935050606086013567ffffffffffffffff811115612c0757612c06613e6a565b5b612c1388828901612a4c565b925050608086013567ffffffffffffffff811115612c3457612c33613e6a565b5b612c4088828901612ab9565b9150509295509295909350565b600080600080600060a08688031215612c6957612c68613e6f565b5b6000612c77888289016129f4565b9550506020612c88888289016129f4565b9450506040612c9988828901612ae7565b9350506060612caa88828901612ae7565b925050608086013567ffffffffffffffff811115612ccb57612cca613e6a565b5b612cd788828901612ab9565b9150509295509295909350565b60008060408385031215612cfb57612cfa613e6f565b5b6000612d09858286016129f4565b9250506020612d1a85828601612a7a565b9150509250929050565b60008060408385031215612d3b57612d3a613e6f565b5b6000612d49858286016129f4565b9250506020612d5a85828601612ae7565b9150509250929050565b600080600060608486031215612d7d57612d7c613e6f565b5b6000612d8b868287016129f4565b9350506020612d9c86828701612ae7565b9250506040612dad86828701612ae7565b9150509250925092565b60008060408385031215612dce57612dcd613e6f565b5b600083013567ffffffffffffffff811115612dec57612deb613e6a565b5b612df885828601612a1e565b925050602083013567ffffffffffffffff811115612e1957612e18613e6a565b5b612e2585828601612a4c565b9150509250929050565b600060208284031215612e4557612e44613e6f565b5b6000612e5384828501612a7a565b91505092915050565b600060208284031215612e7257612e71613e6f565b5b6000612e8084828501612a8f565b91505092915050565b600060208284031215612e9f57612e9e613e6f565b5b6000612ead84828501612aa4565b91505092915050565b600060208284031215612ecc57612ecb613e6f565b5b6000612eda84828501612ae7565b91505092915050565b600080600060608486031215612efc57612efb613e6f565b5b6000612f0a86828701612ae7565b9350506020612f1b86828701612a09565b9250506040612f2c86828701612afc565b9150509250925092565b60008060408385031215612f4d57612f4c613e6f565b5b6000612f5b85828601612ae7565b9250506020612f6c85828601612ae7565b9150509250929050565b6000612f8283836133ef565b60408301905092915050565b6000612f9a838361341e565b60208301905092915050565b612faf81613bd4565b82525050565b612fbe81613bd4565b82525050565b612fcd81613bc2565b82525050565b6000612fde82613a23565b612fe88185613a69565b9350612ff383613a03565b8060005b8381101561302457815161300b8882612f76565b975061301683613a4f565b925050600181019050612ff7565b5085935050505092915050565b600061303c82613a2e565b6130468185613a7a565b935061305183613a13565b8060005b838110156130825781516130698882612f8e565b975061307483613a5c565b925050600181019050613055565b5085935050505092915050565b61309881613be6565b82525050565b60006130a982613a39565b6130b38185613a8b565b93506130c3818560208601613c6f565b6130cc81613e74565b840191505092915050565b60006130e282613a44565b6130ec8185613a9c565b93506130fc818560208601613c6f565b61310581613e74565b840191505092915050565b600061311d603483613a9c565b915061312882613e92565b604082019050919050565b6000613140602883613a9c565b915061314b82613ee1565b604082019050919050565b6000613163602b83613a9c565b915061316e82613f30565b604082019050919050565b6000613186602683613a9c565b915061319182613f7f565b604082019050919050565b60006131a9602483613a9c565b91506131b482613fce565b604082019050919050565b60006131cc602983613a9c565b91506131d78261401d565b604082019050919050565b60006131ef601f83613a9c565b91506131fa8261406c565b602082019050919050565b6000613212602283613a9c565b915061321d82614095565b604082019050919050565b6000613235602083613a9c565b9150613240826140e4565b602082019050919050565b6000613258602583613a9c565b91506132638261410d565b604082019050919050565b600061327b603283613a9c565b91506132868261415c565b604082019050919050565b600061329e602a83613a9c565b91506132a9826141ab565b604082019050919050565b60006132c1602383613a9c565b91506132cc826141fa565b604082019050919050565b60006132e4602a83613a9c565b91506132ef82614249565b604082019050919050565b6000613307602083613a9c565b915061331282614298565b602082019050919050565b600061332a601b83613a9c565b9150613335826142c1565b602082019050919050565b600061334d602983613a9c565b9150613358826142ea565b604082019050919050565b6000613370602983613a9c565b915061337b82614339565b604082019050919050565b6000613393602883613a9c565b915061339e82614388565b604082019050919050565b60006133b6602183613a9c565b91506133c1826143d7565b604082019050919050565b60006133d9601b83613a9c565b91506133e482614426565b602082019050919050565b6040820160008201516134056000850182612fa6565b506020820151613418602085018261343c565b50505050565b61342781613c3e565b82525050565b61343681613c3e565b82525050565b61344581613c48565b82525050565b61345481613c48565b82525050565b600060208201905061346f6000830184612fc4565b92915050565b600060408201905061348a6000830185612fb5565b613497602083018461344b565b9392505050565b600060a0820190506134b36000830188612fc4565b6134c06020830187612fc4565b81810360408301526134d28186613031565b905081810360608301526134e68185613031565b905081810360808301526134fa818461309e565b90509695505050505050565b600060a08201905061351b6000830188612fc4565b6135286020830187612fc4565b613535604083018661342d565b613542606083018561342d565b8181036080830152613554818461309e565b90509695505050505050565b60006040820190506135756000830185612fc4565b613582602083018461342d565b9392505050565b600060208201905081810360008301526135a38184612fd3565b905092915050565b600060208201905081810360008301526135c58184613031565b905092915050565b600060408201905081810360008301526135e78185613031565b905081810360208301526135fb8184613031565b90509392505050565b6000602082019050613619600083018461308f565b92915050565b6000602082019050818103600083015261363981846130d7565b905092915050565b6000602082019050818103600083015261365a81613110565b9050919050565b6000602082019050818103600083015261367a81613133565b9050919050565b6000602082019050818103600083015261369a81613156565b9050919050565b600060208201905081810360008301526136ba81613179565b9050919050565b600060208201905081810360008301526136da8161319c565b9050919050565b600060208201905081810360008301526136fa816131bf565b9050919050565b6000602082019050818103600083015261371a816131e2565b9050919050565b6000602082019050818103600083015261373a81613205565b9050919050565b6000602082019050818103600083015261375a81613228565b9050919050565b6000602082019050818103600083015261377a8161324b565b9050919050565b6000602082019050818103600083015261379a8161326e565b9050919050565b600060208201905081810360008301526137ba81613291565b9050919050565b600060208201905081810360008301526137da816132b4565b9050919050565b600060208201905081810360008301526137fa816132d7565b9050919050565b6000602082019050818103600083015261381a816132fa565b9050919050565b6000602082019050818103600083015261383a8161331d565b9050919050565b6000602082019050818103600083015261385a81613340565b9050919050565b6000602082019050818103600083015261387a81613363565b9050919050565b6000602082019050818103600083015261389a81613386565b9050919050565b600060208201905081810360008301526138ba816133a9565b9050919050565b600060208201905081810360008301526138da816133cc565b9050919050565b60006020820190506138f6600083018461342d565b92915050565b6000604082019050613911600083018561342d565b81810360208301526139238184612fd3565b90509392505050565b6000604082019050613941600083018561342d565b61394e602083018461342d565b9392505050565b600061395f613970565b905061396b8282613cd4565b919050565b6000604051905090565b600067ffffffffffffffff82111561399557613994613e0a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156139c1576139c0613e0a565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156139ed576139ec613e0a565b5b6139f682613e74565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613ab882613c3e565b9150613ac383613c3e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613af857613af7613d4e565b5b828201905092915050565b6000613b0e82613c3e565b9150613b1983613c3e565b925082613b2957613b28613d7d565b5b828204905092915050565b6000613b3f82613c3e565b9150613b4a83613c3e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613b8357613b82613d4e565b5b828202905092915050565b6000613b9982613c3e565b9150613ba483613c3e565b925082821015613bb757613bb6613d4e565b5b828203905092915050565b6000613bcd82613c1e565b9050919050565b6000613bdf82613c1e565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015613c8d578082015181840152602081019050613c72565b83811115613c9c576000848401525b50505050565b60006002820490506001821680613cba57607f821691505b60208210811415613cce57613ccd613dac565b5b50919050565b613cdd82613e74565b810181811067ffffffffffffffff82111715613cfc57613cfb613e0a565b5b80604052505050565b6000613d1082613c3e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613d4357613d42613d4e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060033d1115613e585760046000803e613e55600051613e85565b90505b90565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160e01c9050919050565b7f455243313135353a207472616e7366657220746f206e6f6e204552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260008201527f20617070726f7665640000000000000000000000000000000000000000000000602082015250565b7f45746865722076616c75652073656e74206973206e6f7420636f727265637400600082015250565b7f53616c65206d7573742062652061637469766520746f206d696e7420546f6b6560008201527f6e73000000000000000000000000000000000000000000000000000000000000602082015250565b7f526f79616c74792076616c75652073686f756c6420626520706f736974697665600082015250565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f507572636861736520776f756c6420657863656564206d617820737570706c7960008201527f206f6620746f6b656e7300000000000000000000000000000000000000000000602082015250565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4578636565646564206d617820746f6b656e2070757263686173650000000000600082015250565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f526563697069656e742073686f756c642062652070726573656e740000000000600082015250565b600060443d101561445f576144e2565b614467613970565b60043d036004823e80513d602482011167ffffffffffffffff8211171561448f5750506144e2565b808201805167ffffffffffffffff8111156144ad57505050506144e2565b80602083010160043d0385018111156144ca5750505050506144e2565b6144d982602001850186613cd4565b82955050505050505b90565b6144ee81613bc2565b81146144f957600080fd5b50565b61450581613bd4565b811461451057600080fd5b50565b61451c81613be6565b811461452757600080fd5b50565b61453381613bf2565b811461453e57600080fd5b50565b61454a81613c3e565b811461455557600080fd5b50565b61456181613c48565b811461456c57600080fd5b5056fea2646970667358221220333463f60b4398afff5cc5c1cb4c9643731c087711ef5ff14ecd38f3e999786764736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH3 0x2C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x4A2E CODESIZE SUB DUP1 PUSH3 0x4A2E DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x52 SWAP2 SWAP1 PUSH3 0x2A4 JUMP JUMPDEST DUP1 PUSH3 0x64 DUP2 PUSH3 0x8C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x85 PUSH3 0x79 PUSH3 0xA8 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0xB0 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x479 JUMP JUMPDEST DUP1 PUSH1 0x2 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH3 0xA4 SWAP3 SWAP2 SWAP1 PUSH3 0x176 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH3 0x184 SWAP1 PUSH3 0x38A JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH3 0x1A8 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH3 0x1F4 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH3 0x1C3 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH3 0x1F4 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH3 0x1F4 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH3 0x1F3 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH3 0x1D6 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH3 0x203 SWAP2 SWAP1 PUSH3 0x207 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH3 0x222 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH3 0x208 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x23D PUSH3 0x237 DUP5 PUSH3 0x31E JUMP JUMPDEST PUSH3 0x2F5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH3 0x25C JUMPI PUSH3 0x25B PUSH3 0x459 JUMP JUMPDEST JUMPDEST PUSH3 0x269 DUP5 DUP3 DUP6 PUSH3 0x354 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x289 JUMPI PUSH3 0x288 PUSH3 0x454 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH3 0x29B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH3 0x226 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x2BD JUMPI PUSH3 0x2BC PUSH3 0x463 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x2DE JUMPI PUSH3 0x2DD PUSH3 0x45E JUMP JUMPDEST JUMPDEST PUSH3 0x2EC DUP5 DUP3 DUP6 ADD PUSH3 0x271 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x301 PUSH3 0x314 JUMP JUMPDEST SWAP1 POP PUSH3 0x30F DUP3 DUP3 PUSH3 0x3C0 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH3 0x33C JUMPI PUSH3 0x33B PUSH3 0x425 JUMP JUMPDEST JUMPDEST PUSH3 0x347 DUP3 PUSH3 0x468 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH3 0x374 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x357 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH3 0x384 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x3A3 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH3 0x3BA JUMPI PUSH3 0x3B9 PUSH3 0x3F6 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x3CB DUP3 PUSH3 0x468 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH3 0x3ED JUMPI PUSH3 0x3EC PUSH3 0x425 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45A5 DUP1 PUSH3 0x489 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x13F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0xB6 JUMPI DUP1 PUSH4 0xCD3293DE GT PUSH2 0x6F JUMPI DUP1 PUSH4 0xCD3293DE EQ PUSH2 0x484 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0xEB8D2444 EQ PUSH2 0x4D8 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x503 JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x52C JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x555 JUMPI PUSH2 0x13F JUMP JUMPDEST DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x371 JUMPI DUP1 PUSH4 0xA0712D68 EQ PUSH2 0x39C JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x3B8 JUMPI DUP1 PUSH4 0xBD85B039 EQ PUSH2 0x3E1 JUMPI DUP1 PUSH4 0xC4E37095 EQ PUSH2 0x41E JUMPI DUP1 PUSH4 0xCAD96CCA EQ PUSH2 0x447 JUMPI PUSH2 0x13F JUMP JUMPDEST DUP1 PUSH4 0x2EB2C2D6 GT PUSH2 0x108 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x262 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x28B JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0x4F558E79 EQ PUSH2 0x2DF JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x31C JUMPI DUP1 PUSH4 0x8924AF74 EQ PUSH2 0x333 JUMPI PUSH2 0x13F JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x144 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x181 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x1BE JUMPI DUP1 PUSH4 0x143094DB EQ PUSH2 0x1FB JUMPI DUP1 PUSH4 0x2A55205A EQ PUSH2 0x224 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x150 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x166 SWAP2 SWAP1 PUSH2 0x2D24 JUMP JUMPDEST PUSH2 0x57E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x178 SWAP2 SWAP1 PUSH2 0x38E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x18D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1A8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A3 SWAP2 SWAP1 PUSH2 0x2E5C JUMP JUMPDEST PUSH2 0x647 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B5 SWAP2 SWAP1 PUSH2 0x3604 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x2EB6 JUMP JUMPDEST PUSH2 0x706 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F2 SWAP2 SWAP1 PUSH2 0x361F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x207 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x222 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x21D SWAP2 SWAP1 PUSH2 0x2EE3 JUMP JUMPDEST PUSH2 0x79A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x24B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x246 SWAP2 SWAP1 PUSH2 0x2F36 JUMP JUMPDEST PUSH2 0x915 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x259 SWAP3 SWAP2 SWAP1 PUSH2 0x3560 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x289 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x284 SWAP2 SWAP1 PUSH2 0x2B7E JUMP JUMPDEST PUSH2 0xA9F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x297 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A0 PUSH2 0xB40 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2C9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C4 SWAP2 SWAP1 PUSH2 0x2DB7 JUMP JUMPDEST PUSH2 0xC0B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D6 SWAP2 SWAP1 PUSH2 0x35AB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x306 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x301 SWAP2 SWAP1 PUSH2 0x2EB6 JUMP JUMPDEST PUSH2 0xD24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x3604 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x331 PUSH2 0xD38 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x33F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x35A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x355 SWAP2 SWAP1 PUSH2 0x2F36 JUMP JUMPDEST PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x368 SWAP3 SWAP2 SWAP1 PUSH2 0x3475 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x386 PUSH2 0xE35 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x393 SWAP2 SWAP1 PUSH2 0x345A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3B6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x2EB6 JUMP JUMPDEST PUSH2 0xE5F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2CE4 JUMP JUMPDEST PUSH2 0xFC0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x408 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x403 SWAP2 SWAP1 PUSH2 0x2EB6 JUMP JUMPDEST PUSH2 0x1141 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x415 SWAP2 SWAP1 PUSH2 0x38E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x42A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x445 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x440 SWAP2 SWAP1 PUSH2 0x2E2F JUMP JUMPDEST PUSH2 0x115E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x453 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x46E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x469 SWAP2 SWAP1 PUSH2 0x2EB6 JUMP JUMPDEST PUSH2 0x11F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x47B SWAP2 SWAP1 PUSH2 0x3589 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x490 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x499 PUSH2 0x12F9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2B3E JUMP JUMPDEST PUSH2 0x1394 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4CF SWAP2 SWAP1 PUSH2 0x3604 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4ED PUSH2 0x1428 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4FA SWAP2 SWAP1 PUSH2 0x3604 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x52A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x525 SWAP2 SWAP1 PUSH2 0x2C4D JUMP JUMPDEST PUSH2 0x143B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x538 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x553 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x54E SWAP2 SWAP1 PUSH2 0x2B11 JUMP JUMPDEST PUSH2 0x14DC JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x57C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x577 SWAP2 SWAP1 PUSH2 0x2D64 JUMP JUMPDEST PUSH2 0x15D4 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x5EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E6 SWAP1 PUSH2 0x3681 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0x44C74BCC PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ ISZERO PUSH2 0x69F JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x701 JUMP JUMPDEST PUSH4 0x2A55205A PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ ISZERO PUSH2 0x6F5 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x701 JUMP JUMPDEST PUSH2 0x6FE DUP3 PUSH2 0x161C JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x715 SWAP1 PUSH2 0x3CA2 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x741 SWAP1 PUSH2 0x3CA2 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x78E JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x763 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x78E JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x771 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7A2 PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x7C0 PUSH2 0xE35 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x816 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x80D SWAP1 PUSH2 0x3801 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x833 JUMPI PUSH2 0x832 PUSH2 0x3E0A JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x86C JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x859 PUSH2 0x2894 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x851 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x884 JUMPI PUSH2 0x883 PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD SWAP1 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x8C7 JUMPI PUSH2 0x8C6 PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD SWAP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH2 0x90F DUP5 DUP3 PUSH2 0x1706 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0xA0F JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x94D JUMP JUMPDEST POP POP POP POP SWAP1 POP PUSH1 0x0 DUP2 MLOAD GT ISZERO PUSH2 0xA8F JUMPI DUP1 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xA33 JUMPI PUSH2 0xA32 PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH2 0x2710 DUP3 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xA56 JUMPI PUSH2 0xA55 PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH2 0xA7B SWAP2 SWAP1 PUSH2 0x3B34 JUMP JUMPDEST PUSH2 0xA85 SWAP2 SWAP1 PUSH2 0x3B03 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP PUSH2 0xA98 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP3 POP SWAP3 POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0xAA7 PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0xAED JUMPI POP PUSH2 0xAEC DUP6 PUSH2 0xAE7 PUSH2 0x16FE JUMP JUMPDEST PUSH2 0x1394 JUMP JUMPDEST JUMPDEST PUSH2 0xB2C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB23 SWAP1 PUSH2 0x3781 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB39 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1905 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xB48 PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xB66 PUSH2 0xE35 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xBBC JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBB3 SWAP1 PUSH2 0x3801 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP CALLER 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 0xC07 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0xC51 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC48 SWAP1 PUSH2 0x3861 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC6E JUMPI PUSH2 0xC6D PUSH2 0x3E0A JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xC9C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0xD19 JUMPI PUSH2 0xCE9 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xCC1 JUMPI PUSH2 0xCC0 PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xCDC JUMPI PUSH2 0xCDB PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x57E JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xCFC JUMPI PUSH2 0xCFB PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH2 0xD12 SWAP1 PUSH2 0x3D05 JUMP JUMPDEST SWAP1 POP PUSH2 0xCA2 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD30 DUP4 PUSH2 0x1141 JUMP JUMPDEST GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD40 PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xD5E PUSH2 0xE35 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xDB4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDAB SWAP1 PUSH2 0x3801 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDBE PUSH1 0x0 PUSH2 0x1C19 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x5 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0xDDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP2 POP POP DUP1 PUSH1 0x0 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 DUP1 PUSH1 0x0 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH2 0xEAE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEA5 SWAP1 PUSH2 0x3721 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x8 DUP2 GT ISZERO PUSH2 0xEF2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xEE9 SWAP1 PUSH2 0x3821 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x378 DUP2 PUSH2 0xF00 PUSH1 0x8 PUSH2 0x1141 JUMP JUMPDEST PUSH2 0xF0A SWAP2 SWAP1 PUSH2 0x3AAD JUMP JUMPDEST GT ISZERO PUSH2 0xF4B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF42 SWAP1 PUSH2 0x37A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLVALUE DUP2 PUSH8 0x13B7B21280E0000 PUSH2 0xF60 SWAP2 SWAP1 PUSH2 0x3B34 JUMP JUMPDEST GT ISZERO PUSH2 0xFA1 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xF98 SWAP1 PUSH2 0x3701 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xFBD CALLER PUSH1 0x8 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1CDF JUMP JUMPDEST POP JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xFDF PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1036 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x102D SWAP1 PUSH2 0x3841 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x1043 PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x10F0 PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x1135 SWAP2 SWAP1 PUSH2 0x3604 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1166 PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1184 PUSH2 0xE35 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x11DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x11D1 SWAP1 PUSH2 0x3801 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x5 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x12EE JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x122C JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1301 PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x131F PUSH2 0xE35 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1375 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x136C SWAP1 PUSH2 0x3801 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1392 CALLER PUSH1 0x8 PUSH1 0x58 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1CDF JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0x1443 PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ DUP1 PUSH2 0x1489 JUMPI POP PUSH2 0x1488 DUP6 PUSH2 0x1483 PUSH2 0x16FE JUMP JUMPDEST PUSH2 0x1394 JUMP JUMPDEST JUMPDEST PUSH2 0x14C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BF SWAP1 PUSH2 0x36E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D5 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1D1B JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x14E4 PUSH2 0x16FE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x1502 PUSH2 0xE35 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1558 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154F SWAP1 PUSH2 0x3801 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x15C8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15BF SWAP1 PUSH2 0x36A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15D1 DUP2 PUSH2 0x1C19 JUMP JUMPDEST POP JUMP JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x160C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1617 DUP4 DUP4 DUP4 PUSH2 0x1F9D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16E7 JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x16F7 JUMPI POP PUSH2 0x16F6 DUP3 PUSH2 0x1FD7 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH2 0x18F6 JUMPI PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x173D JUMPI PUSH2 0x173C PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x17A0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1797 SWAP1 PUSH2 0x38C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x17B5 JUMPI PUSH2 0x17B4 PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1810 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1807 SWAP1 PUSH2 0x3741 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1836 JUMPI PUSH2 0x1835 PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP DUP1 DUP1 PUSH2 0x18EE SWAP1 PUSH2 0x3D05 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1709 JUMP JUMPDEST POP PUSH2 0x1901 DUP3 DUP3 PUSH2 0x2041 JUMP JUMPDEST POP POP JUMP JUMPDEST DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x1949 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1940 SWAP1 PUSH2 0x3881 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x19B9 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x19B0 SWAP1 PUSH2 0x3761 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x19C3 PUSH2 0x16FE JUMP JUMPDEST SWAP1 POP PUSH2 0x19D3 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x207E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x1B84 JUMPI PUSH1 0x0 DUP6 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x19F4 JUMPI PUSH2 0x19F3 PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1A13 JUMPI PUSH2 0x1A12 PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1AB4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AAB SWAP1 PUSH2 0x37E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP13 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP2 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 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 0x1B69 SWAP2 SWAP1 PUSH2 0x3AAD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP DUP1 PUSH2 0x1B7D SWAP1 PUSH2 0x3D05 JUMP JUMPDEST SWAP1 POP PUSH2 0x19D6 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x1BFB SWAP3 SWAP2 SWAP1 PUSH2 0x35CD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1C11 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x2086 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP DUP2 PUSH1 0x4 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0x1CEB DUP5 DUP5 DUP5 DUP5 PUSH2 0x226D JUMP JUMPDEST DUP2 PUSH1 0x3 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1D0E SWAP2 SWAP1 PUSH2 0x3AAD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x1D8B JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D82 SWAP1 PUSH2 0x3761 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D95 PUSH2 0x16FE JUMP JUMPDEST SWAP1 POP PUSH2 0x1DB5 DUP2 DUP8 DUP8 PUSH2 0x1DA6 DUP9 PUSH2 0x2403 JUMP JUMPDEST PUSH2 0x1DAF DUP9 PUSH2 0x2403 JUMP JUMPDEST DUP8 PUSH2 0x207E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP4 DUP2 LT ISZERO PUSH2 0x1E4C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E43 SWAP1 PUSH2 0x37E1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP2 SUB PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP4 PUSH1 0x0 DUP1 DUP8 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP9 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 0x1F01 SWAP2 SWAP1 PUSH2 0x3AAD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP9 DUP9 PUSH1 0x40 MLOAD PUSH2 0x1F7E SWAP3 SWAP2 SWAP1 PUSH2 0x392C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x1F94 DUP3 DUP9 DUP9 DUP9 DUP9 DUP9 PUSH2 0x247D JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1FA8 DUP4 DUP4 DUP4 PUSH2 0x2664 JUMP JUMPDEST DUP1 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1FCB SWAP2 SWAP1 PUSH2 0x3B8E JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x3FA96D7B6BCBFE71EF171666D84DB3CF52FA2D1C8AFDB1CC8E486177F208B7DF DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2072 SWAP3 SWAP2 SWAP1 PUSH2 0x38FC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x20A5 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2881 JUMP JUMPDEST ISZERO PUSH2 0x2265 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20EB SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x349E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2105 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x2136 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2133 SWAP2 SWAP1 PUSH2 0x2E89 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x21DC JUMPI PUSH2 0x2142 PUSH2 0x3E39 JUMP JUMPDEST DUP1 PUSH4 0x8C379A0 EQ ISZERO PUSH2 0x219F JUMPI POP PUSH2 0x2157 PUSH2 0x444F JUMP JUMPDEST DUP1 PUSH2 0x2162 JUMPI POP PUSH2 0x21A1 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2196 SWAP2 SWAP1 PUSH2 0x361F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21D3 SWAP1 PUSH2 0x3641 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x2263 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x225A SWAP1 PUSH2 0x3661 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x22DD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D4 SWAP1 PUSH2 0x38A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x22E7 PUSH2 0x16FE JUMP JUMPDEST SWAP1 POP PUSH2 0x2308 DUP2 PUSH1 0x0 DUP8 PUSH2 0x22F9 DUP9 PUSH2 0x2403 JUMP JUMPDEST PUSH2 0x2302 DUP9 PUSH2 0x2403 JUMP JUMPDEST DUP8 PUSH2 0x207E JUMP JUMPDEST DUP3 PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 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 0x2367 SWAP2 SWAP1 PUSH2 0x3AAD JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x23E5 SWAP3 SWAP2 SWAP1 PUSH2 0x392C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH2 0x23FC DUP2 PUSH1 0x0 DUP8 DUP8 DUP8 DUP8 PUSH2 0x247D JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2422 JUMPI PUSH2 0x2421 PUSH2 0x3E0A JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x2450 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x2468 JUMPI PUSH2 0x2467 PUSH2 0x3DDB JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x249C DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x2881 JUMP JUMPDEST ISZERO PUSH2 0x265C JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x24E2 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3506 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24FC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x252D JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x252A SWAP2 SWAP1 PUSH2 0x2E89 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x25D3 JUMPI PUSH2 0x2539 PUSH2 0x3E39 JUMP JUMPDEST DUP1 PUSH4 0x8C379A0 EQ ISZERO PUSH2 0x2596 JUMPI POP PUSH2 0x254E PUSH2 0x444F JUMP JUMPDEST DUP1 PUSH2 0x2559 JUMPI POP PUSH2 0x2598 JUMP JUMPDEST DUP1 PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x258D SWAP2 SWAP1 PUSH2 0x361F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x25CA SWAP1 PUSH2 0x3641 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x265A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2651 SWAP1 PUSH2 0x3661 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x26D4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x26CB SWAP1 PUSH2 0x37C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x26DE PUSH2 0x16FE JUMP JUMPDEST SWAP1 POP PUSH2 0x270E DUP2 DUP6 PUSH1 0x0 PUSH2 0x26F0 DUP8 PUSH2 0x2403 JUMP JUMPDEST PUSH2 0x26F9 DUP8 PUSH2 0x2403 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x207E JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP3 DUP2 LT ISZERO PUSH2 0x27A5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x279C SWAP1 PUSH2 0x36C1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP2 SUB PUSH1 0x0 DUP1 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 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 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH2 0x2872 SWAP3 SWAP2 SWAP1 PUSH2 0x392C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 EXTCODESIZE SWAP1 POP PUSH1 0x0 DUP2 GT SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28E5 PUSH2 0x28E0 DUP5 PUSH2 0x397A JUMP JUMPDEST PUSH2 0x3955 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x2908 JUMPI PUSH2 0x2907 PUSH2 0x3E60 JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x2938 JUMPI DUP2 PUSH2 0x291E DUP9 DUP3 PUSH2 0x29F4 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x290B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2955 PUSH2 0x2950 DUP5 PUSH2 0x39A6 JUMP JUMPDEST PUSH2 0x3955 JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x2978 JUMPI PUSH2 0x2977 PUSH2 0x3E60 JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x29A8 JUMPI DUP2 PUSH2 0x298E DUP9 DUP3 PUSH2 0x2AE7 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x297B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29C5 PUSH2 0x29C0 DUP5 PUSH2 0x39D2 JUMP JUMPDEST PUSH2 0x3955 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x29E1 JUMPI PUSH2 0x29E0 PUSH2 0x3E65 JUMP JUMPDEST JUMPDEST PUSH2 0x29EC DUP5 DUP3 DUP6 PUSH2 0x3C60 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A03 DUP2 PUSH2 0x44E5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A18 DUP2 PUSH2 0x44FC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A33 JUMPI PUSH2 0x2A32 PUSH2 0x3E5B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A43 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x28D2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A61 JUMPI PUSH2 0x2A60 PUSH2 0x3E5B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A71 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2942 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A89 DUP2 PUSH2 0x4513 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2A9E DUP2 PUSH2 0x452A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x2AB3 DUP2 PUSH2 0x452A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2ACE JUMPI PUSH2 0x2ACD PUSH2 0x3E5B JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2ADE DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x29B2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2AF6 DUP2 PUSH2 0x4541 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B0B DUP2 PUSH2 0x4558 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B27 JUMPI PUSH2 0x2B26 PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B35 DUP5 DUP3 DUP6 ADD PUSH2 0x29F4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B55 JUMPI PUSH2 0x2B54 PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B63 DUP6 DUP3 DUP7 ADD PUSH2 0x29F4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B74 DUP6 DUP3 DUP7 ADD PUSH2 0x29F4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2B9A JUMPI PUSH2 0x2B99 PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2BA8 DUP9 DUP3 DUP10 ADD PUSH2 0x29F4 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2BB9 DUP9 DUP3 DUP10 ADD PUSH2 0x29F4 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BDA JUMPI PUSH2 0x2BD9 PUSH2 0x3E6A JUMP JUMPDEST JUMPDEST PUSH2 0x2BE6 DUP9 DUP3 DUP10 ADD PUSH2 0x2A4C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C07 JUMPI PUSH2 0x2C06 PUSH2 0x3E6A JUMP JUMPDEST JUMPDEST PUSH2 0x2C13 DUP9 DUP3 DUP10 ADD PUSH2 0x2A4C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C34 JUMPI PUSH2 0x2C33 PUSH2 0x3E6A JUMP JUMPDEST JUMPDEST PUSH2 0x2C40 DUP9 DUP3 DUP10 ADD PUSH2 0x2AB9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2C69 JUMPI PUSH2 0x2C68 PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C77 DUP9 DUP3 DUP10 ADD PUSH2 0x29F4 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2C88 DUP9 DUP3 DUP10 ADD PUSH2 0x29F4 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2C99 DUP9 DUP3 DUP10 ADD PUSH2 0x2AE7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2CAA DUP9 DUP3 DUP10 ADD PUSH2 0x2AE7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2CCB JUMPI PUSH2 0x2CCA PUSH2 0x3E6A JUMP JUMPDEST JUMPDEST PUSH2 0x2CD7 DUP9 DUP3 DUP10 ADD PUSH2 0x2AB9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2CFB JUMPI PUSH2 0x2CFA PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2D09 DUP6 DUP3 DUP7 ADD PUSH2 0x29F4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2D1A DUP6 DUP3 DUP7 ADD PUSH2 0x2A7A JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D3B JUMPI PUSH2 0x2D3A PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2D49 DUP6 DUP3 DUP7 ADD PUSH2 0x29F4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2D5A DUP6 DUP3 DUP7 ADD PUSH2 0x2AE7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2D7D JUMPI PUSH2 0x2D7C PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2D8B DUP7 DUP3 DUP8 ADD PUSH2 0x29F4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2D9C DUP7 DUP3 DUP8 ADD PUSH2 0x2AE7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2DAD DUP7 DUP3 DUP8 ADD PUSH2 0x2AE7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2DCE JUMPI PUSH2 0x2DCD PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DEC JUMPI PUSH2 0x2DEB PUSH2 0x3E6A JUMP JUMPDEST JUMPDEST PUSH2 0x2DF8 DUP6 DUP3 DUP7 ADD PUSH2 0x2A1E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2E19 JUMPI PUSH2 0x2E18 PUSH2 0x3E6A JUMP JUMPDEST JUMPDEST PUSH2 0x2E25 DUP6 DUP3 DUP7 ADD PUSH2 0x2A4C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E45 JUMPI PUSH2 0x2E44 PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2E53 DUP5 DUP3 DUP6 ADD PUSH2 0x2A7A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E72 JUMPI PUSH2 0x2E71 PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2E80 DUP5 DUP3 DUP6 ADD PUSH2 0x2A8F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2E9F JUMPI PUSH2 0x2E9E PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2EAD DUP5 DUP3 DUP6 ADD PUSH2 0x2AA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2ECC JUMPI PUSH2 0x2ECB PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2EDA DUP5 DUP3 DUP6 ADD PUSH2 0x2AE7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2EFC JUMPI PUSH2 0x2EFB PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2F0A DUP7 DUP3 DUP8 ADD PUSH2 0x2AE7 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2F1B DUP7 DUP3 DUP8 ADD PUSH2 0x2A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2F2C DUP7 DUP3 DUP8 ADD PUSH2 0x2AFC JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2F4D JUMPI PUSH2 0x2F4C PUSH2 0x3E6F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2F5B DUP6 DUP3 DUP7 ADD PUSH2 0x2AE7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2F6C DUP6 DUP3 DUP7 ADD PUSH2 0x2AE7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F82 DUP4 DUP4 PUSH2 0x33EF JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F9A DUP4 DUP4 PUSH2 0x341E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2FAF DUP2 PUSH2 0x3BD4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2FBE DUP2 PUSH2 0x3BD4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2FCD DUP2 PUSH2 0x3BC2 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FDE DUP3 PUSH2 0x3A23 JUMP JUMPDEST PUSH2 0x2FE8 DUP2 DUP6 PUSH2 0x3A69 JUMP JUMPDEST SWAP4 POP PUSH2 0x2FF3 DUP4 PUSH2 0x3A03 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3024 JUMPI DUP2 MLOAD PUSH2 0x300B DUP9 DUP3 PUSH2 0x2F76 JUMP JUMPDEST SWAP8 POP PUSH2 0x3016 DUP4 PUSH2 0x3A4F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2FF7 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x303C DUP3 PUSH2 0x3A2E JUMP JUMPDEST PUSH2 0x3046 DUP2 DUP6 PUSH2 0x3A7A JUMP JUMPDEST SWAP4 POP PUSH2 0x3051 DUP4 PUSH2 0x3A13 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3082 JUMPI DUP2 MLOAD PUSH2 0x3069 DUP9 DUP3 PUSH2 0x2F8E JUMP JUMPDEST SWAP8 POP PUSH2 0x3074 DUP4 PUSH2 0x3A5C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3055 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3098 DUP2 PUSH2 0x3BE6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A9 DUP3 PUSH2 0x3A39 JUMP JUMPDEST PUSH2 0x30B3 DUP2 DUP6 PUSH2 0x3A8B JUMP JUMPDEST SWAP4 POP PUSH2 0x30C3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C6F JUMP JUMPDEST PUSH2 0x30CC DUP2 PUSH2 0x3E74 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30E2 DUP3 PUSH2 0x3A44 JUMP JUMPDEST PUSH2 0x30EC DUP2 DUP6 PUSH2 0x3A9C JUMP JUMPDEST SWAP4 POP PUSH2 0x30FC DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C6F JUMP JUMPDEST PUSH2 0x3105 DUP2 PUSH2 0x3E74 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x311D PUSH1 0x34 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3128 DUP3 PUSH2 0x3E92 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3140 PUSH1 0x28 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x314B DUP3 PUSH2 0x3EE1 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3163 PUSH1 0x2B DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x316E DUP3 PUSH2 0x3F30 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3186 PUSH1 0x26 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3191 DUP3 PUSH2 0x3F7F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31A9 PUSH1 0x24 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x31B4 DUP3 PUSH2 0x3FCE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31CC PUSH1 0x29 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x31D7 DUP3 PUSH2 0x401D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x31EF PUSH1 0x1F DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x31FA DUP3 PUSH2 0x406C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3212 PUSH1 0x22 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x321D DUP3 PUSH2 0x4095 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3235 PUSH1 0x20 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3240 DUP3 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3258 PUSH1 0x25 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3263 DUP3 PUSH2 0x410D JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x327B PUSH1 0x32 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3286 DUP3 PUSH2 0x415C JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x329E PUSH1 0x2A DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x32A9 DUP3 PUSH2 0x41AB JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32C1 PUSH1 0x23 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x32CC DUP3 PUSH2 0x41FA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32E4 PUSH1 0x2A DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x32EF DUP3 PUSH2 0x4249 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3307 PUSH1 0x20 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3312 DUP3 PUSH2 0x4298 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x332A PUSH1 0x1B DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3335 DUP3 PUSH2 0x42C1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334D PUSH1 0x29 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3358 DUP3 PUSH2 0x42EA JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3370 PUSH1 0x29 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x337B DUP3 PUSH2 0x4339 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3393 PUSH1 0x28 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x339E DUP3 PUSH2 0x4388 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33B6 PUSH1 0x21 DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x33C1 DUP3 PUSH2 0x43D7 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33D9 PUSH1 0x1B DUP4 PUSH2 0x3A9C JUMP JUMPDEST SWAP2 POP PUSH2 0x33E4 DUP3 PUSH2 0x4426 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x3405 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x2FA6 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3418 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x343C JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x3427 DUP2 PUSH2 0x3C3E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3436 DUP2 PUSH2 0x3C3E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3445 DUP2 PUSH2 0x3C48 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3454 DUP2 PUSH2 0x3C48 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x346F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2FC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x348A PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2FB5 JUMP JUMPDEST PUSH2 0x3497 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x344B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x34B3 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2FC4 JUMP JUMPDEST PUSH2 0x34C0 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2FC4 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x34D2 DUP2 DUP7 PUSH2 0x3031 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x34E6 DUP2 DUP6 PUSH2 0x3031 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x34FA DUP2 DUP5 PUSH2 0x309E JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x351B PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2FC4 JUMP JUMPDEST PUSH2 0x3528 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2FC4 JUMP JUMPDEST PUSH2 0x3535 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x342D JUMP JUMPDEST PUSH2 0x3542 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x342D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3554 DUP2 DUP5 PUSH2 0x309E JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3575 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2FC4 JUMP JUMPDEST PUSH2 0x3582 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x342D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x35A3 DUP2 DUP5 PUSH2 0x2FD3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x35C5 DUP2 DUP5 PUSH2 0x3031 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x35E7 DUP2 DUP6 PUSH2 0x3031 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x35FB DUP2 DUP5 PUSH2 0x3031 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3619 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x308F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3639 DUP2 DUP5 PUSH2 0x30D7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x365A DUP2 PUSH2 0x3110 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x367A DUP2 PUSH2 0x3133 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x369A DUP2 PUSH2 0x3156 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x36BA DUP2 PUSH2 0x3179 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x36DA DUP2 PUSH2 0x319C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x36FA DUP2 PUSH2 0x31BF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x371A DUP2 PUSH2 0x31E2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x373A DUP2 PUSH2 0x3205 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x375A DUP2 PUSH2 0x3228 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x377A DUP2 PUSH2 0x324B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x379A DUP2 PUSH2 0x326E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x37BA DUP2 PUSH2 0x3291 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x37DA DUP2 PUSH2 0x32B4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x37FA DUP2 PUSH2 0x32D7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x381A DUP2 PUSH2 0x32FA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x383A DUP2 PUSH2 0x331D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x385A DUP2 PUSH2 0x3340 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x387A DUP2 PUSH2 0x3363 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x389A DUP2 PUSH2 0x3386 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x38BA DUP2 PUSH2 0x33A9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x38DA DUP2 PUSH2 0x33CC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x38F6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x342D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3911 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x342D JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3923 DUP2 DUP5 PUSH2 0x2FD3 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3941 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x342D JUMP JUMPDEST PUSH2 0x394E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x342D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x395F PUSH2 0x3970 JUMP JUMPDEST SWAP1 POP PUSH2 0x396B DUP3 DUP3 PUSH2 0x3CD4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3995 JUMPI PUSH2 0x3994 PUSH2 0x3E0A JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x39C1 JUMPI PUSH2 0x39C0 PUSH2 0x3E0A JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x39ED JUMPI PUSH2 0x39EC PUSH2 0x3E0A JUMP JUMPDEST JUMPDEST PUSH2 0x39F6 DUP3 PUSH2 0x3E74 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AB8 DUP3 PUSH2 0x3C3E JUMP JUMPDEST SWAP2 POP PUSH2 0x3AC3 DUP4 PUSH2 0x3C3E JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x3AF8 JUMPI PUSH2 0x3AF7 PUSH2 0x3D4E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B0E DUP3 PUSH2 0x3C3E JUMP JUMPDEST SWAP2 POP PUSH2 0x3B19 DUP4 PUSH2 0x3C3E JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3B29 JUMPI PUSH2 0x3B28 PUSH2 0x3D7D JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B3F DUP3 PUSH2 0x3C3E JUMP JUMPDEST SWAP2 POP PUSH2 0x3B4A DUP4 PUSH2 0x3C3E JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x3B83 JUMPI PUSH2 0x3B82 PUSH2 0x3D4E JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3B99 DUP3 PUSH2 0x3C3E JUMP JUMPDEST SWAP2 POP PUSH2 0x3BA4 DUP4 PUSH2 0x3C3E JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x3BB7 JUMPI PUSH2 0x3BB6 PUSH2 0x3D4E JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BCD DUP3 PUSH2 0x3C1E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3BDF DUP3 PUSH2 0x3C1E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3C8D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3C72 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x3C9C JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x3CBA JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x3CCE JUMPI PUSH2 0x3CCD PUSH2 0x3DAC JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3CDD DUP3 PUSH2 0x3E74 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x3CFC JUMPI PUSH2 0x3CFB PUSH2 0x3E0A JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D10 DUP3 PUSH2 0x3C3E JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x3D43 JUMPI PUSH2 0x3D42 PUSH2 0x3D4E JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x3 RETURNDATASIZE GT ISZERO PUSH2 0x3E58 JUMPI PUSH1 0x4 PUSH1 0x0 DUP1 RETURNDATACOPY PUSH2 0x3E55 PUSH1 0x0 MLOAD PUSH2 0x3E85 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0xE0 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x455243313135353A207472616E7366657220746F206E6F6E2045524331313535 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x526563656976657220696D706C656D656E746572000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A204552433131353552656365697665722072656A65637465 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6420746F6B656E73000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A2062616C616E636520717565727920666F7220746865207A PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x65726F2061646472657373000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A206275726E20616D6F756E7420657863656564732062616C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x616E636500000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A2063616C6C6572206973206E6F74206F776E6572206E6F72 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20617070726F7665640000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x45746865722076616C75652073656E74206973206E6F7420636F727265637400 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x53616C65206D7573742062652061637469766520746F206D696E7420546F6B65 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6E73000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x526F79616C74792076616C75652073686F756C6420626520706F736974697665 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A207472616E7366657220746F20746865207A65726F206164 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6472657373000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A207472616E736665722063616C6C6572206973206E6F7420 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6F776E6572206E6F7220617070726F7665640000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x507572636861736520776F756C6420657863656564206D617820737570706C79 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x206F6620746F6B656E7300000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A206275726E2066726F6D20746865207A65726F2061646472 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6573730000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A20696E73756666696369656E742062616C616E636520666F PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x72207472616E7366657200000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x4578636565646564206D617820746F6B656E2070757263686173650000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A2073657474696E6720617070726F76616C20737461747573 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x20666F722073656C660000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A206163636F756E747320616E6420696473206C656E677468 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x206D69736D617463680000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A2069647320616E6420616D6F756E7473206C656E67746820 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x6D69736D61746368000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x455243313135353A206D696E7420746F20746865207A65726F20616464726573 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7300000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x526563697069656E742073686F756C642062652070726573656E740000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x44 RETURNDATASIZE LT ISZERO PUSH2 0x445F JUMPI PUSH2 0x44E2 JUMP JUMPDEST PUSH2 0x4467 PUSH2 0x3970 JUMP JUMPDEST PUSH1 0x4 RETURNDATASIZE SUB PUSH1 0x4 DUP3 RETURNDATACOPY DUP1 MLOAD RETURNDATASIZE PUSH1 0x24 DUP3 ADD GT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x448F JUMPI POP POP PUSH2 0x44E2 JUMP JUMPDEST DUP1 DUP3 ADD DUP1 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x44AD JUMPI POP POP POP POP PUSH2 0x44E2 JUMP JUMPDEST DUP1 PUSH1 0x20 DUP4 ADD ADD PUSH1 0x4 RETURNDATASIZE SUB DUP6 ADD DUP2 GT ISZERO PUSH2 0x44CA JUMPI POP POP POP POP POP PUSH2 0x44E2 JUMP JUMPDEST PUSH2 0x44D9 DUP3 PUSH1 0x20 ADD DUP6 ADD DUP7 PUSH2 0x3CD4 JUMP JUMPDEST DUP3 SWAP6 POP POP POP POP POP POP JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x44EE DUP2 PUSH2 0x3BC2 JUMP JUMPDEST DUP2 EQ PUSH2 0x44F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4505 DUP2 PUSH2 0x3BD4 JUMP JUMPDEST DUP2 EQ PUSH2 0x4510 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x451C DUP2 PUSH2 0x3BE6 JUMP JUMPDEST DUP2 EQ PUSH2 0x4527 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4533 DUP2 PUSH2 0x3BF2 JUMP JUMPDEST DUP2 EQ PUSH2 0x453E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x454A DUP2 PUSH2 0x3C3E JUMP JUMPDEST DUP2 EQ PUSH2 0x4555 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4561 DUP2 PUSH2 0x3C48 JUMP JUMPDEST DUP2 EQ PUSH2 0x456C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER CALLVALUE PUSH4 0xF60B4398 0xAF SELFDESTRUCT 0x5C 0xC5 0xC1 0xCB 0x4C SWAP7 NUMBER PUSH20 0x1C087711EF5FF14ECD38F3E999786764736F6C63 NUMBER STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "804:2587:15:-:0;;;896:5;869:32;;;;;;;;;;;;;;;;;;;;1182:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1221:3;1073:13:1;1081:4;1073:7;;;:13;;:::i;:::-;1031:62;867:23:0;877:12;:10;;;:12;;:::i;:::-;867:9;;;:23;;:::i;:::-;1182:51:15;804:2587;;8028:86:1;8101:6;8094:4;:13;;;;;;;;;;;;:::i;:::-;;8028:86;:::o;587:96:7:-;640:7;666:10;659:17;;587:96;:::o;2041:169:0:-;2096:16;2115:6;;;;;;;;;;;2096:25;;2140:8;2131:6;;:17;;;;;;;;;;;;;;;;;;2194:8;2163:40;;2184:8;2163:40;;;;;;;;;;;;2086:124;2041:169;:::o;804:2587:15:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:421:16:-;96:5;121:66;137:49;179:6;137:49;:::i;:::-;121:66;:::i;:::-;112:75;;210:6;203:5;196:21;248:4;241:5;237:16;286:3;277:6;272:3;268:16;265:25;262:112;;;293:79;;:::i;:::-;262:112;383:39;415:6;410:3;405;383:39;:::i;:::-;102:326;7:421;;;;;:::o;448:355::-;515:5;564:3;557:4;549:6;545:17;541:27;531:122;;572:79;;:::i;:::-;531:122;682:6;676:13;707:90;793:3;785:6;778:4;770:6;766:17;707:90;:::i;:::-;698:99;;521:282;448:355;;;;:::o;809:524::-;889:6;938:2;926:9;917:7;913:23;909:32;906:119;;;944:79;;:::i;:::-;906:119;1085:1;1074:9;1070:17;1064:24;1115:18;1107:6;1104:30;1101:117;;;1137:79;;:::i;:::-;1101:117;1242:74;1308:7;1299:6;1288:9;1284:22;1242:74;:::i;:::-;1232:84;;1035:291;809:524;;;;:::o;1339:129::-;1373:6;1400:20;;:::i;:::-;1390:30;;1429:33;1457:4;1449:6;1429:33;:::i;:::-;1339:129;;;:::o;1474:75::-;1507:6;1540:2;1534:9;1524:19;;1474:75;:::o;1555:308::-;1617:4;1707:18;1699:6;1696:30;1693:56;;;1729:18;;:::i;:::-;1693:56;1767:29;1789:6;1767:29;:::i;:::-;1759:37;;1851:4;1845;1841:15;1833:23;;1555:308;;;:::o;1869:307::-;1937:1;1947:113;1961:6;1958:1;1955:13;1947:113;;;2046:1;2041:3;2037:11;2031:18;2027:1;2022:3;2018:11;2011:39;1983:2;1980:1;1976:10;1971:15;;1947:113;;;2078:6;2075:1;2072:13;2069:101;;;2158:1;2149:6;2144:3;2140:16;2133:27;2069:101;1918:258;1869:307;;;:::o;2182:320::-;2226:6;2263:1;2257:4;2253:12;2243:22;;2310:1;2304:4;2300:12;2331:18;2321:81;;2387:4;2379:6;2375:17;2365:27;;2321:81;2449:2;2441:6;2438:14;2418:18;2415:38;2412:84;;;2468:18;;:::i;:::-;2412:84;2233:269;2182:320;;;:::o;2508:281::-;2591:27;2613:4;2591:27;:::i;:::-;2583:6;2579:40;2721:6;2709:10;2706:22;2685:18;2673:10;2670:34;2667:62;2664:88;;;2732:18;;:::i;:::-;2664:88;2772:10;2768:2;2761:22;2551:238;2508:281;;:::o;2795:180::-;2843:77;2840:1;2833:88;2940:4;2937:1;2930:15;2964:4;2961:1;2954:15;2981:180;3029:77;3026:1;3019:88;3126:4;3123:1;3116:15;3150:4;3147:1;3140:15;3167:117;3276:1;3273;3266:12;3290:117;3399:1;3396;3389:12;3413:117;3522:1;3519;3512:12;3536:117;3645:1;3642;3635:12;3659:102;3700:6;3751:2;3747:7;3742:2;3735:5;3731:14;3727:28;3717:38;;3659:102;;;:::o;804:2587:15:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_asSingletonArray_1183": {
"entryPoint": 9219,
"id": 1183,
"parameterSlots": 1,
"returnSlots": 1
},
"@_beforeTokenTransfer_1027": {
"entryPoint": 8318,
"id": 1027,
"parameterSlots": 6,
"returnSlots": 0
},
"@_burn_1489": {
"entryPoint": 8093,
"id": 1489,
"parameterSlots": 3,
"returnSlots": 0
},
"@_burn_897": {
"entryPoint": 9828,
"id": 897,
"parameterSlots": 3,
"returnSlots": 0
},
"@_doSafeBatchTransferAcceptanceCheck_1155": {
"entryPoint": 8326,
"id": 1155,
"parameterSlots": 6,
"returnSlots": 0
},
"@_doSafeTransferAcceptanceCheck_1090": {
"entryPoint": 9341,
"id": 1090,
"parameterSlots": 6,
"returnSlots": 0
},
"@_mint_1415": {
"entryPoint": 7391,
"id": 1415,
"parameterSlots": 4,
"returnSlots": 0
},
"@_mint_719": {
"entryPoint": 8813,
"id": 719,
"parameterSlots": 4,
"returnSlots": 0
},
"@_msgSender_1859": {
"entryPoint": 5886,
"id": 1859,
"parameterSlots": 0,
"returnSlots": 1
},
"@_onRoyaltiesSet_2140": {
"entryPoint": 8257,
"id": 2140,
"parameterSlots": 2,
"returnSlots": 0
},
"@_safeBatchTransferFrom_633": {
"entryPoint": 6405,
"id": 633,
"parameterSlots": 5,
"returnSlots": 0
},
"@_safeTransferFrom_507": {
"entryPoint": 7451,
"id": 507,
"parameterSlots": 5,
"returnSlots": 0
},
"@_saveRoyalties_2034": {
"entryPoint": 5894,
"id": 2034,
"parameterSlots": 2,
"returnSlots": 0
},
"@_setOwner_102": {
"entryPoint": 7193,
"id": 102,
"parameterSlots": 1,
"returnSlots": 0
},
"@balanceOfBatch_283": {
"entryPoint": 3083,
"id": 283,
"parameterSlots": 2,
"returnSlots": 1
},
"@balanceOf_219": {
"entryPoint": 1406,
"id": 219,
"parameterSlots": 2,
"returnSlots": 1
},
"@burn_2281": {
"entryPoint": 5588,
"id": 2281,
"parameterSlots": 3,
"returnSlots": 0
},
"@exists_1386": {
"entryPoint": 3364,
"id": 1386,
"parameterSlots": 1,
"returnSlots": 1
},
"@getRaribleV2Royalties_2124": {
"entryPoint": 4599,
"id": 2124,
"parameterSlots": 1,
"returnSlots": 1
},
"@isApprovedForAll_335": {
"entryPoint": 5012,
"id": 335,
"parameterSlots": 2,
"returnSlots": 1
},
"@isContract_1570": {
"entryPoint": 10369,
"id": 1570,
"parameterSlots": 1,
"returnSlots": 1
},
"@mint_2258": {
"entryPoint": 3679,
"id": 2258,
"parameterSlots": 1,
"returnSlots": 0
},
"@owner_32": {
"entryPoint": 3637,
"id": 32,
"parameterSlots": 0,
"returnSlots": 1
},
"@renounceOwnership_60": {
"entryPoint": 3384,
"id": 60,
"parameterSlots": 0,
"returnSlots": 0
},
"@reserve_2199": {
"entryPoint": 4857,
"id": 2199,
"parameterSlots": 0,
"returnSlots": 0
},
"@royalties_1974": {
"entryPoint": 3520,
"id": 1974,
"parameterSlots": 0,
"returnSlots": 0
},
"@royaltyInfo_2398": {
"entryPoint": 2325,
"id": 2398,
"parameterSlots": 2,
"returnSlots": 2
},
"@safeBatchTransferFrom_413": {
"entryPoint": 2719,
"id": 413,
"parameterSlots": 5,
"returnSlots": 0
},
"@safeTransferFrom_373": {
"entryPoint": 5179,
"id": 373,
"parameterSlots": 5,
"returnSlots": 0
},
"@saleIsActive_2158": {
"entryPoint": 5160,
"id": 2158,
"parameterSlots": 0,
"returnSlots": 0
},
"@setApprovalForAll_317": {
"entryPoint": 4032,
"id": 317,
"parameterSlots": 2,
"returnSlots": 0
},
"@setRoyalties_2348": {
"entryPoint": 1946,
"id": 2348,
"parameterSlots": 3,
"returnSlots": 0
},
"@setSaleState_2211": {
"entryPoint": 4446,
"id": 2211,
"parameterSlots": 1,
"returnSlots": 0
},
"@supportsInterface_179": {
"entryPoint": 5660,
"id": 179,
"parameterSlots": 1,
"returnSlots": 1
},
"@supportsInterface_1892": {
"entryPoint": 8151,
"id": 1892,
"parameterSlots": 1,
"returnSlots": 1
},
"@supportsInterface_2428": {
"entryPoint": 1607,
"id": 2428,
"parameterSlots": 1,
"returnSlots": 1
},
"@totalSupply_1370": {
"entryPoint": 4417,
"id": 1370,
"parameterSlots": 1,
"returnSlots": 1
},
"@transferOwnership_83": {
"entryPoint": 5340,
"id": 83,
"parameterSlots": 1,
"returnSlots": 0
},
"@uri_191": {
"entryPoint": 1798,
"id": 191,
"parameterSlots": 1,
"returnSlots": 1
},
"@withdraw_2304": {
"entryPoint": 2880,
"id": 2304,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 10450,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 10562,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_bytes_memory_ptr": {
"entryPoint": 10674,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 10740,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_address_payable": {
"entryPoint": 10761,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 10782,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 10828,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bool": {
"entryPoint": 10874,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes4": {
"entryPoint": 10895,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes4_fromMemory": {
"entryPoint": 10916,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes_memory_ptr": {
"entryPoint": 10937,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 10983,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint96": {
"entryPoint": 11004,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 11025,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_address": {
"entryPoint": 11070,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr": {
"entryPoint": 11134,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": {
"entryPoint": 11341,
"id": null,
"parameterSlots": 2,
"returnSlots": 5
},
"abi_decode_tuple_t_addresst_bool": {
"entryPoint": 11492,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_uint256": {
"entryPoint": 11556,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_addresst_uint256t_uint256": {
"entryPoint": 11620,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 11703,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_bool": {
"entryPoint": 11823,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes4": {
"entryPoint": 11868,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes4_fromMemory": {
"entryPoint": 11913,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 11958,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_address_payablet_uint96": {
"entryPoint": 12003,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_uint256t_uint256": {
"entryPoint": 12086,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encodeUpdatedPos_t_struct$_Part_$1917_memory_ptr_to_t_struct$_Part_$1917_memory_ptr": {
"entryPoint": 12150,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encodeUpdatedPos_t_uint256_to_t_uint256": {
"entryPoint": 12174,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_payable_to_t_address_payable": {
"entryPoint": 12198,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_payable_to_t_address_payable_fromStack": {
"entryPoint": 12213,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 12228,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr_fromStack": {
"entryPoint": 12243,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 12337,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 12431,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": {
"entryPoint": 12446,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12503,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12560,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12595,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12630,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12665,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12700,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12735,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_4f2866f2d9fce93a0baf3856b493e9407095000996fea2f7904a39c9164781ad_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12770,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_511287d5b927b2751e48b11f35dd67060c98d27df3483fd6cb890a0e6ffd9d64_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12805,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_593311831d740e3a682cd1941decbdb819cd1a530afb770ecfcfb0c7a8b3d52a_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12840,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12875,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12910,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_7ce6ec1bd6c3505ea5da967bf558aeb356e546a32ae62cd3452e5a93b4455310_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12945,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a_to_t_string_memory_ptr_fromStack": {
"entryPoint": 12980,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf_to_t_string_memory_ptr_fromStack": {
"entryPoint": 13015,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe_to_t_string_memory_ptr_fromStack": {
"entryPoint": 13050,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_b6a37eb5ebdc07ec97a318bdf63fdf42efb7d0dce5e9e61121ab67ae856dcab6_to_t_string_memory_ptr_fromStack": {
"entryPoint": 13085,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2_to_t_string_memory_ptr_fromStack": {
"entryPoint": 13120,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5_to_t_string_memory_ptr_fromStack": {
"entryPoint": 13155,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807_to_t_string_memory_ptr_fromStack": {
"entryPoint": 13190,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2_to_t_string_memory_ptr_fromStack": {
"entryPoint": 13225,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_ee50f6df2181dd19e502443265ec469bb75e8a65bb811a800aad148381cf8508_to_t_string_memory_ptr_fromStack": {
"entryPoint": 13260,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_struct$_Part_$1917_memory_ptr_to_t_struct$_Part_$1917_memory_ptr": {
"entryPoint": 13295,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256": {
"entryPoint": 13342,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 13357,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint96_to_t_uint96": {
"entryPoint": 13372,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint96_to_t_uint96_fromStack": {
"entryPoint": 13387,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 13402,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address_payable_t_uint96__to_t_address_payable_t_uint96__fromStack_reversed": {
"entryPoint": 13429,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 13470,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed": {
"entryPoint": 13574,
"id": null,
"parameterSlots": 6,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
"entryPoint": 13664,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 13705,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 13739,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 13773,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 13828,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 13855,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 13889,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 13921,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 13953,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 13985,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14017,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14049,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_4f2866f2d9fce93a0baf3856b493e9407095000996fea2f7904a39c9164781ad__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14081,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_511287d5b927b2751e48b11f35dd67060c98d27df3483fd6cb890a0e6ffd9d64__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14113,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_593311831d740e3a682cd1941decbdb819cd1a530afb770ecfcfb0c7a8b3d52a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14145,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14177,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14209,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_7ce6ec1bd6c3505ea5da967bf558aeb356e546a32ae62cd3452e5a93b4455310__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14241,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14273,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14305,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14337,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_b6a37eb5ebdc07ec97a318bdf63fdf42efb7d0dce5e9e61121ab67ae856dcab6__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14369,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14401,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14433,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14465,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14497,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_ee50f6df2181dd19e502443265ec469bb75e8a65bb811a800aad148381cf8508__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 14529,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 14561,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr__to_t_uint256_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 14588,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": {
"entryPoint": 14636,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 14677,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 14704,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_address_$dyn_memory_ptr": {
"entryPoint": 14714,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 14758,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_bytes_memory_ptr": {
"entryPoint": 14802,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 14851,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 14867,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 14883,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 14894,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 14905,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 14916,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 14927,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 14940,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr_fromStack": {
"entryPoint": 14953,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 14970,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": {
"entryPoint": 14987,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 15004,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 15021,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_div_t_uint256": {
"entryPoint": 15107,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 15156,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 15246,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 15298,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_address_payable": {
"entryPoint": 15316,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 15334,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes4": {
"entryPoint": 15346,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 15390,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 15422,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint96": {
"entryPoint": 15432,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 15456,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 15471,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 15522,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 15572,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 15621,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 15694,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x12": {
"entryPoint": 15741,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 15788,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 15835,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 15882,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"return_data_selector": {
"entryPoint": 15929,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 15963,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 15968,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 15973,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 15978,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 15983,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 15988,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"shift_right_224_unsigned": {
"entryPoint": 16005,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"store_literal_in_memory_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed": {
"entryPoint": 16018,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503": {
"entryPoint": 16097,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9": {
"entryPoint": 16176,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe": {
"entryPoint": 16255,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685": {
"entryPoint": 16334,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a": {
"entryPoint": 16413,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_4f2866f2d9fce93a0baf3856b493e9407095000996fea2f7904a39c9164781ad": {
"entryPoint": 16492,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_511287d5b927b2751e48b11f35dd67060c98d27df3483fd6cb890a0e6ffd9d64": {
"entryPoint": 16533,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_593311831d740e3a682cd1941decbdb819cd1a530afb770ecfcfb0c7a8b3d52a": {
"entryPoint": 16612,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d": {
"entryPoint": 16653,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686": {
"entryPoint": 16732,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_7ce6ec1bd6c3505ea5da967bf558aeb356e546a32ae62cd3452e5a93b4455310": {
"entryPoint": 16811,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a": {
"entryPoint": 16890,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf": {
"entryPoint": 16969,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe": {
"entryPoint": 17048,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_b6a37eb5ebdc07ec97a318bdf63fdf42efb7d0dce5e9e61121ab67ae856dcab6": {
"entryPoint": 17089,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2": {
"entryPoint": 17130,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5": {
"entryPoint": 17209,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807": {
"entryPoint": 17288,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2": {
"entryPoint": 17367,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_ee50f6df2181dd19e502443265ec469bb75e8a65bb811a800aad148381cf8508": {
"entryPoint": 17446,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"try_decode_error_message": {
"entryPoint": 17487,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 17637,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address_payable": {
"entryPoint": 17660,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bool": {
"entryPoint": 17683,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_bytes4": {
"entryPoint": 17706,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 17729,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint96": {
"entryPoint": 17752,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:53811:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "126:620:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "136:90:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "218:6:16"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "161:56:16"
},
"nodeType": "YulFunctionCall",
"src": "161:64:16"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "145:15:16"
},
"nodeType": "YulFunctionCall",
"src": "145:81:16"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "136:5:16"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "235:16:16",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "246:5:16"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "239:3:16",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "268:5:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "275:6:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "261:6:16"
},
"nodeType": "YulFunctionCall",
"src": "261:21:16"
},
"nodeType": "YulExpressionStatement",
"src": "261:21:16"
},
{
"nodeType": "YulAssignment",
"src": "291:23:16",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "302:5:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "309:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "298:3:16"
},
"nodeType": "YulFunctionCall",
"src": "298:16:16"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "291:3:16"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "324:17:16",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "335:6:16"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "328:3:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "390:103:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "404:77:16"
},
"nodeType": "YulFunctionCall",
"src": "404:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "404:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "360:3:16"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "369:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "377:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "365:3:16"
},
"nodeType": "YulFunctionCall",
"src": "365:17:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "356:3:16"
},
"nodeType": "YulFunctionCall",
"src": "356:27:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "385:3:16"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "353:2:16"
},
"nodeType": "YulFunctionCall",
"src": "353:36:16"
},
"nodeType": "YulIf",
"src": "350:143:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "562:178:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "577:21:16",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "595:3:16"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "581:10:16",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "619:3:16"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "645:10:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "657:3:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "624:20:16"
},
"nodeType": "YulFunctionCall",
"src": "624:37:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "612:6:16"
},
"nodeType": "YulFunctionCall",
"src": "612:50:16"
},
"nodeType": "YulExpressionStatement",
"src": "612:50:16"
},
{
"nodeType": "YulAssignment",
"src": "675:21:16",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "686:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "691:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "682:3:16"
},
"nodeType": "YulFunctionCall",
"src": "682:14:16"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "675:3:16"
}
]
},
{
"nodeType": "YulAssignment",
"src": "709:21:16",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "720:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "725:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "716:3:16"
},
"nodeType": "YulFunctionCall",
"src": "716:14:16"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "709:3:16"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "524:1:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "527:6:16"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "521:2:16"
},
"nodeType": "YulFunctionCall",
"src": "521:13:16"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "535:18:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "537:14:16",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "546:1:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "549:1:16",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "542:3:16"
},
"nodeType": "YulFunctionCall",
"src": "542:9:16"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "537:1:16"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "506:14:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "508:10:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "517:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "512:1:16",
"type": ""
}
]
}
]
},
"src": "502:238:16"
}
]
},
"name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "96:6:16",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "104:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "112:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "120:5:16",
"type": ""
}
],
"src": "24:722:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "871:620:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "881:90:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "963:6:16"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "906:56:16"
},
"nodeType": "YulFunctionCall",
"src": "906:64:16"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "890:15:16"
},
"nodeType": "YulFunctionCall",
"src": "890:81:16"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "881:5:16"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "980:16:16",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "991:5:16"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "984:3:16",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1013:5:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1020:6:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1006:6:16"
},
"nodeType": "YulFunctionCall",
"src": "1006:21:16"
},
"nodeType": "YulExpressionStatement",
"src": "1006:21:16"
},
{
"nodeType": "YulAssignment",
"src": "1036:23:16",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1047:5:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1054:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1043:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1043:16:16"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1036:3:16"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1069:17:16",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1080:6:16"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1073:3:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1135:103:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "1149:77:16"
},
"nodeType": "YulFunctionCall",
"src": "1149:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "1149:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1105:3:16"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1114:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1122:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "1110:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1110:17:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1101:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1101:27:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1130:3:16"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1098:2:16"
},
"nodeType": "YulFunctionCall",
"src": "1098:36:16"
},
"nodeType": "YulIf",
"src": "1095:143:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1307:178:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1322:21:16",
"value": {
"name": "src",
"nodeType": "YulIdentifier",
"src": "1340:3:16"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "1326:10:16",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1364:3:16"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "1390:10:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1402:3:16"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1369:20:16"
},
"nodeType": "YulFunctionCall",
"src": "1369:37:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1357:6:16"
},
"nodeType": "YulFunctionCall",
"src": "1357:50:16"
},
"nodeType": "YulExpressionStatement",
"src": "1357:50:16"
},
{
"nodeType": "YulAssignment",
"src": "1420:21:16",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1431:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1436:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1427:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1427:14:16"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1420:3:16"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1454:21:16",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1465:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1470:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1461:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1461:14:16"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1454:3:16"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1269:1:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1272:6:16"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1266:2:16"
},
"nodeType": "YulFunctionCall",
"src": "1266:13:16"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1280:18:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1282:14:16",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1291:1:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1294:1:16",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1287:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1287:9:16"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1282:1:16"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1251:14:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1253:10:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1262:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1257:1:16",
"type": ""
}
]
}
]
},
"src": "1247:238:16"
}
]
},
"name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "841:6:16",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "849:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "857:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "865:5:16",
"type": ""
}
],
"src": "769:722:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1580:327:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1590:74:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1656:6:16"
}
],
"functionName": {
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1615:40:16"
},
"nodeType": "YulFunctionCall",
"src": "1615:48:16"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "1599:15:16"
},
"nodeType": "YulFunctionCall",
"src": "1599:65:16"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1590:5:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1680:5:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1687:6:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1673:6:16"
},
"nodeType": "YulFunctionCall",
"src": "1673:21:16"
},
"nodeType": "YulExpressionStatement",
"src": "1673:21:16"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1703:27:16",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1718:5:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1725:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1714:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1714:16:16"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1707:3:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1768:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "1770:77:16"
},
"nodeType": "YulFunctionCall",
"src": "1770:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "1770:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1749:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1754:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1745:3:16"
},
"nodeType": "YulFunctionCall",
"src": "1745:16:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1763:3:16"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1742:2:16"
},
"nodeType": "YulFunctionCall",
"src": "1742:25:16"
},
"nodeType": "YulIf",
"src": "1739:112:16"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1884:3:16"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1889:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1894:6:16"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "1860:23:16"
},
"nodeType": "YulFunctionCall",
"src": "1860:41:16"
},
"nodeType": "YulExpressionStatement",
"src": "1860:41:16"
}
]
},
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1553:3:16",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1558:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1566:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "1574:5:16",
"type": ""
}
],
"src": "1497:410:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1965:87:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1975:29:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1997:6:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1984:12:16"
},
"nodeType": "YulFunctionCall",
"src": "1984:20:16"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1975:5:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2040:5:16"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "2013:26:16"
},
"nodeType": "YulFunctionCall",
"src": "2013:33:16"
},
"nodeType": "YulExpressionStatement",
"src": "2013:33:16"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1943:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1951:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1959:5:16",
"type": ""
}
],
"src": "1913:139:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2118:95:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2128:29:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2150:6:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2137:12:16"
},
"nodeType": "YulFunctionCall",
"src": "2137:20:16"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2128:5:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2201:5:16"
}
],
"functionName": {
"name": "validator_revert_t_address_payable",
"nodeType": "YulIdentifier",
"src": "2166:34:16"
},
"nodeType": "YulFunctionCall",
"src": "2166:41:16"
},
"nodeType": "YulExpressionStatement",
"src": "2166:41:16"
}
]
},
"name": "abi_decode_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2096:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2104:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2112:5:16",
"type": ""
}
],
"src": "2058:155:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2313:293:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2362:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2364:77:16"
},
"nodeType": "YulFunctionCall",
"src": "2364:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "2364:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2341:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2349:4:16",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2337:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2337:17:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2356:3:16"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2333:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2333:27:16"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2326:6:16"
},
"nodeType": "YulFunctionCall",
"src": "2326:35:16"
},
"nodeType": "YulIf",
"src": "2323:122:16"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2454:34:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2481:6:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2468:12:16"
},
"nodeType": "YulFunctionCall",
"src": "2468:20:16"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2458:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2497:103:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2573:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2581:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2569:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2569:17:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2588:6:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2596:3:16"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2506:62:16"
},
"nodeType": "YulFunctionCall",
"src": "2506:94:16"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2497:5:16"
}
]
}
]
},
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2291:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2299:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2307:5:16",
"type": ""
}
],
"src": "2236:370:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2706:293:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2755:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2757:77:16"
},
"nodeType": "YulFunctionCall",
"src": "2757:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "2757:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2734:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2742:4:16",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2730:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2730:17:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2749:3:16"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2726:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2726:27:16"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2719:6:16"
},
"nodeType": "YulFunctionCall",
"src": "2719:35:16"
},
"nodeType": "YulIf",
"src": "2716:122:16"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2847:34:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2874:6:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2861:12:16"
},
"nodeType": "YulFunctionCall",
"src": "2861:20:16"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2851:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2890:103:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2966:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2974:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2962:3:16"
},
"nodeType": "YulFunctionCall",
"src": "2962:17:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2981:6:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2989:3:16"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2899:62:16"
},
"nodeType": "YulFunctionCall",
"src": "2899:94:16"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2890:5:16"
}
]
}
]
},
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2684:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2692:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2700:5:16",
"type": ""
}
],
"src": "2629:370:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3054:84:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3064:29:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3086:6:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3073:12:16"
},
"nodeType": "YulFunctionCall",
"src": "3073:20:16"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3064:5:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3126:5:16"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "3102:23:16"
},
"nodeType": "YulFunctionCall",
"src": "3102:30:16"
},
"nodeType": "YulExpressionStatement",
"src": "3102:30:16"
}
]
},
"name": "abi_decode_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3032:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3040:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3048:5:16",
"type": ""
}
],
"src": "3005:133:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3195:86:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3205:29:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3227:6:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3214:12:16"
},
"nodeType": "YulFunctionCall",
"src": "3214:20:16"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3205:5:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3269:5:16"
}
],
"functionName": {
"name": "validator_revert_t_bytes4",
"nodeType": "YulIdentifier",
"src": "3243:25:16"
},
"nodeType": "YulFunctionCall",
"src": "3243:32:16"
},
"nodeType": "YulExpressionStatement",
"src": "3243:32:16"
}
]
},
"name": "abi_decode_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3173:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3181:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3189:5:16",
"type": ""
}
],
"src": "3144:137:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3349:79:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3359:22:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3374:6:16"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3368:5:16"
},
"nodeType": "YulFunctionCall",
"src": "3368:13:16"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3359:5:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3416:5:16"
}
],
"functionName": {
"name": "validator_revert_t_bytes4",
"nodeType": "YulIdentifier",
"src": "3390:25:16"
},
"nodeType": "YulFunctionCall",
"src": "3390:32:16"
},
"nodeType": "YulExpressionStatement",
"src": "3390:32:16"
}
]
},
"name": "abi_decode_t_bytes4_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3327:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3335:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3343:5:16",
"type": ""
}
],
"src": "3287:141:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3508:277:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3557:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "3559:77:16"
},
"nodeType": "YulFunctionCall",
"src": "3559:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "3559:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3536:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3544:4:16",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3532:3:16"
},
"nodeType": "YulFunctionCall",
"src": "3532:17:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3551:3:16"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3528:3:16"
},
"nodeType": "YulFunctionCall",
"src": "3528:27:16"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3521:6:16"
},
"nodeType": "YulFunctionCall",
"src": "3521:35:16"
},
"nodeType": "YulIf",
"src": "3518:122:16"
},
{
"nodeType": "YulVariableDeclaration",
"src": "3649:34:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3676:6:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3663:12:16"
},
"nodeType": "YulFunctionCall",
"src": "3663:20:16"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3653:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3692:87:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3752:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3760:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3748:3:16"
},
"nodeType": "YulFunctionCall",
"src": "3748:17:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3767:6:16"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3775:3:16"
}
],
"functionName": {
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3701:46:16"
},
"nodeType": "YulFunctionCall",
"src": "3701:78:16"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "3692:5:16"
}
]
}
]
},
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3486:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3494:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "3502:5:16",
"type": ""
}
],
"src": "3447:338:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3843:87:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3853:29:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3875:6:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3862:12:16"
},
"nodeType": "YulFunctionCall",
"src": "3862:20:16"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3853:5:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3918:5:16"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3891:26:16"
},
"nodeType": "YulFunctionCall",
"src": "3891:33:16"
},
"nodeType": "YulExpressionStatement",
"src": "3891:33:16"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3821:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3829:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3837:5:16",
"type": ""
}
],
"src": "3791:139:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3987:86:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3997:29:16",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4019:6:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "4006:12:16"
},
"nodeType": "YulFunctionCall",
"src": "4006:20:16"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3997:5:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4061:5:16"
}
],
"functionName": {
"name": "validator_revert_t_uint96",
"nodeType": "YulIdentifier",
"src": "4035:25:16"
},
"nodeType": "YulFunctionCall",
"src": "4035:32:16"
},
"nodeType": "YulExpressionStatement",
"src": "4035:32:16"
}
]
},
"name": "abi_decode_t_uint96",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3965:6:16",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3973:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3981:5:16",
"type": ""
}
],
"src": "3936:137:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4145:263:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4191:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "4193:77:16"
},
"nodeType": "YulFunctionCall",
"src": "4193:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "4193:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4166:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4175:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4162:3:16"
},
"nodeType": "YulFunctionCall",
"src": "4162:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4187:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4158:3:16"
},
"nodeType": "YulFunctionCall",
"src": "4158:32:16"
},
"nodeType": "YulIf",
"src": "4155:119:16"
},
{
"nodeType": "YulBlock",
"src": "4284:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4299:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4313:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4303:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4328:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4363:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4374:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4359:3:16"
},
"nodeType": "YulFunctionCall",
"src": "4359:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4383:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "4338:20:16"
},
"nodeType": "YulFunctionCall",
"src": "4338:53:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4328:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4115:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "4126:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4138:6:16",
"type": ""
}
],
"src": "4079:329:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4497:391:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4543:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "4545:77:16"
},
"nodeType": "YulFunctionCall",
"src": "4545:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "4545:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4518:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4527:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4514:3:16"
},
"nodeType": "YulFunctionCall",
"src": "4514:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4539:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4510:3:16"
},
"nodeType": "YulFunctionCall",
"src": "4510:32:16"
},
"nodeType": "YulIf",
"src": "4507:119:16"
},
{
"nodeType": "YulBlock",
"src": "4636:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4651:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4665:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4655:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4680:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4715:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4726:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4711:3:16"
},
"nodeType": "YulFunctionCall",
"src": "4711:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4735:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "4690:20:16"
},
"nodeType": "YulFunctionCall",
"src": "4690:53:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4680:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "4763:118:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4778:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4792:2:16",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4782:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4808:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4843:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4854:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4839:3:16"
},
"nodeType": "YulFunctionCall",
"src": "4839:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4863:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "4818:20:16"
},
"nodeType": "YulFunctionCall",
"src": "4818:53:16"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4808:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4459:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "4470:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4482:6:16",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4490:6:16",
"type": ""
}
],
"src": "4414:474:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5087:1316:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "5134:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "5136:77:16"
},
"nodeType": "YulFunctionCall",
"src": "5136:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "5136:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5108:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5117:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5104:3:16"
},
"nodeType": "YulFunctionCall",
"src": "5104:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5129:3:16",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "5100:3:16"
},
"nodeType": "YulFunctionCall",
"src": "5100:33:16"
},
"nodeType": "YulIf",
"src": "5097:120:16"
},
{
"nodeType": "YulBlock",
"src": "5227:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5242:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5256:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5246:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5271:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5306:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5317:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5302:3:16"
},
"nodeType": "YulFunctionCall",
"src": "5302:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5326:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "5281:20:16"
},
"nodeType": "YulFunctionCall",
"src": "5281:53:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5271:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5354:118:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5369:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5383:2:16",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5373:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5399:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5434:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5445:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5430:3:16"
},
"nodeType": "YulFunctionCall",
"src": "5430:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5454:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "5409:20:16"
},
"nodeType": "YulFunctionCall",
"src": "5409:53:16"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5399:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5482:303:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5497:46:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5528:9:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5539:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5524:3:16"
},
"nodeType": "YulFunctionCall",
"src": "5524:18:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5511:12:16"
},
"nodeType": "YulFunctionCall",
"src": "5511:32:16"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5501:6:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5590:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5592:77:16"
},
"nodeType": "YulFunctionCall",
"src": "5592:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "5592:79:16"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5562:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5570:18:16",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5559:2:16"
},
"nodeType": "YulFunctionCall",
"src": "5559:30:16"
},
"nodeType": "YulIf",
"src": "5556:117:16"
},
{
"nodeType": "YulAssignment",
"src": "5687:88:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5747:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5758:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5743:3:16"
},
"nodeType": "YulFunctionCall",
"src": "5743:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5767:7:16"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5697:45:16"
},
"nodeType": "YulFunctionCall",
"src": "5697:78:16"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "5687:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5795:303:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5810:46:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5841:9:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5852:2:16",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5837:3:16"
},
"nodeType": "YulFunctionCall",
"src": "5837:18:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5824:12:16"
},
"nodeType": "YulFunctionCall",
"src": "5824:32:16"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5814:6:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5903:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5905:77:16"
},
"nodeType": "YulFunctionCall",
"src": "5905:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "5905:79:16"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5875:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5883:18:16",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5872:2:16"
},
"nodeType": "YulFunctionCall",
"src": "5872:30:16"
},
"nodeType": "YulIf",
"src": "5869:117:16"
},
{
"nodeType": "YulAssignment",
"src": "6000:88:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6060:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6071:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6056:3:16"
},
"nodeType": "YulFunctionCall",
"src": "6056:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6080:7:16"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6010:45:16"
},
"nodeType": "YulFunctionCall",
"src": "6010:78:16"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "6000:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6108:288:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6123:47:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6154:9:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6165:3:16",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6150:3:16"
},
"nodeType": "YulFunctionCall",
"src": "6150:19:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "6137:12:16"
},
"nodeType": "YulFunctionCall",
"src": "6137:33:16"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6127:6:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6217:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "6219:77:16"
},
"nodeType": "YulFunctionCall",
"src": "6219:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "6219:79:16"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6189:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6197:18:16",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6186:2:16"
},
"nodeType": "YulFunctionCall",
"src": "6186:30:16"
},
"nodeType": "YulIf",
"src": "6183:117:16"
},
{
"nodeType": "YulAssignment",
"src": "6314:72:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6358:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6369:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6354:3:16"
},
"nodeType": "YulFunctionCall",
"src": "6354:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6378:7:16"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6324:29:16"
},
"nodeType": "YulFunctionCall",
"src": "6324:62:16"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "6314:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5025:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "5036:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5048:6:16",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5056:6:16",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5064:6:16",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "5072:6:16",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "5080:6:16",
"type": ""
}
],
"src": "4894:1509:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6552:946:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6599:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "6601:77:16"
},
"nodeType": "YulFunctionCall",
"src": "6601:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "6601:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6573:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6582:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6569:3:16"
},
"nodeType": "YulFunctionCall",
"src": "6569:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6594:3:16",
"type": "",
"value": "160"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "6565:3:16"
},
"nodeType": "YulFunctionCall",
"src": "6565:33:16"
},
"nodeType": "YulIf",
"src": "6562:120:16"
},
{
"nodeType": "YulBlock",
"src": "6692:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6707:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6721:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6711:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6736:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6771:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6782:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6767:3:16"
},
"nodeType": "YulFunctionCall",
"src": "6767:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6791:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "6746:20:16"
},
"nodeType": "YulFunctionCall",
"src": "6746:53:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6736:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6819:118:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6834:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6848:2:16",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6838:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6864:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6899:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "6910:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6895:3:16"
},
"nodeType": "YulFunctionCall",
"src": "6895:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "6919:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "6874:20:16"
},
"nodeType": "YulFunctionCall",
"src": "6874:53:16"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6864:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "6947:118:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6962:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "6976:2:16",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "6966:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6992:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7027:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7038:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7023:3:16"
},
"nodeType": "YulFunctionCall",
"src": "7023:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "7047:7:16"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "7002:20:16"
},
"nodeType": "YulFunctionCall",
"src": "7002:53:16"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6992:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "7075:118:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7090:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "7104:2:16",
"type": "",
"value": "96"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "7094:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7120:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7155:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7166:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7151:3:16"
},
"nodeType": "YulFunctionCall",
"src": "7151:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "7175:7:16"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "7130:20:16"
},
"nodeType": "YulFunctionCall",
"src": "7130:53:16"
},
"variableNames": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "7120:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "7203:288:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7218:47:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7249:9:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7260:3:16",
"type": "",
"value": "128"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7245:3:16"
},
"nodeType": "YulFunctionCall",
"src": "7245:19:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "7232:12:16"
},
"nodeType": "YulFunctionCall",
"src": "7232:33:16"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "7222:6:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7312:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "7314:77:16"
},
"nodeType": "YulFunctionCall",
"src": "7314:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "7314:79:16"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7284:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7292:18:16",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7281:2:16"
},
"nodeType": "YulFunctionCall",
"src": "7281:30:16"
},
"nodeType": "YulIf",
"src": "7278:117:16"
},
{
"nodeType": "YulAssignment",
"src": "7409:72:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7453:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7464:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7449:3:16"
},
"nodeType": "YulFunctionCall",
"src": "7449:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "7473:7:16"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "7419:29:16"
},
"nodeType": "YulFunctionCall",
"src": "7419:62:16"
},
"variableNames": [
{
"name": "value4",
"nodeType": "YulIdentifier",
"src": "7409:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6490:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "6501:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6513:6:16",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6521:6:16",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "6529:6:16",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "6537:6:16",
"type": ""
},
{
"name": "value4",
"nodeType": "YulTypedName",
"src": "6545:6:16",
"type": ""
}
],
"src": "6409:1089:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7584:388:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "7630:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "7632:77:16"
},
"nodeType": "YulFunctionCall",
"src": "7632:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "7632:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "7605:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7614:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7601:3:16"
},
"nodeType": "YulFunctionCall",
"src": "7601:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7626:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "7597:3:16"
},
"nodeType": "YulFunctionCall",
"src": "7597:32:16"
},
"nodeType": "YulIf",
"src": "7594:119:16"
},
{
"nodeType": "YulBlock",
"src": "7723:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7738:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "7752:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "7742:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7767:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7802:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7813:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7798:3:16"
},
"nodeType": "YulFunctionCall",
"src": "7798:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "7822:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "7777:20:16"
},
"nodeType": "YulFunctionCall",
"src": "7777:53:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7767:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "7850:115:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "7865:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "7879:2:16",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "7869:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "7895:60:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7927:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "7938:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7923:3:16"
},
"nodeType": "YulFunctionCall",
"src": "7923:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "7947:7:16"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "7905:17:16"
},
"nodeType": "YulFunctionCall",
"src": "7905:50:16"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "7895:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7546:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "7557:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7569:6:16",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "7577:6:16",
"type": ""
}
],
"src": "7504:468:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8061:391:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8107:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "8109:77:16"
},
"nodeType": "YulFunctionCall",
"src": "8109:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "8109:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8082:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8091:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8078:3:16"
},
"nodeType": "YulFunctionCall",
"src": "8078:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8103:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "8074:3:16"
},
"nodeType": "YulFunctionCall",
"src": "8074:32:16"
},
"nodeType": "YulIf",
"src": "8071:119:16"
},
{
"nodeType": "YulBlock",
"src": "8200:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8215:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8229:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8219:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8244:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8279:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8290:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8275:3:16"
},
"nodeType": "YulFunctionCall",
"src": "8275:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8299:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "8254:20:16"
},
"nodeType": "YulFunctionCall",
"src": "8254:53:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "8244:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "8327:118:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8342:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8356:2:16",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8346:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8372:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8407:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8418:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8403:3:16"
},
"nodeType": "YulFunctionCall",
"src": "8403:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8427:7:16"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "8382:20:16"
},
"nodeType": "YulFunctionCall",
"src": "8382:53:16"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "8372:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8023:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "8034:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "8046:6:16",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "8054:6:16",
"type": ""
}
],
"src": "7978:474:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8558:519:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8604:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "8606:77:16"
},
"nodeType": "YulFunctionCall",
"src": "8606:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "8606:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8579:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8588:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8575:3:16"
},
"nodeType": "YulFunctionCall",
"src": "8575:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8600:2:16",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "8571:3:16"
},
"nodeType": "YulFunctionCall",
"src": "8571:32:16"
},
"nodeType": "YulIf",
"src": "8568:119:16"
},
{
"nodeType": "YulBlock",
"src": "8697:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8712:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8726:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8716:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8741:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8776:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8787:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8772:3:16"
},
"nodeType": "YulFunctionCall",
"src": "8772:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8796:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "8751:20:16"
},
"nodeType": "YulFunctionCall",
"src": "8751:53:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "8741:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "8824:118:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8839:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8853:2:16",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8843:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8869:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8904:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "8915:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8900:3:16"
},
"nodeType": "YulFunctionCall",
"src": "8900:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "8924:7:16"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "8879:20:16"
},
"nodeType": "YulFunctionCall",
"src": "8879:53:16"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "8869:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "8952:118:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "8967:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "8981:2:16",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "8971:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "8997:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9032:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9043:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9028:3:16"
},
"nodeType": "YulFunctionCall",
"src": "9028:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9052:7:16"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "9007:20:16"
},
"nodeType": "YulFunctionCall",
"src": "9007:53:16"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "8997:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8512:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "8523:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "8535:6:16",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "8543:6:16",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "8551:6:16",
"type": ""
}
],
"src": "8458:619:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9216:761:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "9262:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "9264:77:16"
},
"nodeType": "YulFunctionCall",
"src": "9264:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "9264:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9237:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9246:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "9233:3:16"
},
"nodeType": "YulFunctionCall",
"src": "9233:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9258:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "9229:3:16"
},
"nodeType": "YulFunctionCall",
"src": "9229:32:16"
},
"nodeType": "YulIf",
"src": "9226:119:16"
},
{
"nodeType": "YulBlock",
"src": "9355:302:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9370:45:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9401:9:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9412:1:16",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9397:3:16"
},
"nodeType": "YulFunctionCall",
"src": "9397:17:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "9384:12:16"
},
"nodeType": "YulFunctionCall",
"src": "9384:31:16"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9374:6:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9462:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "9464:77:16"
},
"nodeType": "YulFunctionCall",
"src": "9464:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "9464:79:16"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9434:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9442:18:16",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "9431:2:16"
},
"nodeType": "YulFunctionCall",
"src": "9431:30:16"
},
"nodeType": "YulIf",
"src": "9428:117:16"
},
{
"nodeType": "YulAssignment",
"src": "9559:88:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9619:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9630:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9615:3:16"
},
"nodeType": "YulFunctionCall",
"src": "9615:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9639:7:16"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "9569:45:16"
},
"nodeType": "YulFunctionCall",
"src": "9569:78:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "9559:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "9667:303:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "9682:46:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9713:9:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9724:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9709:3:16"
},
"nodeType": "YulFunctionCall",
"src": "9709:18:16"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "9696:12:16"
},
"nodeType": "YulFunctionCall",
"src": "9696:32:16"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "9686:6:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "9775:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "9777:77:16"
},
"nodeType": "YulFunctionCall",
"src": "9777:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "9777:79:16"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9747:6:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9755:18:16",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "9744:2:16"
},
"nodeType": "YulFunctionCall",
"src": "9744:30:16"
},
"nodeType": "YulIf",
"src": "9741:117:16"
},
{
"nodeType": "YulAssignment",
"src": "9872:88:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "9932:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "9943:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9928:3:16"
},
"nodeType": "YulFunctionCall",
"src": "9928:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "9952:7:16"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "9882:45:16"
},
"nodeType": "YulFunctionCall",
"src": "9882:78:16"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "9872:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "9178:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "9189:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "9201:6:16",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "9209:6:16",
"type": ""
}
],
"src": "9083:894:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10046:260:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10092:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "10094:77:16"
},
"nodeType": "YulFunctionCall",
"src": "10094:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "10094:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10067:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10076:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10063:3:16"
},
"nodeType": "YulFunctionCall",
"src": "10063:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10088:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "10059:3:16"
},
"nodeType": "YulFunctionCall",
"src": "10059:32:16"
},
"nodeType": "YulIf",
"src": "10056:119:16"
},
{
"nodeType": "YulBlock",
"src": "10185:114:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10200:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10214:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10204:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10229:60:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10261:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10272:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10257:3:16"
},
"nodeType": "YulFunctionCall",
"src": "10257:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10281:7:16"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "10239:17:16"
},
"nodeType": "YulFunctionCall",
"src": "10239:50:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10229:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10016:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "10027:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10039:6:16",
"type": ""
}
],
"src": "9983:323:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10377:262:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10423:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "10425:77:16"
},
"nodeType": "YulFunctionCall",
"src": "10425:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "10425:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10398:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10407:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10394:3:16"
},
"nodeType": "YulFunctionCall",
"src": "10394:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10419:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "10390:3:16"
},
"nodeType": "YulFunctionCall",
"src": "10390:32:16"
},
"nodeType": "YulIf",
"src": "10387:119:16"
},
{
"nodeType": "YulBlock",
"src": "10516:116:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10531:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10545:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10535:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10560:62:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10594:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10605:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10590:3:16"
},
"nodeType": "YulFunctionCall",
"src": "10590:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10614:7:16"
}
],
"functionName": {
"name": "abi_decode_t_bytes4",
"nodeType": "YulIdentifier",
"src": "10570:19:16"
},
"nodeType": "YulFunctionCall",
"src": "10570:52:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10560:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10347:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "10358:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10370:6:16",
"type": ""
}
],
"src": "10312:327:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10721:273:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "10767:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "10769:77:16"
},
"nodeType": "YulFunctionCall",
"src": "10769:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "10769:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10742:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10751:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "10738:3:16"
},
"nodeType": "YulFunctionCall",
"src": "10738:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10763:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "10734:3:16"
},
"nodeType": "YulFunctionCall",
"src": "10734:32:16"
},
"nodeType": "YulIf",
"src": "10731:119:16"
},
{
"nodeType": "YulBlock",
"src": "10860:127:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10875:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10889:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "10879:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "10904:73:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "10949:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "10960:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10945:3:16"
},
"nodeType": "YulFunctionCall",
"src": "10945:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "10969:7:16"
}
],
"functionName": {
"name": "abi_decode_t_bytes4_fromMemory",
"nodeType": "YulIdentifier",
"src": "10914:30:16"
},
"nodeType": "YulFunctionCall",
"src": "10914:63:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "10904:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes4_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "10691:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "10702:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "10714:6:16",
"type": ""
}
],
"src": "10645:349:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11066:263:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11112:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "11114:77:16"
},
"nodeType": "YulFunctionCall",
"src": "11114:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "11114:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11087:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11096:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11083:3:16"
},
"nodeType": "YulFunctionCall",
"src": "11083:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11108:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "11079:3:16"
},
"nodeType": "YulFunctionCall",
"src": "11079:32:16"
},
"nodeType": "YulIf",
"src": "11076:119:16"
},
{
"nodeType": "YulBlock",
"src": "11205:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11220:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11234:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11224:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "11249:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11284:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11295:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11280:3:16"
},
"nodeType": "YulFunctionCall",
"src": "11280:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11304:7:16"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "11259:20:16"
},
"nodeType": "YulFunctionCall",
"src": "11259:53:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11249:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11036:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "11047:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11059:6:16",
"type": ""
}
],
"src": "11000:329:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11442:526:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "11488:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "11490:77:16"
},
"nodeType": "YulFunctionCall",
"src": "11490:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "11490:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11463:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11472:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "11459:3:16"
},
"nodeType": "YulFunctionCall",
"src": "11459:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11484:2:16",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "11455:3:16"
},
"nodeType": "YulFunctionCall",
"src": "11455:32:16"
},
"nodeType": "YulIf",
"src": "11452:119:16"
},
{
"nodeType": "YulBlock",
"src": "11581:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11596:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11610:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11600:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "11625:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11660:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11671:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11656:3:16"
},
"nodeType": "YulFunctionCall",
"src": "11656:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11680:7:16"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "11635:20:16"
},
"nodeType": "YulFunctionCall",
"src": "11635:53:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "11625:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "11708:126:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11723:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11737:2:16",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11727:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "11753:71:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11796:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11807:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11792:3:16"
},
"nodeType": "YulFunctionCall",
"src": "11792:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11816:7:16"
}
],
"functionName": {
"name": "abi_decode_t_address_payable",
"nodeType": "YulIdentifier",
"src": "11763:28:16"
},
"nodeType": "YulFunctionCall",
"src": "11763:61:16"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "11753:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "11844:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "11859:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "11873:2:16",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "11863:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "11889:62:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "11923:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "11934:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11919:3:16"
},
"nodeType": "YulFunctionCall",
"src": "11919:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "11943:7:16"
}
],
"functionName": {
"name": "abi_decode_t_uint96",
"nodeType": "YulIdentifier",
"src": "11899:19:16"
},
"nodeType": "YulFunctionCall",
"src": "11899:52:16"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "11889:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address_payablet_uint96",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "11396:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "11407:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "11419:6:16",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "11427:6:16",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "11435:6:16",
"type": ""
}
],
"src": "11335:633:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12057:391:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12103:83:16",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "12105:77:16"
},
"nodeType": "YulFunctionCall",
"src": "12105:79:16"
},
"nodeType": "YulExpressionStatement",
"src": "12105:79:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "12078:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12087:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "12074:3:16"
},
"nodeType": "YulFunctionCall",
"src": "12074:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12099:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "12070:3:16"
},
"nodeType": "YulFunctionCall",
"src": "12070:32:16"
},
"nodeType": "YulIf",
"src": "12067:119:16"
},
{
"nodeType": "YulBlock",
"src": "12196:117:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12211:15:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12225:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12215:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "12240:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12275:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12286:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12271:3:16"
},
"nodeType": "YulFunctionCall",
"src": "12271:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "12295:7:16"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "12250:20:16"
},
"nodeType": "YulFunctionCall",
"src": "12250:53:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "12240:6:16"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "12323:118:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "12338:16:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "12352:2:16",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "12342:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "12368:63:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "12403:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "12414:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12399:3:16"
},
"nodeType": "YulFunctionCall",
"src": "12399:22:16"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "12423:7:16"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "12378:20:16"
},
"nodeType": "YulFunctionCall",
"src": "12378:53:16"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "12368:6:16"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "12019:9:16",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "12030:7:16",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "12042:6:16",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "12050:6:16",
"type": ""
}
],
"src": "11974:474:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12578:143:16",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "12666:6:16"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12674:3:16"
}
],
"functionName": {
"name": "abi_encode_t_struct$_Part_$1917_memory_ptr_to_t_struct$_Part_$1917_memory_ptr",
"nodeType": "YulIdentifier",
"src": "12588:77:16"
},
"nodeType": "YulFunctionCall",
"src": "12588:90:16"
},
"nodeType": "YulExpressionStatement",
"src": "12588:90:16"
},
{
"nodeType": "YulAssignment",
"src": "12687:28:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12705:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12710:4:16",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12701:3:16"
},
"nodeType": "YulFunctionCall",
"src": "12701:14:16"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "12687:10:16"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_struct$_Part_$1917_memory_ptr_to_t_struct$_Part_$1917_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "12551:6:16",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "12559:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "12567:10:16",
"type": ""
}
],
"src": "12454:267:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12807:99:16",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "12851:6:16"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12859:3:16"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "12817:33:16"
},
"nodeType": "YulFunctionCall",
"src": "12817:46:16"
},
"nodeType": "YulExpressionStatement",
"src": "12817:46:16"
},
{
"nodeType": "YulAssignment",
"src": "12872:28:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "12890:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12895:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12886:3:16"
},
"nodeType": "YulFunctionCall",
"src": "12886:14:16"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "12872:10:16"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "12780:6:16",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "12788:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "12796:10:16",
"type": ""
}
],
"src": "12727:179:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12983:61:16",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13000:3:16"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13031:5:16"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "13005:25:16"
},
"nodeType": "YulFunctionCall",
"src": "13005:32:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "12993:6:16"
},
"nodeType": "YulFunctionCall",
"src": "12993:45:16"
},
"nodeType": "YulExpressionStatement",
"src": "12993:45:16"
}
]
},
"name": "abi_encode_t_address_payable_to_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12971:5:16",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "12978:3:16",
"type": ""
}
],
"src": "12912:132:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13131:61:16",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13148:3:16"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13179:5:16"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "13153:25:16"
},
"nodeType": "YulFunctionCall",
"src": "13153:32:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13141:6:16"
},
"nodeType": "YulFunctionCall",
"src": "13141:45:16"
},
"nodeType": "YulExpressionStatement",
"src": "13141:45:16"
}
]
},
"name": "abi_encode_t_address_payable_to_t_address_payable_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13119:5:16",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "13126:3:16",
"type": ""
}
],
"src": "13050:142:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13263:53:16",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13280:3:16"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13303:5:16"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "13285:17:16"
},
"nodeType": "YulFunctionCall",
"src": "13285:24:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "13273:6:16"
},
"nodeType": "YulFunctionCall",
"src": "13273:37:16"
},
"nodeType": "YulExpressionStatement",
"src": "13273:37:16"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13251:5:16",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "13258:3:16",
"type": ""
}
],
"src": "13198:118:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "13544:740:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13554:90:16",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13638:5:16"
}
],
"functionName": {
"name": "array_length_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "13568:69:16"
},
"nodeType": "YulFunctionCall",
"src": "13568:76:16"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "13558:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "13653:115:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13756:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "13761:6:16"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "13660:95:16"
},
"nodeType": "YulFunctionCall",
"src": "13660:108:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "13653:3:16"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "13777:93:16",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "13864:5:16"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "13792:71:16"
},
"nodeType": "YulFunctionCall",
"src": "13792:78:16"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "13781:7:16",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "13879:21:16",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "13893:7:16"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "13883:6:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "13969:290:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13983:34:16",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "14010:6:16"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "14004:5:16"
},
"nodeType": "YulFunctionCall",
"src": "14004:13:16"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "13987:13:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "14030:114:16",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "14125:13:16"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14140:3:16"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_struct$_Part_$1917_memory_ptr_to_t_struct$_Part_$1917_memory_ptr",
"nodeType": "YulIdentifier",
"src": "14037:87:16"
},
"nodeType": "YulFunctionCall",
"src": "14037:107:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14030:3:16"
}
]
},
{
"nodeType": "YulAssignment",
"src": "14157:92:16",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "14242:6:16"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "14167:74:16"
},
"nodeType": "YulFunctionCall",
"src": "14167:82:16"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "14157:6:16"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "13931:1:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "13934:6:16"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "13928:2:16"
},
"nodeType": "YulFunctionCall",
"src": "13928:13:16"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "13942:18:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "13944:14:16",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "13953:1:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13956:1:16",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "13949:3:16"
},
"nodeType": "YulFunctionCall",
"src": "13949:9:16"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "13944:1:16"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "13913:14:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "13915:10:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "13924:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "13919:1:16",
"type": ""
}
]
}
]
},
"src": "13909:350:16"
},
{
"nodeType": "YulAssignment",
"src": "14268:10:16",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14275:3:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "14268:3:16"
}
]
}
]
},
"name": "abi_encode_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr_to_t_array$_t_struct$_Part_$1917_memory_ptr_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "13523:5:16",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "13530:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "13539:3:16",
"type": ""
}
],
"src": "13376:908:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "14444:608:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "14454:68:16",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "14516:5:16"
}
],
"functionName": {
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "14468:47:16"
},
"nodeType": "YulFunctionCall",
"src": "14468:54:16"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "14458:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "14531:93:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14612:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14617:6:16"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "14538:73:16"
},
"nodeType": "YulFunctionCall",
"src": "14538:86:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14531:3:16"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "14633:71:16",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "14698:5:16"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "14648:49:16"
},
"nodeType": "YulFunctionCall",
"src": "14648:56:16"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "14637:7:16",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "14713:21:16",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "14727:7:16"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "14717:6:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "14803:224:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "14817:34:16",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "14844:6:16"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "14838:5:16"
},
"nodeType": "YulFunctionCall",
"src": "14838:13:16"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "14821:13:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "14864:70:16",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "14915:13:16"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14930:3:16"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "14871:43:16"
},
"nodeType": "YulFunctionCall",
"src": "14871:63:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "14864:3:16"
}
]
},
{
"nodeType": "YulAssignment",
"src": "14947:70:16",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "15010:6:16"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "14957:52:16"
},
"nodeType": "YulFunctionCall",
"src": "14957:60:16"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "14947:6:16"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "14765:1:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "14768:6:16"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "14762:2:16"
},
"nodeType": "YulFunctionCall",
"src": "14762:13:16"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "14776:18:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "14778:14:16",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "14787:1:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "14790:1:16",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "14783:3:16"
},
"nodeType": "YulFunctionCall",
"src": "14783:9:16"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "14778:1:16"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "14747:14:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "14749:10:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "14758:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "14753:1:16",
"type": ""
}
]
}
]
},
"src": "14743:284:16"
},
{
"nodeType": "YulAssignment",
"src": "15036:10:16",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15043:3:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "15036:3:16"
}
]
}
]
},
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "14423:5:16",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "14430:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "14439:3:16",
"type": ""
}
],
"src": "14320:732:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15117:50:16",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15134:3:16"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "15154:5:16"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "15139:14:16"
},
"nodeType": "YulFunctionCall",
"src": "15139:21:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "15127:6:16"
},
"nodeType": "YulFunctionCall",
"src": "15127:34:16"
},
"nodeType": "YulExpressionStatement",
"src": "15127:34:16"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "15105:5:16",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "15112:3:16",
"type": ""
}
],
"src": "15058:109:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15263:270:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "15273:52:16",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "15319:5:16"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "15287:31:16"
},
"nodeType": "YulFunctionCall",
"src": "15287:38:16"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "15277:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "15334:77:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15399:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "15404:6:16"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "15341:57:16"
},
"nodeType": "YulFunctionCall",
"src": "15341:70:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15334:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "15446:5:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15453:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15442:3:16"
},
"nodeType": "YulFunctionCall",
"src": "15442:16:16"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15460:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "15465:6:16"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "15420:21:16"
},
"nodeType": "YulFunctionCall",
"src": "15420:52:16"
},
"nodeType": "YulExpressionStatement",
"src": "15420:52:16"
},
{
"nodeType": "YulAssignment",
"src": "15481:46:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15492:3:16"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "15519:6:16"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "15497:21:16"
},
"nodeType": "YulFunctionCall",
"src": "15497:29:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15488:3:16"
},
"nodeType": "YulFunctionCall",
"src": "15488:39:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "15481:3:16"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "15244:5:16",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "15251:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "15259:3:16",
"type": ""
}
],
"src": "15173:360:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "15631:272:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "15641:53:16",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "15688:5:16"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "15655:32:16"
},
"nodeType": "YulFunctionCall",
"src": "15655:39:16"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "15645:6:16",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "15703:78:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15769:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "15774:6:16"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "15710:58:16"
},
"nodeType": "YulFunctionCall",
"src": "15710:71:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15703:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "15816:5:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "15823:4:16",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15812:3:16"
},
"nodeType": "YulFunctionCall",
"src": "15812:16:16"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15830:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "15835:6:16"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "15790:21:16"
},
"nodeType": "YulFunctionCall",
"src": "15790:52:16"
},
"nodeType": "YulExpressionStatement",
"src": "15790:52:16"
},
{
"nodeType": "YulAssignment",
"src": "15851:46:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "15862:3:16"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "15889:6:16"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "15867:21:16"
},
"nodeType": "YulFunctionCall",
"src": "15867:29:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "15858:3:16"
},
"nodeType": "YulFunctionCall",
"src": "15858:39:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "15851:3:16"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "15612:5:16",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "15619:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "15627:3:16",
"type": ""
}
],
"src": "15539:364:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16055:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16065:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16131:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16136:2:16",
"type": "",
"value": "52"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "16072:58:16"
},
"nodeType": "YulFunctionCall",
"src": "16072:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16065:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16237:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed",
"nodeType": "YulIdentifier",
"src": "16148:88:16"
},
"nodeType": "YulFunctionCall",
"src": "16148:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "16148:93:16"
},
{
"nodeType": "YulAssignment",
"src": "16250:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16261:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16266:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16257:3:16"
},
"nodeType": "YulFunctionCall",
"src": "16257:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "16250:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_00aa752fb1526000e5241602affc3d70ef506da48a27ea57140102b439e655ed_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "16043:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "16051:3:16",
"type": ""
}
],
"src": "15909:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16427:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16437:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16503:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16508:2:16",
"type": "",
"value": "40"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "16444:58:16"
},
"nodeType": "YulFunctionCall",
"src": "16444:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16437:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16609:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503",
"nodeType": "YulIdentifier",
"src": "16520:88:16"
},
"nodeType": "YulFunctionCall",
"src": "16520:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "16520:93:16"
},
{
"nodeType": "YulAssignment",
"src": "16622:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16633:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16638:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "16629:3:16"
},
"nodeType": "YulFunctionCall",
"src": "16629:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "16622:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "16415:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "16423:3:16",
"type": ""
}
],
"src": "16281:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "16799:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "16809:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16875:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "16880:2:16",
"type": "",
"value": "43"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "16816:58:16"
},
"nodeType": "YulFunctionCall",
"src": "16816:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16809:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "16981:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9",
"nodeType": "YulIdentifier",
"src": "16892:88:16"
},
"nodeType": "YulFunctionCall",
"src": "16892:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "16892:93:16"
},
{
"nodeType": "YulAssignment",
"src": "16994:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17005:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17010:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17001:3:16"
},
"nodeType": "YulFunctionCall",
"src": "17001:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "16994:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_1f4de6a436172e7f7b1540476031cb037fc18ede9cc346a56da1697cbd352aa9_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "16787:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "16795:3:16",
"type": ""
}
],
"src": "16653:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17171:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17181:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17247:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17252:2:16",
"type": "",
"value": "38"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "17188:58:16"
},
"nodeType": "YulFunctionCall",
"src": "17188:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17181:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17353:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe",
"nodeType": "YulIdentifier",
"src": "17264:88:16"
},
"nodeType": "YulFunctionCall",
"src": "17264:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "17264:93:16"
},
{
"nodeType": "YulAssignment",
"src": "17366:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17377:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17382:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17373:3:16"
},
"nodeType": "YulFunctionCall",
"src": "17373:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "17366:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "17159:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "17167:3:16",
"type": ""
}
],
"src": "17025:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17543:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17553:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17619:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17624:2:16",
"type": "",
"value": "36"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "17560:58:16"
},
"nodeType": "YulFunctionCall",
"src": "17560:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17553:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17725:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685",
"nodeType": "YulIdentifier",
"src": "17636:88:16"
},
"nodeType": "YulFunctionCall",
"src": "17636:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "17636:93:16"
},
{
"nodeType": "YulAssignment",
"src": "17738:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17749:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17754:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "17745:3:16"
},
"nodeType": "YulFunctionCall",
"src": "17745:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "17738:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "17531:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "17539:3:16",
"type": ""
}
],
"src": "17397:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "17915:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "17925:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17991:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "17996:2:16",
"type": "",
"value": "41"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "17932:58:16"
},
"nodeType": "YulFunctionCall",
"src": "17932:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "17925:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18097:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a",
"nodeType": "YulIdentifier",
"src": "18008:88:16"
},
"nodeType": "YulFunctionCall",
"src": "18008:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "18008:93:16"
},
{
"nodeType": "YulAssignment",
"src": "18110:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18121:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18126:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18117:3:16"
},
"nodeType": "YulFunctionCall",
"src": "18117:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "18110:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_394ac917f53b95ee25db2a5da5874c5b1f0af95a4fdf34992ff8b19c458f239a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "17903:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "17911:3:16",
"type": ""
}
],
"src": "17769:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18287:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "18297:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18363:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18368:2:16",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "18304:58:16"
},
"nodeType": "YulFunctionCall",
"src": "18304:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18297:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18469:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_4f2866f2d9fce93a0baf3856b493e9407095000996fea2f7904a39c9164781ad",
"nodeType": "YulIdentifier",
"src": "18380:88:16"
},
"nodeType": "YulFunctionCall",
"src": "18380:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "18380:93:16"
},
{
"nodeType": "YulAssignment",
"src": "18482:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18493:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18498:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18489:3:16"
},
"nodeType": "YulFunctionCall",
"src": "18489:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "18482:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_4f2866f2d9fce93a0baf3856b493e9407095000996fea2f7904a39c9164781ad_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "18275:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "18283:3:16",
"type": ""
}
],
"src": "18141:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "18659:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "18669:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18735:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18740:2:16",
"type": "",
"value": "34"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "18676:58:16"
},
"nodeType": "YulFunctionCall",
"src": "18676:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18669:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18841:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_511287d5b927b2751e48b11f35dd67060c98d27df3483fd6cb890a0e6ffd9d64",
"nodeType": "YulIdentifier",
"src": "18752:88:16"
},
"nodeType": "YulFunctionCall",
"src": "18752:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "18752:93:16"
},
{
"nodeType": "YulAssignment",
"src": "18854:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "18865:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "18870:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "18861:3:16"
},
"nodeType": "YulFunctionCall",
"src": "18861:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "18854:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_511287d5b927b2751e48b11f35dd67060c98d27df3483fd6cb890a0e6ffd9d64_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "18647:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "18655:3:16",
"type": ""
}
],
"src": "18513:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19031:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "19041:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19107:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19112:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "19048:58:16"
},
"nodeType": "YulFunctionCall",
"src": "19048:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19041:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19213:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_593311831d740e3a682cd1941decbdb819cd1a530afb770ecfcfb0c7a8b3d52a",
"nodeType": "YulIdentifier",
"src": "19124:88:16"
},
"nodeType": "YulFunctionCall",
"src": "19124:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "19124:93:16"
},
{
"nodeType": "YulAssignment",
"src": "19226:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19237:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19242:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19233:3:16"
},
"nodeType": "YulFunctionCall",
"src": "19233:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "19226:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_593311831d740e3a682cd1941decbdb819cd1a530afb770ecfcfb0c7a8b3d52a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "19019:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "19027:3:16",
"type": ""
}
],
"src": "18885:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19403:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "19413:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19479:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19484:2:16",
"type": "",
"value": "37"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "19420:58:16"
},
"nodeType": "YulFunctionCall",
"src": "19420:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19413:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19585:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d",
"nodeType": "YulIdentifier",
"src": "19496:88:16"
},
"nodeType": "YulFunctionCall",
"src": "19496:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "19496:93:16"
},
{
"nodeType": "YulAssignment",
"src": "19598:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19609:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19614:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19605:3:16"
},
"nodeType": "YulFunctionCall",
"src": "19605:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "19598:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "19391:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "19399:3:16",
"type": ""
}
],
"src": "19257:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "19775:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "19785:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19851:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19856:2:16",
"type": "",
"value": "50"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "19792:58:16"
},
"nodeType": "YulFunctionCall",
"src": "19792:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19785:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19957:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686",
"nodeType": "YulIdentifier",
"src": "19868:88:16"
},
"nodeType": "YulFunctionCall",
"src": "19868:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "19868:93:16"
},
{
"nodeType": "YulAssignment",
"src": "19970:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "19981:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "19986:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "19977:3:16"
},
"nodeType": "YulFunctionCall",
"src": "19977:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "19970:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_70a41c66829f5508884cda9ef3d2f72551b34f23e4035be97941681123d2d686_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "19763:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "19771:3:16",
"type": ""
}
],
"src": "19629:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20147:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "20157:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20223:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20228:2:16",
"type": "",
"value": "42"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "20164:58:16"
},
"nodeType": "YulFunctionCall",
"src": "20164:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20157:3:16"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20329:3:16"
}
],
"functionName": {
"name": "store_literal_in_memory_7ce6ec1bd6c3505ea5da967bf558aeb356e546a32ae62cd3452e5a93b4455310",
"nodeType": "YulIdentifier",
"src": "20240:88:16"
},
"nodeType": "YulFunctionCall",
"src": "20240:93:16"
},
"nodeType": "YulExpressionStatement",
"src": "20240:93:16"
},
{
"nodeType": "YulAssignment",
"src": "20342:19:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20353:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20358:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "20349:3:16"
},
"nodeType": "YulFunctionCall",
"src": "20349:12:16"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "20342:3:16"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_7ce6ec1bd6c3505ea5da967bf558aeb356e546a32ae62cd3452e5a93b4455310_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "20135:3:16",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "20143:3:16",
"type": ""
}
],
"src": "20001:366:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "20519:220:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "20529:74:16",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20595:3:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "20600:2:16",
"type": "",
"value": "35"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "20536:58:16"
},
"nodeType": "YulFunctionCall",
"src": "20536:67:16"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "20529:3:16"
}
]
},
{
"expression": {
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment